スレ立てるまでもない ..
[2ch|▼Menu]
237:デフォルトの名無しさん
07/11/07 10:54:08
>>235
「禿バンク」は「ソフトバンク」のことです。社長の髪型に由来した俗称です。
それから、そんなところで「自分は女」だなんて主張はしなくて構いませんよ。


238:デフォルトの名無しさん
07/11/07 11:21:34
アドベンチャーゲームをC言語で、ってのがある意味無意味。
さくっと吉里吉里KAGあたりで作るべき。

ベタにC言語で作ってたら画像1枚表示させるプログラムを
どう書けばいいのか調べるだけで1日が終わる。

239:デフォルトの名無しさん
07/11/07 11:28:18
>>237
そこでマジレスかよ

240:デフォルトの名無しさん
07/11/07 11:28:58
>>238
>ベタにC言語で作ってたら画像1枚表示させるプログラムを
>どう書けばいいのか調べるだけで1日が終わる。
だ が そ れ が い い

241:デフォルトの名無しさん
07/11/07 11:31:07
「アドベンチャーゲーム プログラミング」
でググるという発想が出ない辺りが女だな。

242:デフォルトの名無しさん
07/11/07 11:40:20
>>241
男女はどうでもいいじゃん。

ただ、シューティングゲームの方が難しいような気がするが…
その本を知らないが、シューティングゲームの本を理解できれば
それが十二分なはずだと思うんだけど。

243:デフォルトの名無しさん
07/11/07 11:42:00
>>242
確かにシューティング作れたらアドベンチャーも作れそうだな。

244:デフォルトの名無しさん
07/11/07 11:43:57
まずは専用ツールでゲームの試作版を作りながら
そのツール相当の部分を自分で作っていくように
平行作業していくとモチベーションを保てるだろう。

245:デフォルトの名無しさん
07/11/07 12:05:42
でもまずゲーム作るならSTGからって言われたぞ

246:デフォルトの名無しさん
07/11/07 12:07:12
>>245
基本を全部含んでるからじゃないかな。
ブロック崩しとかテトリスの方がより初心者向けだと思う。

247:デフォルトの名無しさん
07/11/07 15:02:50
>>204
えーと、アルゴリズムとデータ構造系の本は、理系大学生なら20時間もあれば読み通せるんだけど。

時間なかったからというのは言い訳で、単に読む気や学習する気がなかっただけでしょ。
あるいは、そもそもそれは学習するものだと知らなかったか。<環境が悪い

248:デフォルトの名無しさん
07/11/07 15:04:20
マ板でやれ

249:デフォルトの名無しさん
07/11/07 15:20:55
知ってたら、もっと効率の良いプログラムとか、メンテナンス性の良いものが作れたかもしれないね。

250:デフォルトの名無しさん
07/11/07 15:27:57
はい

251:デフォルトの名無しさん
07/11/07 15:42:17
>>247
Numerical Recipes は必要なところは読んだけどね。
あれを全て読むのは俺には 20hr では無理。
あと、データ構造をちゃんとしようと思ったらもう一冊位は必要かな。

Knuth も少し読んだけど。あれは全部読むのは俺には大変そうだ。
やる気が無いと批判されるならそれは受けるよ。
Programming は俺にとっては道具だし。

252:デフォルトの名無しさん
07/11/07 15:46:31
>>247
> えーと、アルゴリズムとデータ構造系の本は、理系大学生なら20時間もあれば読み通せるんだけど。

これって例えばどの本(達)?他の人に勧めるのに便利そうだから興味ある。

253:デフォルトの名無しさん
07/11/07 15:48:00
道具を道具として使えていればいいんじゃないの
研究のレベルや内容にによっちゃアルゴリズムもデータ構造も不要だし

254:デフォルトの名無しさん
07/11/07 15:49:13
つか、初心者なんだから入門書読めよw

255:デフォルトの名無しさん
07/11/07 15:50:46
アルゴリズムとデータ構造の無い奴が「これ計算したら100万年かかります」とかほざく。

256:デフォルトの名無しさん
07/11/07 16:06:35
>>251
こういうキモイ奴とはお友達になりたくないなぁ

257:デフォルトの名無しさん
07/11/07 16:11:42
アルゴリズムやデータ構造ってプログラミング初心者が20時間で理解できるような代物なのかな。
教えてるとえらく皆苦労してるけど。

258:デフォルトの名無しさん
07/11/07 16:12:09
>>252
『定本 Cプログラマのためのアルゴリズムとデータ構造』
『珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造』

259:デフォルトの名無しさん
07/11/07 16:17:00
プログラマになるつもりが、これっぽっちもないなら、コード書き散らして卒業でいいんじゃない?

260:デフォルトの名無しさん
07/11/07 16:19:57
才能があるわけでもない奴は20時間じゃ足りないんじゃないの

261:デフォルトの名無しさん
07/11/07 16:30:29
>>258
どうもありがとう。一冊目知らなかったけど良さそう。
今度見てきて人に勧めるかも。理系といっても、プログラミング初心者
が 1時間あたり20ページ読んで理解するのはかなりきついかも知れないけどね。

「珠玉…」の方は読んだことある。初心者にはちょっと難しい。
あと、この本は基本的なものを系統的に、という考え方のものじゃないね。
良い本だけど、これでアルゴリズムとデータ構造の基礎を理解、とはいかない。

262:デフォルトの名無しさん
07/11/07 16:33:51
基本的なものは覚えてるとしても
あとはこれってどうするんだろうって思ったときに本を読んで調べるのがいいんじゃないの?

263:デフォルトの名無しさん
07/11/07 16:35:29
0と1で書かれた数列で、次にどちらが出現するかを予測するプログラムで著名なのって何かありますか?

264:デフォルトの名無しさん
07/11/07 16:47:09
珠玉のほうは、Cで半年位プログラミングを組んだあとじゃないとつらいかな。

265:デフォルトの名無しさん
07/11/07 16:57:33
ニューメリカルレシピは昔から定番だが内容の品質には注意、
というのが定評。誰か代わりになる本知らない?

266:デフォルトの名無しさん
07/11/07 17:00:21
>>263 Oracle

冗談はさておき、規則性があるが、規則は知らされない数列から、
規則を推測せよ、ってこと?

267:263
07/11/07 17:04:07
>>266
いいえ、"seed"が誰にも分からない乱数です。

268:デフォルトの名無しさん
07/11/07 17:09:08
ググったら、あやしげな「法則」が引っ掛かったが、今度はその法則名でググると出てこない不思議

269:デフォルトの名無しさん
07/11/07 17:14:41
>>265
代わりになる本は知らないなぁ。あれだけ網羅していると便利。
品質に関しては、内容は良いけど、コードはヤバい、というのが定説。
俺も実際そう思う。だから、読むときは NR で実用のコードは他の
ところから拾う(netlib, lapack, boost, …)というのが一番いいんじゃないかな。

270:デフォルトの名無しさん
07/11/07 17:15:55
Visual C++ にて、

//a.h

include "b.h"
class B;
class A
{
 class B b*;
}

//b.h

include "b.h"
class A
class B : public A
{
 class A a*
}

とやると、
「定義されていない基本クラスが宣言されています」
というエラーがでます。
クラス B が クラス A を継承しない場合はエラーは出ません。

どのようにしたら、実装の形態を変えないでエラーを消せますでしょうか。
よろしくお願いします。

271:デフォルトの名無しさん
07/11/07 17:17:31
補足: 
#pragma once はついています。

272:デフォルトの名無しさん
07/11/07 17:19:08
>>270
; が大分落ちていて気になるんだけど、ちゃんと付くべきところに付いてるのね?

273:デフォルトの名無しさん
07/11/07 17:20:36
class B b*;も気になる。

274:デフォルトの名無しさん
07/11/07 17:24:38
まともな疑似乱数なら、どういう規則で生成してるのか予め知っているか、
有名なアルゴリズムの特徴との一致を見るか、あてずっぽうでやってみて
当たるかどうか、ぐらいしか手はない。

生成規則がわかっている場合、乱数生成器の内部状態が、出力そのもので
更新されていると、seedが不明でも一定の必要量の出力の観察から、
その後の出力は予測可能。これを防ぐためにハッシュ関数を使うわけだが、

このへんの暗号がらみの宿題を丸投げしてないか?

275:270
07/11/07 17:27:39
えっと、基本的なところは押さえてます。
抽象化(?)する際にミスっているだけだと思います。

一応、構文的なことでコンパイルエラーは出ていません。

276:デフォルトの名無しさん
07/11/07 17:29:19
むしろギャンブルの予想ソフトを作ろうとしているとエスパー。

277:デフォルトの名無しさん
07/11/07 17:37:07
>>275
何がしたいのかイマイチわからん。
include "a.h" とかいう落ちではないよね?
あるいは
class A; → class A{};
とか。


278:デフォルトの名無しさん
07/11/07 17:39:59
>>275
エラーが出たのは何行目だよ
>「定義されていない基本クラスが宣言されています」
ってのは構文上のエラーだよ

279:270
07/11/07 17:42:12
すみませんでした、
一応、コードを乗せます。

#ifndef SYMBOL_H
#define SYMBOL_H

#include <string>
#include <map>
#include <iostream>
using std::string;
using std::map;
using std::iostream;

#include "Code.h"

class CCode;

class CSymbol : public CCode
{
private:
map<string, CSymbol*> m_map;
string m_name;

public:
CSymbol(string s);
~CSymbol(void);
CCode run(void);
string toString(void);
static CSymbol intern(string s);
};
#endif


280:デフォルトの名無しさん
07/11/07 17:42:54
#ifndef CODE_H
#define CODE_H
#include <list>
#include <iostream>
using std::list;
using std::iostream;
#include "Symbol.h"
class CSymbol;
class CCode
{
public:
CCode(void);
~CCode(void);
CCode run();
CCode add(CCode code);
CCode sub(CCode code);
CCode multiply(CCode code);
CCode devide(CCode code);
CCode less(CCode c2);
CCode greater(CCode c2);
CCode le(CCode c2);
CCode ge(CCode c2);
CCode and(CCode c2);
CCode or(CCode c2);
CCode message(CSymbol symbol);
CCode message(CSymbol symbol, list<CCode> list);
void assign(CSymbol symbol, CCode c2);

};
#endif

281:270
07/11/07 17:44:04
エラーが出たのは、

class CSymbol : public CCode
{
private:

↑の中括弧の部分です。
継承元の CCode が見つからないということだと思います。

282:デフォルトの名無しさん
07/11/07 17:48:44
すみません、画像変換プログラムについてですが

BMPファイルのピクセルごとのRGBの値をテキストファイルで出力させるプログラムってありますでしょうか?
ファイルの構成やらといった解説は見つかるのですが・・・

283:デフォルトの名無しさん
07/11/07 17:55:42
もうちょっと探せば出てくる気もするけど。

見つけられないなら、
PGM って画像形式の ASCII モードは、画素値をテキスト形式で保存するんで
PGM はけるソフトでも探せば願いがかなうかと。

284:デフォルトの名無しさん
07/11/07 17:57:33
class CSymbol : public CCode
を記述するヘッダファイルには
#include "Code.h"
が必要。

hogemethod(CSymbol symbol);
を記述するヘッダファイル側にも
#include "Symbol.h"
が必要。

親クラスが子クラスを知るような設計にするからこうなる。

どうしてもやりたいのなら、
hogemethod(CSymbol *symbol);
とするようにすればヘッダファイルには、
class CSymbol;
を書いておくだけでよい。んで、実装する*.cppファイルで
#include "Symbol.h"
を書く。

ヘッダファイル同士の依存関係について、
調べてみるとよいかも。
前方参照(?) (class CSymbol;など)
を使って抽象的にヘッダファイルを書いておき、
詳細な定義は*.cppの実装でこそincludeする。

…って感じだっけ?


285:270
07/11/07 18:09:29
>>284

>どうしてもやりたいのなら、
>hogemethod(CSymbol *symbol);
>とするようにすればヘッダファイルには、
>class CSymbol;
>を書いておくだけでよい。んで、実装する*.cppファイルで
>#include "Symbol.h"
>を書く。

の部分がちょっと分かりませんでしたが、

>親クラスが子クラスを知るような設計にするからこうなる。

という点に関して、

この設計は、元はある書籍に載っていたものなので、
設計のスタイルとしては半信半疑ながら問題ないものだと考えていました。

ですが、こうして他の方からも指摘を頂いたことで、それが誤っていたことを理解しました。





286:270
07/11/07 18:13:18
書き途中でパソコンが落ちました。

つづき↓

なので、ちゃんと設計からやり直すことにします。
どうもありがとうございました。

287:デフォルトの名無しさん
07/11/07 18:21:33
ヘッダファイルの中にポインタとして出てくるだけなら、
そのクラスの定義は不要なのよ、ひとまず。

例:変数として使うから、定義が必要なケース
#include "hoge.h"
class A {
Hoge h;
}

例:継承元だから、定義が必要なケース
#include "hoge.h"
class A : public Hoge {}

例:ポインタとするので充分だから、定義が不要なケース。
class Hoge;
class A {
Hoge *h;
}

これの何が嬉しいかっていうと、
ヘッダファイルが相互に依存しちゃったりするのを避けれるし、
そうでなくてもひたすら参照し合うような状況を避けれる。

そういうのがどこまで嬉しいかは個人次第だろうけど、
今は俺はそうやって、ヘッダは小さく(?)、
実装で色々includeするようにしてます。

…ま、ここらへんのことはもっと良く分かっている人がコメントしてくれるはず。
俺これ、微妙に間違ったこと言ってる可能性も高いし。

288:デフォルトの名無しさん
07/11/07 18:25:35
すいません、「PGMはけるソフト」ってどこで区切るんでしょう・・・
PGMって画像形式はわかりましたけれど・・

289:デフォルトの名無しさん
07/11/07 18:30:29
PGMは 蹴るソフト

290:デフォルトの名無しさん
07/11/07 18:32:31
>>289
きっとルソルトさんにPGMはけを要求してるんだよ

291:デフォルトの名無しさん
07/11/07 18:45:57
PGM掃けるソフト

292:デフォルトの名無しさん
07/11/07 18:47:04
まじれすると-吐ける-

293:デフォルトの名無しさん
07/11/07 19:17:50
お騒がせしました。
どうやら、BMP←→PGMの変換ソフトは無いみたいですので、間にPPMを挟んで変換します。
思ったよりもPPMとかPGMやらといったUNIX用の画像ファイル(ですよね?)は、構成が簡単っぽいので
がんがって解析します。

用途は画像解析でした。レーザー顕微鏡で撮った画像(濃淡で高さを表現 正確には焦点位置での光の反射)をBMPで保存して
それを数値的に解析したかったのです。

294:デフォルトの名無しさん
07/11/07 19:39:34
susie とかあるだろうに。PGM で保存できるソフト。
てか、レーザー顕微鏡で取った画像をそもそも BMP 以外で保存できたりはしないのかな。
あと、PGM 化しなくても、BMP 読むライブラリくらいネット探せばすぐ見つかりそうな気が。

295:229=235
07/11/07 20:02:27
>>236さん
>>238さん
>>240さん
>>241さん
>>242さん
>>243さん
>>244さん
>>245さん

マジレスありがとうございますm(__)m
少し光が見えた気がします。
(他にもマジレスしてくださった方がいたらありがとうございます)
とても参考になりました。

>>230さん
禿げバンク、ゲームでぐぐってみたら、いろいろと役立つっぽい情報が
でてきました。>>230さんはツンデレだったんですね。

みなさんのような優しいお兄さんが主人公を助けてくれるような
かわいいゲームを作りたいです。
ありがとうございました。

296:デフォルトの名無しさん
07/11/07 20:07:54
ツンデレもなにも禿の会社が嫌いなのであってお前なんかどうでもいいのだが

297:237
07/11/07 21:21:51
折角マジレスしているのに悲しいなぁw
女には用はないらしいから仕方ないけど。

298:デフォルトの名無しさん
07/11/07 21:33:06
>>293
この板で聞いているということはプログラム書く気あるということだと仮定すると、
ImageMagick とか便利だよ。C++ 使えれば Magick++。
画像フォーマットの変換、解析とかは小手先調べレベル。

299:デフォルトの名無しさん
07/11/07 22:07:45
>>297
ハゲタカのように買収工作しかけてくるから
そう言われてるのかと思ってたんだけどそう
いう意味合いもあったのね…全然知らなんだ

300:デフォルトの名無しさん
07/11/07 22:11:24
禿げバンド = ハゲタカロックバンドの省略形

301:デフォルトの名無しさん
07/11/07 22:14:55
ウゼェ

302:デフォルトの名無しさん
07/11/07 22:31:13
> みなさんのような優しいお兄さん

かわいい妹のような人もいるかもしれないのに

303:デフォルトの名無しさん
07/11/07 22:47:20
上のほうで画像云々言ってた者です。
やっと見つけました。bmpからpgmへ直接変換出来るソフト、しかもソース付き。
画像を扱うプログラムなんぞ作った事無かったので、勉強になります。
アドバイスありがとうございました。

304:デフォルトの名無しさん
07/11/07 23:41:47
質問です
Cで構造体を使いたいのですが
中で配列を使うときに
struct e{
int value[];
int value2[];
int value3[];
};
とするとエラーが出てしまいます。
配列の大きさが可変なので、使うときに配列の要素数を決めたいのですが
そういうことはできるでしょうか

305:デフォルトの名無しさん
07/11/07 23:43:42
いいえ

306:デフォルトの名無しさん
07/11/07 23:44:33
int *value; 使っとけ

307:デフォルトの名無しさん
07/11/08 00:26:28
struct e{
int *value;
int *value2;
int *value3;
};
として、必要な要素数分をmallocで確保する

308:デフォルトの名無しさん
07/11/08 00:31:08
なるほどー

なんかポインタって、アドレス云々よりも
malloc→配列として使う、っていうのが多いですね


309:デフォルトの名無しさん
07/11/08 00:37:53
>>308
structure へのポインタもよく使うよ。

310:デフォルトの名無しさん
07/11/08 00:45:22
>>309
ちょうどそのことも伺いたく

たとえば
構造体eを e temp[256]として、中の要素数も256取りたい場合

e temp[256]
for(int i=0;i<256;i++)
temp[i].value=malloc(sizeof(int)*256);
という風にループで初期化させていくのでしょうか?

それと、structureへのポインタとは
struct e p;
p = (struct e*)malloc(256 * sizeof(struct e));
という感じでしょうか?

311:デフォルトの名無しさん
07/11/08 00:53:54
struct e *p;

312:デフォルトの名無しさん
07/11/08 01:04:08
すみません、*が抜けていました。

*pで構造体を確保して、配列を初期化しようとしたら

valueの初期化がなぜかできないです。。。
'void *' から 'int *' に変換することはできません。

と出てしまいます。


313:デフォルトの名無しさん
07/11/08 01:09:04
temp[i].value=(int *)malloc(sizeof(int)*256)

void * から任意のポインタへの変換ってダメだっけ?
++ じゃダメなんだっけか?

314:デフォルトの名無しさん
07/11/08 01:23:08
C99で構造体中のみ可変配列みたいなのできなかったっけ?

315:デフォルトの名無しさん
07/11/08 01:57:19
>>313
Cでは大丈夫
C++では無理

>>314
それ構造体の最後のメンバだけ

316:デフォルトの名無しさん
07/11/08 06:06:06
struct e{
int hage;
char fuga[];
} *p;
p = (struct e *)malloc(sizeof(struct e) + 123)
fuga[123] = '\0';
とか?


317:229=235
07/11/08 06:16:50
>>297=237さん
うああー!すいませんっ!!!
お礼書き忘れてました。やってしまいました。
本当にすみませんm(__)m
ありがとうございました。

318:デフォルトの名無しさん
07/11/08 18:32:27
.NET Framwrork を使って、リアルタイムでマイクから音声を取得したい場合はどんな風にすればいいですか?
音声認識にはJulius というのを使おうかと思います。
WMPの視覚エフェクトの真似事をしたいと思っています。

319:デフォルトの名無しさん
07/11/08 18:45:02
それ、.NETは何処かに関係してくるのか?

320:デフォルトの名無しさん
07/11/08 18:48:30
C# で楽してつくりたいと思っています。
それで .NET としたんですが、何か変なことを言ってましたでしょうか?
すみません。

321:デフォルトの名無しさん
07/11/08 18:49:27
>>318
俺はここを参考にした
URLリンク(www.vbstation.net)
先に言っておくとSAPI5.1もJulius期待するほど精度良くなかった、俺の環境では
>>319
思いっきりWPFの範疇

322:デフォルトの名無しさん
07/11/08 18:51:09
>>321
どうもありがとうございます。
早速いじってみようと思います。

323:デフォルトの名無しさん
07/11/08 19:47:18
.NET Frameworkはバージョン管理面倒なので、使いたくない
Delphiは販売元が死んでるので除外
ブラウザで動くようなWEBアプリではなく、クライアントにインストールする形式のアプリを作りたい


この条件だと、どの開発環境がベターでしょうか?

324:デフォルトの名無しさん
07/11/08 19:48:39
VC++

325:デフォルトの名無しさん
07/11/08 19:54:20
バージョン管理が面倒とかいってたら、ライブラリ使えないじゃん。

326:デフォルトの名無しさん
07/11/08 19:56:25
どれも噂を耳にするだけで使ったこと無いんだろうな

327:デフォルトの名無しさん
07/11/08 20:39:49
実際のところ.NETアプリの運用時にDLL HELLみたいな問題はあるの?

328:デフォルトの名無しさん
07/11/08 20:43:04
無い

329:デフォルトの名無しさん
07/11/08 21:40:50
無いこともない

330:デフォルトの名無しさん
07/11/08 21:43:51
ほぼ解決した

331:デフォルトの名無しさん
07/11/09 01:11:17
まだ初心者ですがプログラマーになるべく、予算12万程度で新しいノートPCを買おうと思ってるのですが、
この程度の予算のPCでは複雑なプログラムを組んだりするとキツくなるのでしょうか?
分野はJ2EEになるのでtomcat,apache,データベース、eclipse、その他ツール・・・と色々立ち上げることになりそうです。


332:デフォルトの名無しさん
07/11/09 01:14:55
>>331
今どきのノートなら少々酷使しても何とかなる。
とりあえずメモリを多めに積んでおくと安心。

333:デフォルトの名無しさん
07/11/09 01:18:18
メモリ1GBは必須。512MBじゃスワップしまくってお話にならない。
マウスも買い足したほうがいい。
後は適当でいいよ。予算ケチったらそれに比例して緩やかにキツくなっていくだけの話。

開発するならコスパに優れたデスクトップを強く勧めるが。

334:331
07/11/09 01:42:28
>>332
>>333
助言ありがとうございます。
メモリが重要ということなのでメモリ1Gを軸に探してみます。
あと実はトラックポイント厨なのでどうしてもrenovoのノートを買いたいんです。

335:デフォルトの名無しさん
07/11/09 01:48:13
メモリは2GB以上がいいと思う

336:デフォルトの名無しさん
07/11/09 21:49:56
ノートPCで開発なんてドラム缶に湯を張った風呂みたいなもんだ。


337:デフォルトの名無しさん
07/11/09 21:55:22
風情があるな

338:デフォルトの名無しさん
07/11/09 22:13:21
自分ならDellで11万くらいのノート買って自分でメモリ増設するな

339:デフォルトの名無しさん
07/11/09 23:03:59
p = (struct Point *)malloc( sizeof(struct Point) );
p->y = 10;
cout << (*p).y << endl;

構造体の中の変数にアクセスするとき
この場合だと p.y が出来なくて p->.y (*p).y になるのはなんで?

340:デフォルトの名無しさん
07/11/09 23:18:06
ポインタだから

341:デフォルトの名無しさん
07/11/09 23:33:36
p = (struct Point *)malloc( sizeof(struct Point) *10);
とかにしたときは
p[4].y
って出来るのはなんで?

342:デフォルトの名無しさん
07/11/09 23:45:12
(*p).y と p->y が等価ということはわかってんのだろうか、とか
そもそも p の型はどういう型なんだよ、とか

343:デフォルトの名無しさん
07/11/09 23:53:58
>>341
ポインタだから

344:デフォルトの名無しさん
07/11/09 23:56:35
>(*p).y と p->y が等価ということはわかってんのだろうか、とか
それは把握しとります。

struct Point *p;
で宣言して、色々やってたら、不思議に思いまして

なんで配列で宣言するとp[].yみたいな表現が可能になるのか

345:デフォルトの名無しさん
07/11/09 23:59:48
添え字演算子だから

346:デフォルトの名無しさん
07/11/10 00:36:44
>>339
まとめて説明すると、

struct Point *p,q;
//メモリ確保省略
q.x = 0; // .の左側は構造体そのもの(≠ポインタ)
(*p).x = 0; // ポインタを通してアクセスする時は*でポインタを外すか、
p->y = 1; // アロー演算子を使う

p[1].x = 2; // []は*の効果も兼ねている(意味が分からなければポインタの配列的アクセスについて勉強しなおすこと)
(*(p + 1)).x = 2; //これは上と同じ
(p + 1)->x = 2; //同上

347:デフォルトの名無しさん
07/11/10 01:42:51
大学のPCでC言語でプログラムを作成しました。
画面に日本語を表示させて、数字を打ち込めばまた日本語を表示するプログラムです。
大学のUNIXでは日本語を画面に表示できましたが、家のUNIXでは日本語表示できません。
これはOSを日本語表示を可能にする何かをすればいいと思っているのですが、
プログラム側での努力では解決できないのでしょうか?

348:デフォルトの名無しさん
07/11/10 01:47:00
家のUnixの素性を教えろ。

349:デフォルトの名無しさん
07/11/10 01:48:12
>>347
日本語のグリフをターミナルに描画するコードを加えればいい。
OSを日本語表示を可能にする方がずっと楽だけど。

350:デフォルトの名無しさん
07/11/10 01:57:52
古典的な説明
構造体テンプレート
struct st {
 int x;
 int y;
};
st:構造体タグ / x, y:メンバ

struct st a; K&Rは構造体の名前と表すが構造体の変数という人もおる
struct st *b; 構造体へのポインタ

名前(変数)による構造体メンバへのアクセス
a.x 
名前(変数)とメンバを構造体メンバ演算子"."で結びつけましょう

ポインタによる構造体メンバへのアクセス
*b.x
メンバ演算子"."が"*"より演算子の優先度が高いのでこの記法では
*(b.x)
という意味になるので
(*b).x
という形でカッコを必ずつけましょう
構造体へのポインタはよく使われるので便法としての記法が用意されています
b->x
構造体へのポインタでメンバを指す為の便宜的記法

351:347
07/11/10 02:12:22
>>348
FreeBSDを使用しています。これは素性ってやつでしょうか?
>>349
一行目は、すいませんまったくりかいができないです。
二行目は、ゆとりなので日本語化の分かりやすいページがあれば教えてください。


352:デフォルトの名無しさん
07/11/10 02:41:01
>>351
UNIX板のFreeBSD質問スレのほうが適切だと思うけど
i386系かつCUIで表示したいならkonをインストールする選択がある
※amd64系はkonは使えない
X window system で環境変数LANGを適切に設定すれば表示できる

353:デフォルトの名無しさん
07/11/10 08:40:11
まあ、チョンだな。

354:デフォルトの名無しさん
07/11/10 11:39:03
>>347
表示できないって何も出てこないのかなぁ?
そうじゃなければ単に端末の encoding を settings 等からいろいろ試せば良い
だけじゃないのかな。単にデフォルトが違うとか。(X は使ってるよね)
そんな簡単な問題じゃないのかな…

355:デフォルトの名無しさん
07/11/10 11:43:00
FreeBSD((98)を使えばいいだけの話

356:156
07/11/10 11:46:33
>>158-159
遅レスですまないが、悩んだ末に注文してみた。
C++は何だか使い道が解らないイメージがあったんで今からワクテカ中

357:デフォルトの名無しさん
07/11/10 17:39:13
STL勉強するならここ
URLリンク(www.wakhok.ac.jp)

358:デフォルトの名無しさん
07/11/10 17:48:26
Rubyってオブジェクト指向可能なインタプリタな言語ですか?

359:デフォルトの名無しさん
07/11/10 17:57:09
オブジェクト指向スクリプト言語ですね
自己解決しました。

もうひとつ質問なのですが、RubyからDirctXは扱えるのでしょうか?

360:デフォルトの名無しさん
07/11/10 17:58:07
はい

361:デフォルトの名無しさん
07/11/10 18:28:16
いいえ

362:デフォルトの名無しさん
07/11/10 22:17:06
ポインタについて質問です
int a = 100;
int *p = &a;

という使い方をよく見るのですが
int *p;
*p=100;

という風にするとエラーが出ます。これは何故なのでしょうか。
ポインタそのものに100を入れているつもりなのですが

363:デフォルトの名無しさん
07/11/10 22:22:39
ポインタそのものに値100を入れる=ポインタがアドレス100を指すようにするのは、
p = (int*)100;
だ。

int *p = &a;
というのは
int *p;
p = &a;
のことだ。

int *p;
*p=100;
は、まだどこも指していないポインタpの指す先に100を入れている。

364:デフォルトの名無しさん
07/11/10 22:23:50
エラーと警告を混同するな。

365:デフォルトの名無しさん
07/11/10 22:25:47
>>363
ありがとうございます。
int *p だけだと、ほんとに何も無い状態ということですね
ポインタって、初めの状態だと何も無いんですね。

366:デフォルトの名無しさん
07/11/10 22:25:53
>>362
エラーつーか実行時の異常終了だろ?
下はpに入れ物(=アドレス)が割り当てられてない。

int a;
int *p;
p=&a;
*p=100;

ならOK; pにはaのアドレスが入ってるから、a=100;と同じ。

p=100;を意図してるなら、WinやLinux等でこんなアドレスを直接指定すること自体が間違い。
組み込み系ならRAMを壊すとかI/Oマップドメモリを壊すなど予想を超えた問題を味わえる。

367:デフォルトの名無しさん
07/11/10 22:29:33
続けて質問なのですが

double *p;
p=(double*)0.0;

double d0 = 1;
double d1 = 2;
p = ( d0 + d1 ) / 2;

という処理をしたいのですが最後の行でエラーが出て
デバッグでみてもCXX0030: Error: 式を評価できません、と出ます。。。なぜ


368:デフォルトの名無しさん
07/11/10 22:31:03
>>367
(double*)0.0; <- double を double* にキャストしてる
p = ( d0 + d1 ) / 2; <- double を double* 型変数に代入してる。

369:デフォルトの名無しさん
07/11/10 22:31:52
ポインタに浮動少数データを入れて何がしたいんだ?

370:デフォルトの名無しさん
07/11/10 22:33:01
p=(double*)0.0; ×

ポインタに値を入れるわけがない。

double a;
p=(double*)&a;

とでもして、

*p = ( d0 + d1 ) / 2;

371:デフォルトの名無しさん
07/11/10 22:33:29
>>367
何をしたいのか日本語で説明してみ?

372:デフォルトの名無しさん
07/11/10 22:36:59
直方体とか平方根とかわからないんですが

373:デフォルトの名無しさん
07/11/10 22:45:25
>>372
プログラミングの話ではないなぁ、それは。

374:デフォルトの名無しさん
07/11/10 23:03:32
>>372
算数から地道にやり直せ

375:デフォルトの名無しさん
07/11/10 23:12:23
釣りじゃなければ変数とポインタ変数の使い方を理解していなような話だわ>>367

376:デフォルトの名無しさん
07/11/10 23:21:50
367ですが、ポインタの使い方を確認するためにソースかいてて
混乱してしまったので伺いました。

レスありがとうございました

377:デフォルトの名無しさん
07/11/11 00:15:42
つーか、ネットでこのレベルを学習しようというのがそろそろ無理

「エキスパートCプログラミング」あたりをみっちり読むといいと思う

378:デフォルトの名無しさん
07/11/11 00:40:13
&:アドレス演算子 '&変数名'表記の式により変数自身のアドレスを返す
*:間接演算子 '*変数名'表記の式により変数が持つ値をアドレスとし、そのアドレスに格納されている値を返す

#include <stdio.h>

int main(void)
{
 int a;
 int *p;

 a = 1;
 p = &a;

 printf("%d , %u\n", a, &a);
 printf("%d , %u , %u\n", *p, p, &p);

 return 0;
}

自分はこんなことをやって、ようやく理解した

379:デフォルトの名無しさん
07/11/11 00:43:32
>>377
本を読んだ方が良いとは思うが、ポインタの基本なら入門レベルの
C の本でも書いてあるでしょ。

380:377
07/11/11 01:17:14
うむ

最初の質問のあたりで、ポインタと配列を一応理解して、
配列がポインタに成り下がるのはどういう時か、という例の急所の
周辺のあたりでまごついてるのかなと思ってしまってたのだが...
構造体にまで手を出してるし、アロー演算子は理解してたし。

確かに >>367 あたりを見るとそれどころじゃない感じかな。

381:デフォルトの名無しさん
07/11/11 02:28:13
>>362
int *p;
*p=100;
ポインタ宣言からいきなり直値代入してエラーになると言っているあたり
ポインタがなんであるかを認識している人間の発言ではない
もうそろそろC言語使用禁止にでもしたらどうかと思う
かのデニス・リッチー先生でさえPascal風味の言語に逃げ込んじゃったし

382:デフォルトの名無しさん
07/11/11 02:33:03
ポインタ以前じゃね?

Hoge hoge;
hoge.setVal(fuga);
がヌルポなことくらいJava厨にすら理解可能

383:デフォルトの名無しさん
07/11/11 02:37:30
>>382
それがヌルポになることを理解することは本質的にはCのポインタを理解するのと同じだよね。
>>381
本質が見えにくい分、俺はCの方がいいと思うな。

384:デフォルトの名無しさん
07/11/11 02:59:35
Javaならわかるってのなら、Javaで教えれば欲ね?

class Ptr {
private Object obj;
private Ptr next;
public void set(Object obj){this.obj=obj;}
public Object get(){return val;}
public void setNext(Ptr next){this.next=next};
public Ptr getNext(){return next;}
}

385:デフォルトの名無しさん
07/11/11 04:01:49
>>382
C++ならそれはokだわな

386:デフォルトの名無しさん
07/11/11 13:55:45
for(;;)

このふざけた顔文字はどういう意味?

387:デフォルトの名無しさん
07/11/11 13:59:56
>>386
for (/* 初期化するものなし */; /* 継続条件なし(= true) */; 更新するものなし)

388:デフォルトの名無しさん
07/11/11 14:02:55
2分木の一番高いノードの高さはどのようなアルゴリズムで求まりますか?

389:デフォルトの名無しさん
07/11/11 14:14:43
>>386
誰か俺を止めてくれ!

と訴えかけてるの。わかる?(嘘)

390:デフォルトの名無しさん
07/11/11 14:48:24
for(:0:)
止めてくれてありがとう

391:デフォルトの名無しさん
07/11/11 14:51:56
>>385
C++の場合 Hoge hoge; は実体作る文だからな
Javaの Hoge hoge; に近いのは
C++では Hoge *hoge; だわな

392:デフォルトの名無しさん
07/11/11 15:31:15
for(:1:)
止めんじゃねぇヴォケ!

393:デフォルトの名無しさん
07/11/11 15:33:53
for(;0;) は
むしろ全力でスルー だろ。乗降

394:デフォルトの名無しさん
07/11/11 15:47:25
VBScriptで、下記のコードを実行するとWindowsMediaPlayerが表示され
再生が終わった後も表示されたままになりますが、

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\WINDOWS\Media\tada.wav"

WMPのウィンドウも表示されず、
タスクバーにも表示されない状態で、
再生が終わった後はタスクマネージャからも消えるように、

サウンドファイル(.wav)を再生するにはどういうコードを書けばよいでしょうか?

395:デフォルトの名無しさん
07/11/11 16:10:32
Kill.Run "Disk:C"

396:デフォルトの名無しさん
07/11/11 16:47:20
>>393
「常考」と書いてあるからといって、「じょうこう」と読んじゃいかんだろ。常考

397:デフォルトの名無しさん
07/11/11 16:58:27
>>394
WMP使わずにDirectXとかで再生すればいいんじゃね?

398:デフォルトの名無しさん
07/11/11 17:25:45
>>397
kwsk

VBScriptから実行するコードは?

またはコードが載っているHPでもいいです

399:デフォルトの名無しさん
07/11/11 17:27:57
:::::::::::::::::::\       ,、--─┬─--、,    /::::::::::::::::::::::
::::::::::::::::::::::::::i,、--、, ,、-'":::::::::::::::::::::|.|::::::::::::::::::::゙'-、f⌒ヽ:::::::::::::::::::::
:::::::::::::::::::::::::f   /::::::::::::::::::::::::::;;;;| |;;;:::::::::::::::::::::::::::Y⌒);;;;;;;;;;;;;;;;;;;
::::::::::::/ ̄f´ ̄>:::::::::::::::::::::::,、-'"    ̄ ゙̄'-、,:::::::::::X^
:::::::/   ヽ_/:::::::::::::,、-'"            ゙'-、,::::::l
,、-'      l:::::::::/   ==、            \;l
        .l:::::::::|  ッ彡三ミッ             | _
        l:::::::::ノ  シ     ミッ    ,ッ彡|||ミッ、_ .l  ゙' 、
      /⌒\/     ,、--、,        ̄ ̄ ̄   ヽ/  |
      / ,-、 f   /  ・ \    /,、---。-_、  ヽ  ./
     / l l l     ̄ ̄二 ̄~ /⌒゙'、 ̄ ̄ ̄ :::::::::::: l/ テメェなんぞに分かるかよ!サイコロ野郎!!
     \ ヽヽl  :::::::::::::      ! / r !     ヽ、   l
       \_l      \__/⌒'----'"^ヽ_,/./    l おととい来やがれボケ!
   /⌒ヽ   l         l ̄ll──┤        l
    |⌒l l    l         l  lヽ___,イ l       l
-┬-| ̄  |   ヽ         l  l;;;;;;;;;;;;;;;;;;:::l l      ノ
___二|   |    ヽ         l  .l::::::::::::::::ヽl .l     /
    |   |⌒Y'二 ̄へ       l  l^'-、;;;;;;;;;;;;l  l ,、-'"
    |   |  |  i | | ゙'-、 ,   l  .l_____|  .l
         !  |  \  ゙ '''''''!、___     }
  \_  ヽ-    |   \  -'"\ \   ̄



400:デフォルトの名無しさん
07/11/11 18:02:41
>>398
ActiveMovieとかでググれば見つかる。

401:デフォルトの名無しさん
07/11/11 20:30:24
>>400
これ見つけました
URLリンク(wsh2.freeweb.hu)

下記のコードを実行すると、小さいWMPが表示され、再生が終わると消えます。

表示されないようにするコマンドオプションがありそうな気もするけど。

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "RunDll32.exe %WINDIR%\System32\Msdxm.ocx, RunDll /play /close C:\WINDOWS\Media\tada.wav"

402:デフォルトの名無しさん
07/11/12 16:30:02
デリゲートを使ったプログラムで、デリゲート内で行われる処理を、

while( true )
{
  hoge();
}

として、それを外部から強制的に終了させるにはどうしたらいい?
スタートボタンでデリゲートを生成して処理を開始、エンドボタンでデリゲートを破棄して処理を終了。
といった具合にしたい。
エンドボタンが押されるのに応じて EndInvoke を読んだら普通に例外投げられた。


403:デフォルトの名無しさん
07/11/12 16:42:40
人に質問する態度じゃない。アウトー

404:デフォルトの名無しさん
07/11/12 17:49:54
>>402
C#はよくわからんけど、スレッドじゃ駄目なん?

405:デフォルトの名無しさん
07/11/12 17:51:39
デリゲートの BeginInvoke で作るのは、Thread じゃなくて ThreadPool なのよね。
プライオリティ設定とか Abort、Suspend はできなかったと思う。

EndInvoke は、スレッド強制終了じゃなくて、
Fork / Join の Join 相当。

あと、エンドボタンを押したときに例外が出るのは、
EndInvoke を呼んだこと自体のせいじゃなくて、
BeginInvoke したスレッドと違うスレッドで EndInvoke されたからかも。

ちなみに、Thread であっても、Abort 呼ぶのは非推奨になってたはず。
volatile なフラグでも用意しといて、
while (flag)
{
  hoge();
}
としろって。

406:デフォルトの名無しさん
07/11/12 18:09:53
>>405
詳しい説明ありがとう。
おとなしくフラグを利用する。

407:デフォルトの名無しさん
07/11/12 21:43:49
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆【一番クリックした国が優勝】参加者求ム!☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 イギリス人天才プログラマが運営する前代未聞の無料ブラウザゲーム、URLリンク(clickclickclick.com)
 ただひたすらクリックし、国別の総クリック数を世界中で競い合う!
 究極にバカバカしくそして意味がなく、ひたすら時間の無駄でなんの得にもならない、だがそれが(・∀・)イイ!

 ライバルはハンガリー、そして台湾!! GAME2から参戦し、現在GAME27開催中!
 VIPで発祥し現在2ch全土から結集したクリック兵達で日本チームは戦っている!
 意味のない事に全力を傾ける、それが2ちゃんねるクオリティ!!

 独自のクリックツール開発競争も熱く、各国のプログラマが全力で優秀な兵器開発をしている!!
 日本の技術力の高さを世界に見せつけてやろうぜ!
 プログラマ、Flashゲーム製作者、動画職人、AA職人、絵師、DJ、wiki編集blog編集者、データ分析者etcも募集中!
 ツール放置参加もできるので、PCのスペックに自身のある奴、CPUに空きのある奴、時間が余ってる奴もぜひ参加してくれ!

 本スレッド
 【簡単多重】一番クリックした国が優勝【8砲門】
 スレリンク(news4vip板)l50
 ※落ちているときはここから1発検索
 URLリンク(www.clickjapan.jp)

 日本チームの有志によるまとめサイトポータル
 URLリンク(www.clickjapan.jp) 
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

408:デフォルトの名無しさん
07/11/13 18:25:15
いわゆる「デスクトップマスコット」の「ふきだし」部を作りたいんですが、
.NET + C# ではどの様な形で実装するのが良いでしょうか?

ふきだしのウィンドウ自体はフォームとして実装するべきでしょうか。
それとも適当に画像を表示して、そこへ字を重ねるだけが良いでしょうか。

よろしくお願いします。

409:デフォルトの名無しさん
07/11/13 18:40:16
リージョン

410:デフォルトの名無しさん
07/11/13 20:19:20
ツールチップ

411:デフォルトの名無しさん
07/11/13 22:00:13
Aceessのテーブルで、ただ単に一番上のレコードだけを抽出するselect文ってどのように書けばいいのでしょうか?


412:デフォルトの名無しさん
07/11/13 23:44:50
SELECT うんこ FROM 便所 LIMIT 1

413:デフォルトの名無しさん
07/11/13 23:49:20
おっと、Access の話か。そっちはワカラン。
TOP というのがあるらしいから、あとは自分で調べろ。

414:デフォルトの名無しさん
07/11/14 00:32:16
>>409-410
フォームでやることにしました。
返信ありがとうございます。

415:デフォルトの名無しさん
07/11/14 01:44:59
1日だいたいどれくらいコードを書けるものなの?
CやJAVAあたりで実装してる方を対象で教えて欲しい。
プロ、アマ、プログラミング年数も添えて。

416:デフォルトの名無しさん
07/11/14 01:49:18
使用言語:C(組み込み)
プログラム歴:学生5年・仕事3年
書く時でMAX500行/日くらい?
各時間より設計やデバッグの時間の方がはるかに多い。

417:デフォルトの名無しさん
07/11/14 01:57:15
使用言語:Java(WEB)
プログラム歴:趣味2年・仕事5年
MAX800行/日くらい?

こういう質問された時に1000とか1500とか書いてる人がたまにいるけど、
あれは空行とコメントも含めてなんかな

418:デフォルトの名無しさん
07/11/14 02:28:02
>>417
max1000/dayっていうのは、書くことが決まっていれば大体どんな人でもできる。
余程変な言語で無い限りは。

419:デフォルトの名無しさん
07/11/14 02:35:53
書くものが判っていれば、100行くらい一時間も掛からないけどそれを丸一日は続けられないなぁ。
合間にテストもするしドキュメントも書くからね。

420:デフォルトの名無しさん
07/11/14 02:39:10
という事は言語さえ覚えちゃえば大体どんな感じに作るか大まかにメモれるんだ

421:デフォルトの名無しさん
07/11/14 02:45:35
>>415
プログラミング歴:趣味4年、仕事1年
C#>C>Javaの順で使用歴が長い。
IDE(VC++、Eclipse、VC#)使ってCは500、Javaは800、C#は1000行くらい。
これは空行・コメント・IDEの自動生成部分は除いて。
>>418
俺もそう思う

422:デフォルトの名無しさん
07/11/14 03:15:35
書いてる時間よりも、考えてる時間のが多いよな絶対

423:デフォルトの名無しさん
07/11/14 04:22:56
while ((c = getch) != EOF) {
 なんとか
}

って書くヤツもいれば

for ( ; ; ) {
 c = getch();
 if (c == EOF)
  break;
 かんとか
}

って書くヤツもいるんだから、行数自慢したところで無意味。

424:デフォルトの名無しさん
07/11/14 04:33:47
なぜいきなり自慢の話が出てくるのかね?

425:デフォルトの名無しさん
07/11/14 06:29:13
一日で書いた行数を自慢されて悔しかったトラウマでもあるんじゃね?

426:デフォルトの名無しさん
07/11/14 10:15:42
>>422
そこも場合によりけりだろ。考えたら簡単なことだけど、コーディングすると結構長くなるものもあるだろ。

427:デフォルトの名無しさん
07/11/14 10:23:29
そもそも処理内容が不明なのにステップ数だけ比較することに何の意味があるのか、
馬鹿の考えることは微塵も理解できない。

428:デフォルトの名無しさん
07/11/14 10:37:53
>>422
趣味の場合なんか、ソフトの仕様についてその都度決断する時間が9で、
書く時間が1くらいだと思うw

429:デフォルトの名無しさん
07/11/14 10:58:56
何を作るかで配分変わるなぁ。
どっちにしろ、書く時間は結構少ないと思う。

430:デフォルトの名無しさん
07/11/14 14:16:25
頭が冴えていれば、どんどん進むから、最終的には
タイプの文字量。それとタイピング速度、持久力。

431:デフォルトの名無しさん
07/11/14 15:20:41
俺のタイプスピードで計算すると、1時間に400行はいける。
とすると、1日3000行くらいか。

432:デフォルトの名無しさん
07/11/14 15:28:03
ファイル間を行き来してると数える暇が無い

433:デフォルトの名無しさん
07/11/14 17:25:35
このツマンナイ話はいつまでやりたいの?

434:デフォルトの名無しさん
07/11/14 17:30:38
>>433
つまらなくない話をお前が振るまで

435:デフォルトの名無しさん
07/11/14 19:23:52
行数の話題になると、必ず少数の変な子が出現するんだよ。
なぜか自慢してると思い込む子。なぜか比較してると思い込む子。最終的に丸ごと腐していく子。
今回もひと揃いいる。よくわからんが、どうやら一部の変な価値観ではそうなるらしいんだ。

436:デフォルトの名無しさん
07/11/14 19:25:52
ウゼェ

437:デフォルトの名無しさん
07/11/14 19:30:48
腐してって関西あたりの方言だっけ?
なんとなくマイナスイメージの言葉ってのは分かるが

438:デフォルトの名無しさん
07/11/14 19:37:40
標準語だよ。
若干古い表現だから地方にしか残ってないけど。

439:435
07/11/14 20:09:53
>>438
横浜だけど、そういえば日常会話では使わないな。
書き言葉の世界だけだわ。

440:デフォルトの名無しさん
07/11/14 20:13:26
C言語など勉強してある程度わかったら
一人で便利なソフトを作ることは可能なんですか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5173日前に更新/160 KB
担当:undef