スレ立てるまでもない ..
[2ch|▼Menu]
175:デフォルトの名無しさん
07/11/06 16:31:35
>>174
なんでスライドさせんだよ。
ニュース見て無いて事と、害のあるニュースがある事は全く別の問題だろ。

176:デフォルトの名無しさん
07/11/06 16:35:03
>>175
新聞ニュースを見てる見てないで一概に決められないと言っている
新聞ニュースを見ていてもトンデモ記事に踊らされているような奴は

177:デフォルトの名無しさん
07/11/06 16:35:22
けちろうとしてガソリン車に軽油入れて修理代が飛ぶ
無知な奴には丁度いい罰だ

178:デフォルトの名無しさん
07/11/06 16:35:57
これからは電気自動車の時代だよ。

179:デフォルトの名無しさん
07/11/06 16:37:39
>>178
市販向けに開発進んでるんだっけ?
メーカーどこか忘れたけど。

180:デフォルトの名無しさん
07/11/06 16:49:10
>>166
「軽自動車はガソリンに比べ税金の安い軽油を利用」

ワロタ

181:デフォルトの名無しさん
07/11/06 16:51:03
ここはム板だ。そろそろやめれ

182:デフォルトの名無しさん
07/11/06 16:58:27
ここはム板らしくこの問題をプログラムでどう解決するかって話をしよう

183:デフォルトの名無しさん
07/11/06 17:08:18
>>182
給油機のナビ画面で最初にヒッカケクイズを出す(軽自動車は軽油で走る Y/N)とか
全問正解するまで給油させないW

184:デフォルトの名無しさん
07/11/06 17:30:16
>>172
つまり、ガソリン車にはガソリンを入れる程度の知識がない奴が、自分でガソリンを入れてはいけないのと同様、
プログラミングをするなら最低限の知識を付けましょうってこと。

アルゴリズムとデータ構造は、この最低限の知識にあてはまると俺は思う。

185:デフォルトの名無しさん
07/11/06 17:53:39
給油口の形をガソリン車とディーゼル車で変えれば良かったのにね

186:デフォルトの名無しさん
07/11/06 17:58:17
ライブラリの使い方を知っておくか
内部構造を知っておくかの違いだね
俺は前者だったから基本情報処理の試験苦労してるよ

187:デフォルトの名無しさん
07/11/06 17:58:36
軽自動車に軽油入れたら例外飛ぶようにすればおk

188:デフォルトの名無しさん
07/11/06 18:05:36
>>182
給油機にカメラを搭載してナンバーや外観から車種を識別したり国交省のDBに問い合わせしたり。
ついでに一部の違法改造車もはじける。

189:デフォルトの名無しさん
07/11/06 18:06:46
>>188
で毎朝のデータ更新の時に65535件以上のデータがあったら動かなくなる。

190:デフォルトの名無しさん
07/11/06 18:07:36
>>188
その機械の費用は誰が出すんだ?

191:デフォルトの名無しさん
07/11/06 18:09:15
おまえらガリソンガリソンうるせーよw

ところでこれなんだけどさ
URLリンク(gwt-ext.googlecode.com)
URLリンク(www.mygwt.net)
どう思うかな?率直な感想求む

192:デフォルトの名無しさん
07/11/06 18:11:14
>>191
重い。

193:デフォルトの名無しさん
07/11/06 18:22:27
>>184
アルゴリズムと言ってもいろいろある。どんなプログラムだって
データ構造もアルゴリズムはある。なけりゃ走らん。

知らなければならない、という以上は定番のアルゴリズムやデータ構造
ということになると思う。そうすると、様々なソート、乱数発生、グラフとか。
FFT とかも入るのかな?データだとスタック、リンクリスト、ツリー構造、
ハッシュ、とか。

プログラミングするなら全て学ばないといかんということ?

coding が職業ならまだわかるが、プログラム書く人皆にこれを
強制するのはどうかな…あと、必要な時に学べば良いと思うし。

194:デフォルトの名無しさん
07/11/06 18:26:15
VB6とオラクルで作られたシステムでDBサーバーにオラクル入ってるんだけど
クライアントにもオラクルクライアント入れないと動かない?
初心者質問で申し訳ない。


195:デフォルトの名無しさん
07/11/06 18:36:46
>>190
販売者と税金

196:デフォルトの名無しさん
07/11/06 18:43:34
>>193
知ってるにこしたことはない。

197:デフォルトの名無しさん
07/11/06 18:48:38
>>193
強制なんて出来ないだろwwww
やった方がいい、という先人からのアドバイスなんだから聞くか聞かないかは勝手にすりゃいい。

198:デフォルトの名無しさん
07/11/06 18:53:12
>>196
その通りだと思うよ。

ただ、「知ってるのにこしたことはない」と「プログラミングを
するなら最低限の知識」とは全然違う。

具体例でいえば、うちに来ている SE とかに説明してみて、
といったらかなりの割合でできないだろう。本業ではないが
一応プログラミングはちょっとはできるはずだけど。

199:デフォルトの名無しさん
07/11/06 20:12:07
>>195
ガソリン税が増税され、それにプラスしてガソリン自体の販売価格も上がることになる。
結局利用者が負担することになるだけ。

200:デフォルトの名無しさん
07/11/06 20:39:46
個人向けのガソリンなんてもっと高くていいよ。

201:デフォルトの名無しさん
07/11/06 21:45:23
>>193
> 必要な時に学べば良いと思うし。
必要に迫られてもなかなか腰を上げようとしないのが人間だ。
つぅか、全て頭に叩き込めなどと無謀な事を言う気はサラサラ無い
少しづつ空いた時間に本を斜め読みする程度でもかまわない
言葉だけでも頭の片隅に留めておけば良い

ただ、関心を持ったこともない、ひとつでも覚える気もないという輩は
そうそうにこの世界から退席願いたい

202:デフォルトの名無しさん
07/11/06 22:01:07
>>199
そりゃ当たり前だ
しかし転嫁まで考えたらキリが無いから言わなかったんだよ

203:デフォルトの名無しさん
07/11/06 22:59:48
>>202
利用者が納得しないような案なんてどうかしてる
なにも考えずにごり押しでやってるからこの業界も好転しないんだよ

204:デフォルトの名無しさん
07/11/06 23:07:23
俺はプログラミングは大学時代に学んだ。理系で研究に必要だったから。
その当時は今から考えるとアルゴリズムもデータ構造もちゃんとは
わかっていなかった。その後大分たっていろいろ自分で勉強したけど。

ただ、当時、「プログラミングは最低限アルゴリズムとデータ構造は
わからなきゃダメ」と言う人はいなくて助かった。プログラミングは
道具だったからそこまでは当時時間無かったから、できなくなっちゃうからね。
プログラミングをしていていろいろ考えて学ぶから、入りやすい
方が良いとは思うな。




205:デフォルトの名無しさん
07/11/06 23:09:46
税金はともかく企業努力で吸収する発想が無いんだなぁ

206:デフォルトの名無しさん
07/11/06 23:13:12
まったく利点にならないお荷物を吸収する義理も無いよね

207:デフォルトの名無しさん
07/11/06 23:18:13
>>206
利点はあるが採用するかどうかはコストと効果の兼ね合いで決まるもんだよ。

208:デフォルトの名無しさん
07/11/06 23:21:40
>>207
お前なら採用するのかね

209:デフォルトの名無しさん
07/11/07 00:40:42
アルゴリズムを考え出す能力がひつなんであってアルゴリズムが先に必要なんじゃないよな
先に知っておけば車輪の最発明をしなくてすむってだけの話し
即戦力モドキにとっては必要だが

210:デフォルトの名無しさん
07/11/07 00:52:58
その前に、日本語を覚えてくれ。

211:デフォルトの名無しさん
07/11/07 00:54:08
一部の馬鹿が起こすミスを、利用者全体で負担するぐらいなら、
馬鹿が自己責任で修理代を払うのがスジだろう。

212:デフォルトの名無しさん
07/11/07 01:01:49
ディレクトリを作成したり、ファイルをコピーしたりする目的でバッチファイルを書きたいんだけど
もともとDOSコマンドって変体仕様がおおいじゃないっすか?
もっと使い勝手がよくてWin2k以降ならどんなマシンでも使用できるスクリプトってありますか?
パワーシェルとか言う奴はインストールする必要があるんですよね?

213:デフォルトの名無しさん
07/11/07 01:12:45
>>212
WSH(Windows Script Host)。
言語は選べるが、win2k以降なら
デフォルトで VBScript と JScript が使えるかと。

214:デフォルトの名無しさん
07/11/07 01:20:01
>>213
そうなんですか。ありがとうございます。VBスクリプトってバッチっぽく使えるものなんですね。
教えてくれてありがとう。早速勉強してきます


215:デフォルトの名無しさん
07/11/07 01:23:10
ディレクトリー作成やファイルコピー程度ならDOSコマンドでいいんでね?

216:デフォルトの名無しさん
07/11/07 01:37:59
そうっすね。自分があまりコマンド理解していないだけかも。
一応出来てるんだけど、もっとリッチにしたいんですよ。
「aaa.dllをコピーしました」みたいなログをtextに落としたりとか。
リダイレクトすると「ファイルをコピーしました。」になってなんのファイルかわからない。
まぁ、コマンド理解していないからかも。でもそういう細かい不満が結構あるので。
どっかに面白バッチサンプルを集めたサイトとかないかなぁ。。



217:デフォルトの名無しさん
07/11/07 03:01:46
キー入力の後にEnterとか何も押さないで入力値に対して一定の判定をするプログラムAと、キー入力の後にEnter押して初めて入力値に対して一定の判定をするプログラムBをそれぞれ区分する呼称ってありますか?

218:デフォルトの名無しさん
07/11/07 03:22:56
>>217
対話型と非対話型とか?

219:デフォルトの名無しさん
07/11/07 03:26:21
逐次処理と回分処理?

220:217
07/11/07 03:39:32
ありがとう
作りたいプログラムの内、必要なキー入力判定プログラム部分は対話型、逐次処理型の様ですね。

221:デフォルトの名無しさん
07/11/07 04:17:03
PICという奇特なもので質問があるんだがどこで聞けばいい?

222:デフォルトの名無しさん
07/11/07 04:31:27
PICに関して以前どっかのスレで質問した奴がいるがアセンブラ関係のスレだったような
何にせよ俺はPICわからんけど

223:デフォルトの名無しさん
07/11/07 04:31:35
この辺とかこの辺
●●●くみこの組み込み相談室1.0●●●
スレリンク(tech板)
組み込みやらされそうなんだけどどんな勉強すれば?
スレリンク(tech板)

224:デフォルトの名無しさん
07/11/07 04:32:58
多分ここ
URLリンク(science6.2ch.net)

225:デフォルトの名無しさん
07/11/07 05:25:47
PIC と聞くと商業高校で習った COBOL を思い出す。

226:デフォルトの名無しさん
07/11/07 05:30:22
>>224
さんきゅう

227:デフォルトの名無しさん
07/11/07 05:31:34
強化学習のQ-learningを用いたサンプルプログラムはないですか?

上記とは別にルーレット選択とボルツマン選択のサンプルプログラムもよろしくお願いします。

プログラムはC言語でお願いします。

228:デフォルトの名無しさん
07/11/07 05:40:09
"Q学習" |"Q-learning" | "Qlearning" | "Q learning"

229:デフォルトの名無しさん
07/11/07 06:04:58
C言語でアドベンチャーゲームを作るには
どんな本を読んだらいいのですか?
(「14歳からはじめるわくわくC言語ゲームプログラミング」
を読んでいるのですが、シューティングゲームしか載っていないのです。)

超ド素人がアドベンチャーゲームを作るための
いい本があれば教えてください。
お願いします。
(アドベンチャーゲームが簡単に作れるフリーソフトとか
「KAG」などの便利な言語ものもあるようですが、
キーボードからC言語をうちこんで苦労して作ってみたいのです)

230:デフォルトの名無しさん
07/11/07 06:10:07
よさげなゲーム本はあらかた禿バンクから出てるからうざい

231:デフォルトの名無しさん
07/11/07 06:50:48
[質問]

C言語で、

int *buf;
buf = (int *)calloc(100,sizeof(int));

として確保したメモリは、

free(buf);

で開放しますが、このとき開放されるのは確保したメモリすべてなのでしょうか?
確保したメモリのうち、一部分だけ開放することはできないのでしょうか?
初心者なものですから、メモリ確保とかよく理解してないのですが、
どなたか分かりやすく説明していただけないでしょうか。 よろしくお願いします。

232:デフォルトの名無しさん
07/11/07 06:58:17
>>229
キーボードから検索ワードを打ち込んで
苦労して書籍を探してみる気は無いんだな。

233:デフォルトの名無しさん
07/11/07 06:59:59
>>231
realloc

234:デフォルトの名無しさん
07/11/07 07:25:45
>>233
ありがとうございました。

235:デフォルトの名無しさん
07/11/07 07:42:00
>>230さん
ごめんなさい。
「禿バンク」とはなんのことかもわからないのです。
本当にごめんなさい。

>>232さん
「アドベンチャーゲーム C言語」でぐぐってみたのですが
よくわからないのです。あまり参考になるようなのが見えません。
私はバカすぎるのです。
ごめんなさい。男子からもいつもいじめられています。

236:デフォルトの名無しさん
07/11/07 10:11:15
マジレス。
>>229=235
アドベンチャーゲームはシステム部分とシナリオ部分と絵や音楽のリソースで出来ている。
シナリオとリソースはプログラミングじゃないから省略。
Cで書く価値が有るのはシステム部分ということになる。

まずは必読書スレでも見て普通のC,C++の教科書を買って基礎を習得する。
それからamazonでアドベンチャー プログラミングと検索して出て来たのも読む。
これで簡単なものは書けるようになるはず。
やる気があれば吉里吉里・KAGのソースを読むのも良い。

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の方がいいと思うな。


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

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