• ベストアンサー

入門書レベルのことが、どう実践の役に立つのか?

 私は興味と暇つぶしでC言語の入門本を読んでいる者です。  プログラマーになるつもりは全くないです。 純粋に興味で質問させていただきます。 入門書レベルのことと実際の仕事ではだいぶ差異があると聞きましたが、では入門書レベルのこと(※)が実践やその勉強で具体的にどう必要で、どう役に立っていくのでしょうか? ある程度技術的な説明を、ド素人にもわかりやすくお願いしたいです。 「基礎だから」というお答えでしょうが、そこのツッ込んだ解説を知りたいわけです。 (困難な要求ですいません!) ※---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ----------------------------

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.8

そもそも「技術的な説明が難しい」のではなく、 質問そのものが「技術的に説明できない」たぐいものです。 実務面から見ても、※で挙げられた要素は全て、仕事でも使います。 では、入門書と実務とでどう違うかというと、 入門書では、それぞれの要素を個別に説明していますが、 実務では「それらの要素をいかに組み合わせる」かが重要になってきます。 入門書が「ポインタは○○するものである」といった感じで、各要素について、その意味を理解するものになっているのに対し、 実際にプログラムを組む場合は、「○○するためにポインタを使えばよい」といった感じになります。 「プログラムを組む」とは、プログラムで実現すべき処理内容を把握した上で、それを実現できる要素を当てはめていく作業なのです。 それが出来るようになるためには、前提知識として、個々の要素を知っていないといけません。知らなければ「当てはめる」こともできませんから。だからこその入門書ですね。 例えば、JPEG圧縮された画像を読み込んで展開するプログラムを考えます。 JPEG画像を読み込むためにはバイナリファイルの入力が必要です。 読み込んだデータを保持するメモリ領域の確保にはmalloc関数が必要です。 JPEG画像のヘッダ情報を取り扱うには構造体を使い、そのヘッダの記録内容を表現するのには列挙体を使うのが普通です。 よく使う数値はマクロを使わないと保守が難しくなります。 1ファイルが大きくなると管理が難しくなりますから、処理内容ごとに複数ファイルに分けるのが基本です。 読み込んだ圧縮画像を展開する処理は複雑ですので、個々の処理に分割して自作関数を作るのが必要です。 関数を使うからには、関数への引数の渡し方はわかってないとダメです。 バイナリデータの取り扱い時にはポインタを使った方がデータの取り扱いが楽になります。 読み込んだデータを処理するには、forもしくはwhileでループを回す必要があります。データの内容によって処理が変わりますから、その判定にはifかswitchが必要です。 展開して出来た画像は2次元配列で表現するのが普通です。 といった感じで、※で挙げられた要素は全部出てきますね。

jointdry
質問者

お礼

「作品(プログラミング)は個別の要素をいかに効率よく組み合わせれるかであり、入門書はその個別要素の基礎を解説しているものである」 非常に明確でわかりやすい説明をありがとうございました。

その他の回答 (24)

  • BLK314
  • ベストアンサー率55% (84/152)
回答No.25

申し訳ありません。 誤記がありました。 ADOXはADO.NETと読み替えてください 以上です。

jointdry
質問者

お礼

かくご回答いただいて失礼ですが、私の質問内容とはだいぶ関係ないことを記述されているようです。

  • BLK314
  • ベストアンサー率55% (84/152)
回答No.24

まず、全くの個人的見解であることをお断りしておきます。 私が思うに"プロ"であるならば、”プログラムの分かりやすさ"が重要です。 共同作業になることもありますし、"未来の自分は赤の他人"ととらえないと 人間の記憶なんてそんなにあてになるものではありません。 モジュール分割、関数分割、適度なコメントなどです。 私の先輩に"プログラム作成が凄く速い"と評判の人がいました。 彼は"プログラム作成の達人"ではなく、 エディタ操作の達人です。 そう、コピぺしまくりです。 "どう分割するか?ネーミングはどうするか?" 考えている暇があったら手を動かせ!! というわけです。 私は、これは"プロ"の仕事ではないと考えます。 1回きりの使い捨てなら良いかもしれません。 仕様変更などでメンテナンスする羽目になったら大変です。 しかも、他人が引き継ぐとしたら.... 理解するだけでもう大変です。 きちんとレイヤーに分けて、さらに関数化する 私は、”小さな関数をたくさん作る"ことを 別の先輩から叩き込まれました。 理由は、関数が小さければ、 その関数が正しく動作しているか 検証するのも楽だからです。 検証済みの関数をまた小さなサイズで組み合わせれば そのモジュールが正しく動作しているか検証するのも簡単です。 これらは最近流行りの"テスト・ファースト"にもピッタリマッチします。 簡単な関数なので境界条件とうも分かりやすく、 危ない所を確実に拾い出すことができます。 そのテストを通ったプログラムであれば、安心して使えます。 最新技術の勉強も大事ですが 流行り・廃りもあるので それ程、神経質にならなくても良いと思います (ex DAO ==> RDO ==> ADO ==> ADOX と学んできましたが これからDBを始めるなら いきなりADOXで構わないのでは? DAOなんてわからなくてもよいのでは?) 以上です。

jointdry
質問者

お礼

せっかくご回答いただいて失礼ですが、私の質問内容とはだいぶ関係ないことを記述されているようです。

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.23

> 「入門書程度では何一つもできない」というネット上の > プロの方の発言を読んで、その差異を埋めたくて、 > それが何なのかが気になったので質問をしました。 入門書によって良し悪しもあります。 その「プロの方」の発言にとらわれる事が、 そもそもの如何なものかと思います。 # プログラマってプロの境界がすごくあいまいな職業だと思うので それこそ、1つのことを行うのにプログラミングでは 人の数だけ考え方があるわけですから、 (もちろん考え方はある程度統一されるでしょうが。) 「プロが言っていた」というだけで、それを鵜呑みにするのは 良くない事だと思います。 「入門書レベルじゃ何もできない」って言っていても、 それは入門書を読んでいたから分かるわけで、 読むことが無駄とも思いませんし、「何もできない」= 「不要・役に立たない」と言うことも無いでしょう。 >1.異常事態の考慮 >2.性能要件の意識 >3.メンテナンス性の考慮 職場との環境の違いとすれば、 4.グループでの開発・コミュニケーション 入門書レベルであれば、自分で書いて動かせばそれで完結ですね。 しかし、実際の現場では既にあるプログラムを誰かから引き継いだり 逆に自分が持っていたプログラムを誰かに引き継いだり、 新しい機能をつけるときに、他の分担されている機能を持っている 人と話し合ったりという、コミュニケーションも発生します。 5.開発環境や動作環境の進歩や最新技術への対応 入門書では、主に成り立ちや過去の確立された技術を紹介しますが、 職場では例えば、WindowsやLinuxなどのOSも常に同じものが 使われるわけでは無く、新しい技術は常に発表され続け、 それへの対応も行う場合もあります。 もちろん、新しい技術なのでこれという教科書など無く、 技術文書などを読むことになります。 こういうことは、やはり経験していかないと 分からないこともあるのでは無いかと思います。

jointdry
質問者

お礼

4.グループでの開発・コミュニケーション 5.開発環境や動作環境の進歩や最新技術への対応 ご回答ありがとうございます!

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.22

>ありがとうございます。 >(1)~(5)までのことならば、具体的には無理でも、私でもなんとなくのプログラムの骨子はイメージできそうです。 >そんなに入門書の内容とかけ離れたものではなさそうですね? これだけだと、そうですね。 でも、C言語の入門書を読んでいるだけでは実際にプログラムを書けなかったりします。いざ書こうとすると出来ないんですよね。知識はあるけど使い方が判らないって感じですかね。 今回の自販機のプログラムも擬似的には、コマンドプロンプトで実行できるプログラムが作れますので作ってみてはどうでしょうか?キーボードから金額を入力して、買う商品の番号を選んで、お釣りが表示されるって感じですかね。C言語のコンパイラも無料で入試可能ですし。 実際の自販機のプログラムだとハード制御のタイミングやら割り込み処理やら異常時の処理やらノウハウが必要な面が沢山ありますが、プログラムってどんなものだと言うこと理解するにはよろしいかと。

jointdry
質問者

お礼

ありがとうございます。 せっかくのご提案ですが、私は「何となくC言語がどんなもんか雰囲気を知ってみたいなぁ」程度の純粋な興味のみの人間なので、プログラムを書くつもりは全くありません。 ------------- 余談ですが23年ほど前、小学生の時にBASICというプログラマー教育用プログラム言語をやっていました。ポケコンですね。 なので、zwiサンがおっしゃる「いざ書こうとすると出来ない」というのや、プログラミングというものは完成したつもりでもエラーエラーで修正修正の連続の作業だという雰囲気も少しだけ知っています。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.21

例えば1つの課題として、 ファイルを読み込み、その内容をそのまま別のファイルに書き出す。 という課題があるとします。 そうすると、基本的には、入門レベルのやり方と同じ方法で、やればその課題はクリアできます。 では、実践(本番業務)では、なにが違い、何が求められるのかということですが、それは概ね以下のようなことになります。 1.異常事態をどこまで考慮しているか。 ファイルの読み込み中にエラーが発生したらどうなるか、またどうすべきか。書き込み中にエラーが発生したらどうするか。またどのような種類のエラーが発生することが予想されるか。 これらのエラーの原因が適切に特定できる仕組みをプログラムに埋め込む必要があります。又、エラーの内容によっては、そこでギブアップではなく、ある一定期間、リトライするような場合もあり、エラー毎にプログラムは、適切な対応が必要とされます。 入門レベルは、基本的にこのことを一切考慮していません。 2.性能要件をどれだけ意識しているか。 その処理が完了するまでに、どれだけの時間がかかるかを意識する必要があります。いくら処理の内容が正しくても、非常に時間のかかるプログラムは基本的には使えません。データが小量な場合は、それほど気になりませんが、非常に大きなデータを処理させても耐えるかどうかの試験も行う必要があります。それで、だめな場合は、もう一度処理のやり方を見直す必要があります。 性能としては、そのほかに、CPU時間の消費率、メモリの消費率などがあり、これらを異様に消費すると、他のプログラムの実行に影響をあたえるので、それらがないかをチェックする必要があります。 入門レベルでは、上記のことは一切意識していません。 3.メンテナンス性の考慮 上記のプログラムは、しばらく使用していると、他にも機能を付け加えたい(例えば、もう1つのファイルを指定してそちらにも書き込みたい等の要求)ことや、プログラムの不具合が原因で、そのプログラムを修正・改造する必要が発生します。そのプログラムを作成した本人が、永久にそのプログラムを保守してくれるなら、それでよいのですが、現実的にはそれはありえないので、ほかの人がその改造を行うことになります。そうすると、そのプログラムは第三者からみて、非常にわかりやすいものでなければ、いけません。変数名にa,b,cなどをつけるのは、作成者本人は簡潔でわかりやすいでしょうが、他の人には全くわかりませんので、そのような変数名を使用することは、プロジェクトの規約(コーディング規約)で禁止されることが多いです。入門レベルでは、上記のことは一切意識していません。 ほかにもありますが、概ね、以上が、実際に業務で使用されるプログラムに求められるものです。 もちろん、上記の要件が厳しく求められない場合は、入門レベルのプログラムでも十分実用に耐えます。

jointdry
質問者

お礼

入門レベルと実務の差異 1.異常事態の考慮 2.性能要件の意識 3.メンテナンス性の考慮 上記の要件が厳しく求められない場合は、入門レベルのプログラムでも十分実用に耐える 私のような入門レベル以下の人間にも非常によくわかりました。 そして最後の一行はある程度勇気のいる発言かと想像します。 (私が)真意はなんとなく捉えられていると思います。 ご回答ありがとうございます。

  • gachinco
  • ベストアンサー率20% (32/156)
回答No.20

「日本の歴史をアメリカ人に分かるように英語の文章で作ってください」 と言われた時に まず英語の文法とか単語知らないと 英語の文章が書けないでしょ 英語の文法とか単語を完璧に覚えたとしてもさ 今度は 「日本の歴史」を知らない人だったら、これまた書けないよねぇ それと同じじゃん

jointdry
質問者

お礼

せっかく回答してもらって失礼ですが、この文章では何がどう何と同じなのかさっぱりわかりません。 gachincoにはわかってても私にはC言語の具体的なことが何一つ伝わりません。 冷やかしなら回答してもらわなくて結構。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.19

「百聞は一見にしかず」と言うし簡単なプログラムを作ってみてはどうでしょう。プロになる気は無いとおっしゃられてますが、本を読んでいる以上はプログラムなさる気も御有りかと。 世の中には職業も別にあるアマのプログラマの方も沢山いらっしゃいますし。 そうそう。 >入門書の最初の方で出てくるif~elseだけで全部作れてしまいそうな気がしてしまいます >「もしも△△のボタンが押されたら、○○しろ」 >「もしも△△のボタンが押されたら、○○に収まってるジュースを出せ」(ジュース自販機) >「もしもMUTEボタンが押されたら、スピーカーの音を消音しろ」(オーディオ機器) これだけだと確かに作れそうですね。でも自販機だと本当に必要なことはこれだけじゃないですよ。 (1)投入されたコインの金額管理 (2)おつりの金額をコインに分けて取り出す処理。 (3)押されたボタンに応じた商品の取り出し処理。 (4)取り出された商品の金額に合わせて金銭の減額。 (5)在庫を判定して商品ランプを点灯・消灯。 と大雑把に考えてもこのぐらいあります(実際にはもっと処理がありますが)。例に挙げられたのは(3)の部分だけです。

jointdry
質問者

お礼

ありがとうございます。 (1)~(5)までのことならば、具体的には無理でも、私でもなんとなくのプログラムの骨子はイメージできそうです。 そんなに入門書の内容とかけ離れたものではなさそうですね?

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.18

スポーツの場合は、基本ができていなければその結果は はっきりと出てきます。 プログラムの場合には、サンプル通りにすれば、それなりに 動いてくれるので、基本はもう十分に理解できたと 勘違いしてしまう部分があります。 後は、実際に試合に出て(プログラムを書いて)みて 自分の力量がどの程度なのか、どれ程力不足なのか を体感してみなければ判断はできないでしょう。

jointdry
質問者

お礼

ご回答ありがとうございました。

回答No.17

> 入門書の最初の方で出てくるif~elseだけで全部作れてしまいそうな気がしてしまいます >「もしも△△のボタンが押されたら、○○しろ」 たしかに、その論法なら、どんなプログラムもif文だけでかくことができます。 でも、if文では ”もしも” と ”しろ”しかかけないので ”△△のボタンが押され”ていることをどうやって調べて、 ”○○する”命令を、どうやって書くのかが 論点から抜け落ちていますよ。

jointdry
質問者

お礼

ありがとうございます。 プログラムは”もしも” と ”しろ”だけで、あとはハード機器が電流を流していくもんだと思ってました。

回答No.16

技術的な内容をですか・・・ どんな専門分野についてかを聴きたいかがわからなければ 答えようがないと思いますよ。 たとえば、 UNIX系であれば、システムコールや通信制御やプロセス制御のやりかたが必要なるし 会計系ならDBエンジンやトランザクションあたりだろうし ゲームやってればグラフィックやサウンド関係や割り込み制御になるだろうし Windows系ならAPIとか、.NETフレームワークとかだろうし、 デバドラやってる人なら、もっとハードよりの制御しらないといけないし。 (私はこれらは専門外なので想像ですが) 今の時点では、これらをあげられたような、if文~malloc()だけで書くのは無理 ということだけ、理解されていればよいとは思います。

jointdry
質問者

お礼

ありがとうございます。 例えばジュースの自動販売機や電化製品の制御(組み込み系っていうのですか?)なんかどうでしょう? 入門書の最初の方で出てくるif~elseだけで全部作れてしまいそうな気がしてしまいます 「もしも△△のボタンが押されたら、○○しろ」 「もしも△△のボタンが押されたら、○○に収まってるジュースを出せ」(ジュース自販機) 「もしもMUTEボタンが押されたら、スピーカーの音を消音しろ」(オーディオ機器)

関連するQ&A

  • C言語、初心者が書けそうなプログラムとは?

     はじめにお断りしますが、私はプログラマーになるつもりは全くないです。  それとプログラムの知識もほとんど全くありません。  純粋に興味として質問をさせていただきます。 以下はC言語の入門者用の目次からなのですが、 ---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ---------------------------- (1)以上のもの+α程度を習得して、さらに人の助言などによって発展性をもたらすことができたら、具体的に(※)何のプログラムが自作できますか? (※)カレンダー、オセロゲーム など?? (2)C言語を扱うプログラマーとして会社に入社して、最初の1年目で任せられるようなプログラムとは具体的にどういうものがありますか?  特に(2)の質問は範囲が広すぎて回答が困難だと予想されますが、質問している私自身が何もわからない人間なので、質問の範囲を狭めることができません。申し訳ありませんが上手く答えられる方、お願いします。

  • 数学の入門書を教えて!

    数学が好きで、数学の本をよく読みます。 そこで、本格的に数学の専門書を読んでみたいと思っているのですが、おススメの専門書(入門レベルがいいです)があれば教えていただけませんか? 今、興味を持っているのは、微分方程式、複素関数論です。 もちろん、それら以外でも教えていただけたらありがたいです。 ちなみに、高校数学は一通りできます。 よろしくお願いします。

  • C言語のfwrite関数について

    現在,バイナリのデータを処理するプログラムを作成しています。 おおまかに言えば,ファイルA(バイナリモードでオープン)からバイナリでデータを読み込んできて,そのデータを処理してファイルB(バイナリモードでオープン)に書出す,のようなプログラムです。 その処理したデータを入れるデータ型にunsigned long long int型(64bit)を使用しています。 その処理データをファイルBに書出す時に,fwrite関数を用いています(例参照)。 (例) for(i=0; i<N; i++){ fwrite(&c[i], sizeof(c[i]), 1, fp); } //配列cが「unsigned long long int型」です。 //配列cは最初に"0"で初期化しています。 //fpはファイルポインタです。 しかし,本システムでunsigned long long int型が実際に使用しているのは下位32bitです。 上の例で書出した場合,上位32bitの"0"も書出されていることになるのでしょうか。 書出されたファイルのサイズを見れば,64bit全て書出されているようですが,計算間違いで32bitを超えたところまで何かデータが入っている可能性もあります。 どなたはfwrite関数に詳しい方,ご回答をよろしくお願いします。

  • 既存のCプログラムをMS Visual C++へ移行して実行したい

    同じような質問がでていましたら、すみません。 いままでWS(unix)で作っていたC言語のプログラムをWindowsで実行しようと しています。 Microsoft Visual C++ 6.0 Proを購入し、 新規でプロジェクトを作成するところで止まってしまいました。 「プログラムをコンパイルして、あるバイナリファイルを読み込み、 指定したファイルへ結果を書き込む」 という操作がしたいのですが、プロジェクトの種類はどれにすればいいのでしょうか? また、ファイルを読み込む際、メインと関数は別のファイルになっているの ですが、コンパイルはどのように指定すればいいのでしょうか? もうひとつ、今までargv[]で入出力ファイルを指定していました。 # (メイン)(入力ファイル) (出力ファイル)のように この処理はVC++でできるのでしょうか? VC++の入門の本を購入したのですが、Cのプログラムについては なかなか載っていないので困っています。 よろしくお願いします。

  • 入門より少し進んだC言語の勉強方法

    初めまして。 現在、C言語の勉強をしています。 C言語入門用の本を2~3冊読み、実際に自分で書いてみて関数やポインタ、構造体などの初歩的な事は理解しました。 また、基本情報技術者試験をC言語で受験し、合格する事が出来ました。 しかし、基本情報技術者試験に出てくるプログラミングの問題を読み、どのような動作をするのか追いかける事は出来ますが、似たようなレベルのプログラムを「自分で1から書けるか」と言われたら難しいと思います。 入門用の本を卒業し、次のステップに進みたいと思うのですが、どのように勉強すればいいのかよく分からず、止まってしまっている状態です。 ぜひ、今後におけるおすすめの勉強方法がありましたら教えてください。 宜しくお願いします。

  • C言語でプログラムを作りたい

    現在、C言語を学習中でして、入出力・制御文・配列・演算子・ポインタ・自作関数・構造体・共用体・ファイル入出力くらいはなんとか使えるくらいになったと思うのですが、そこで、一つ自分でプログラムを作ってみたいと考えています。 しかしながら、これまで学習してきたことを駆使して作れるプログラムが思いつきません。 ですので、なにかいいお題があれば教えていただきたいです。 これまで学習してきたことをしっかりと定着させたいと考えています。 宜しくお願いします。

  • 間接参照のレベルが異なっています

    単語を昇順でソートするプログラミングでエラーが出て困っている者です。 エラーが出てる箇所のみ抜粋して、あとは省略したものが下記です。 下記の2つの関数の下の方の関数で 間接参照のレベルが'char **'と'char[10][20]'で異なっています read_wordsの型が2の仮引数および実引数と異なります と言うエラーが現れます。main関数内のsortword関数、display_words関数でも同様にエラーが現れます。 これらの原因は何でしょう。また、僕は何がわかってないですか? ここどこを勉強しろ、等のアドバイスでも結構ですのでぜひご指導ください。お願いします。 #include<stdio.h> #include<stdlib.h> #include<string.h> #define LINE_SIZE 20 #define MAX_LINES 10 char line[MAX_LINES][LINE_SIZE]; int num; int read_words(char *fname,char **line,int num)//用意した構造に文字列を格納 { FILE *fp;//ファイルポインタの宣言 int i = 0;//繰り返し変数の初期化 if((fp = fopen(fname,"r")) == NULL)//ファイルがあるかの確認 { printf("ファイルを開けません\n");//ファイルが無い時はエラーメッセージを出す exit(1);//エラー時は強制終了 } fp=fopen(fname,"r"); fscan(fp,"%d",&line); for(i=0;i<MAX_LINES;i++)//1列ずつ文字列を入れる制御構造 { fscanf(fp,"%s",&line[i]);//ファイルから文字列を変数に入力 i++;//繰り返し変数の増加 } num=line[0];//単語数を戻り値とする fclose(fp);//ファイルのクローズ } int main(int argc,char *argv[]) { read_words(argv[1],line,int num); sortword(line,num); display_words(line,num); }

  • C++ Builderでの自作関数

    C++ Builderでの自作関数 初心者のため、初歩的な質問で恐れ入ります。 今、C++ Builderを使いアプリを作成中なのですが、 下記のような自作関数を使いたいのですがどのように書くと エラーがでなくなるのでしょうか? main関数中で、あるif文に該当すると自作関数の内容を行いたいと思っています。 自作関数には、テキストファイルへ文字列データの書き出しをする内容を書いています 今、引数にはvoidを使っていますが、 「TForm1のサイズが不明、あるいはゼロ」「宣言の構文エラー」というエラーが出てしまいます。 voidにしているのが原因でしょうか? 何もわかっていなく恐縮ですが、よろしくお願いします!

  • ファイルから構造体へデータを格納(動的メモリ割り当て)

    C言語の勉強をしいております。 typedef struct address { char names[32]; /* 名前 */ char tels[32]; /* 電話番号 */ struct address *prev; /* 前のリスト */ struct address *next; /* 次のリスト */ }Address; という構造体へ、ファイルから読み込んだテキストデータ(名前と電話番号がTABで区切られている)を格納したいのですが、配列ではなく、動的にメモリを確保しながら格納する方法を教えていただけないでしょうか? 処理の流れとしては、 ・1つめの構造体の*prevにはnullを入れておく。 ・1つめの構造体へファイルの1件目のデータを格納する。 ・ファイルのデータがまだある場合には、malloc関数を使ってメモリを確保し、malloc関数からの戻り値を1つめの構造体の*nextへ格納する。 ・構造体へ2件目のデータを格納する。 このような感じだろうという程度しか分からず、ソースも書けずにいます・・・。 配列を使用したサンプルはあるんですが、動的に処理を行う方法を教えていただけないでしょうか? よろしくお願いいたします。

  • AIの学習について

    現在ゲームプログラマーを目指している者です。 使用可能言語はC/C++です。 最近AIに興味を持ったのですが現在のレベルで理解できるか正直不安です。 学習するにあたって最低限でも必要なことを教えていただければと思います。 あと書籍ではamazonで探した結果 ・ゲーム開発者のためのAI入門 ・実例で学ぶゲームAIプログラミング のどちらかをまず買おうと思うのですがこの二冊どちらが初心者向きでしょうか。 タイトルからは「ゲーム開発者のためのAI入門」かと思うのですがレビューでは「実例で学ぶゲームAIプログラミング」が先のようなことが書かれています。 出版日も入門->実例なので迷っています。 AIの学習に必要なこと、など曖昧さが出る質問ですがどなたか教えてくださればありがたいです。

専門家に質問してみよう