• ベストアンサー

C言語の勉強法

C言語の勉強法で実用的なプログラムのソースが載っているサイトもしくは書籍はご存じないでしょうか? 種類はゲームやアプリケーションなどなんでもよく、作っておくとためになるようなものなら問いません。 自分のCプログラムのレベルは、C言語の入門書を終了し、じゃんけんプログラムや数当てゲームなどの簡単なプログラムを組めるようになった程度です。 それよりも、少し難しいプログラムを紹介してくださると大変ありがたいです。(厚かましいかもしれませんが…)

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2
rinnshan
質問者

お礼

回答ありがとうございました。 レベル的には、ちょうどいいと思ったのでまずはこれを何も見ずに できるように考えてやっていきたいと思っています。

その他の回答 (2)

回答No.3

書籍紹介ではないですが、入門書で作ったプログラムをどんどん拡張していくと面白いですし勉強になりますよ。 私、昔はプログラムに夢中になった頃(20年くらい前ですが・・)があり、やはり数当てゲームで乱数とprintf、if文での分岐をBASICから学びました。 当時はドラクエIIとかFF初代の頃でRPGが好きなのもあり、乱数を使ってバトルゲームとか試行錯誤で作ったりしました。 そのうち、キャラ登録とか武器や道具屋作ったり、レベルアップしたり、データセーブ機能を付けたり・・・と何回もブラッシュアップしてプログラムに没頭しました。 自分で創造膨らませて作ると、実入りも違いますよ。 (当時はインターネットも無く、書籍も少ないので勉強は独学&熱意の時代でした) 今時は、言語そのものより、多種多様なライブラリ(Win32API、DirectX、.Netとか・・)が多いので、そちらへ時間を費やすことが多くなんるんじゃないかなと思います。 Windows系でしたら、言語の勉強+開発環境(VisualStudio)を使いこなすことも大事だと思います。 ちょっと懐かしかったので、コメントさせていただきました。 今はプログラマではないので、少々間違ったコメントしてましたらすみません。

rinnshan
質問者

お礼

回答ありがとうございました。 経験談はとてもうれしいです。私もドラクエ、FFは大好きなので将来的にそういうのが作れるならば本望ですね。妄想を広げてがんばりたいです。

  • yaki_29_u
  • ベストアンサー率25% (63/245)
回答No.1

目的意識を持って、一個でも作ると 面白いですよ。 http://opencv.jp/ c言語で主に開発する為に作られたライブラリです。 http://opencv.jp/sample/special_transforms.html こんな感じでグラフィック処理などが比較的簡単に出来ます。 c言語で独自の処理プログラムを作るのもいいですね。 opencvはwindowsでも使えるはずです。 僕はcとc++に手をだして、c++の拡張性の高さと 参照渡しの楽さ、vector配列を扱えたり、classを 定義できたりと、c++に現在軍配を上げています。 python言語とかやると、オブジェクト指向のありがたみが分かるかも。 計算速度はcやc++のほうがはやいけど、c++やるまえにpython言語に手を出してみてください、cをやった後なら楽に使えます。 c言語なら、linux関連ツールで山ほど課題があります。 ちょっとした例ならば、 立方体の中にランダムに生成した点を多数作ります。 それらの点で線を引いてやると、面ができますね? 4点だと、四面体、5点だと・・・ 数が多くなると、生成した点の数は表面を構成する点の数 とは等しくなりません(内側にはいるので)。 表面を構成する点の数を求める 内部の点の数を求める。 表面積を求める。 表面に囲まれた体積を求める。 さらに進んで、ランダムに生成した点や表面の点をファイルに書き出し (フォーマットなどを吟味すること。  他のプログラム(blenderとか)で読み込める形式とか、  gauss cube形式とか。) と、読み込みを行って、計算するプログラム。 などなど・・・はいかがでしょうか? あとは、文字列処理プログラム(英語のほうが無難)や html解析プログラム(htmlソースファイルの特定のタグに区切られた文字列だけ取ってくる) や、英語の文章を検索して特定の単語を使う文(単語じゃなくて単文ね)を表示するプログラム、csv形式のexcelファイルを読み込んで何かの表計算をするプログラム(プログラム言語しってればexcelで計算できるのは全部できますね。グラフ化とかデータ連携はexcelのほうがらくでいいけど。)など。 これらだけでも、ファイルの読み込み、書き込み、フォーマットの吟味、それぞれの処理の仕方の基礎がさらに身につきますよ。 とりあえず、何かプログラム書くならやはり興味の持てるとこの方がいいです。僕はもっぱら自分が書きたいプログラムのイメージをもって、入門書を一読してから(読むだけ)、プログラムを本を見ながら書き始めて試行錯誤で覚えていく(こうすることで、自分なりの定型文を作っていく)タイプです。 そうではなくて、いろんなアルゴリズムを試してみたいという 要望であれば・・・ http://oshiete1.goo.ne.jp/qa797504.html にあるような書籍などをあたるとよいでしょう。 がんばって!

rinnshan
質問者

お礼

回答ありがとうございました。 書いてあることの3分の1もわかりませんが、何とかできるように 努力をしていきたいと思っています。 がんばりたいと思います。