C言語 プログラムを3か月で身につけるスケジュール

  • このエントリーをはてなブックマークに追加
Pocket

C言語を3か月である程度までプログラムができるまでのスケジュールを書いてみます。
私自身がやってきたことですが、15年以上も前のことなので、記憶をたどっています。

たぶん、こんな感じだったと思います。

1ヵ月目:if,for,配列,関数,ポインタなどの最低限の文法を覚える。
2ヵ月目:他の人が作ったプログラムをまねて動かしてみる。
3ヵ月目:自分でプログラムを作って動かしてみる。

簡単に、どんな流れでやったかを書いてみます。

1ヵ月目:if,for,配列,関数,ポインタなどの最低限の文法を覚える

C言語でプログラムを作ることに関して、始めに必要なのは、最低限の文法を覚えることです。
こんなところでしょうか?

・変数の宣言
・代入文
・演算子
・演算した結果の表示
・if文
・switch文
・for文
・while文
・関数
・配列
・ポインタ
・構造体
・文字列

だいたい、変数の宣言からwhile文あたりを1週間、関数、配列を1週間、ポインタを1週間、構造体、文字列を1週間という感じです。
文法と使い方だけだと、それくらいでいけるはずです。

各種、文法については別のページで解説したいと思います。

2ヵ月目:他の人が作ったプログラムをまねて動かす

一通り、文法を学んだら、他の人のプログラムをまねてみることです。
いきなり、自分で作れるのなら、それでもいいですが、ハードルが高いと思います。

他の人のプログラムをコピーして、実際に動かしてみることで、プログラムのどの処理が、どのように作用しているか、わかってくるようになってきます。これを続けてみてください。

コピーだけではつまらなければ、あなた自身でプログラムを少し変更してみて、どのように動きが変わるのかを見るのも効果的です。

変更することを恐れてはいけません。文法的におかしければ、コンパイルが通りません。コンパイルが通らなければ、プログラムを実行することができません。なので、変更することを恐れる必要はないのです。

コンパイルエラーが起きたら、なぜ、その部分でエラーなのかを考えて修正してください。
そうすることで、自分自身でプログラムを作る段階のときに、スムーズにプログラムを組めるようになります。

実際、私自身、プログラムは全くダメダメでしたので、とにかく、コピーして動かしてみました。
あまりにもわからない場合は、処理の途中でprintf文を入れてみたり、デバッグモードで処理の流れやそのときの変数の値を見たりしました。

これは、今でもやっています。組み込みマイコンなので、printf文は使えないので、処理の途中でデバッグ用のデータに適当な値を入れて、その処理が実行されているかを見たり、条件文を抜けた後や関数の戻り値を適当なデータに入れて、モニターしたりしています。

プログラムは作ったものが1回でうまくいくことは、ほぼありません。作っては動かしてみて、ダメなところを修正し、また動かして修正しの繰り返しです。

こうして徐々にプログラムが出来上がっていくのです。

3ヵ月目:自分でプログラムを作って動かす

他の人のコピーからプログラムを変更してみて、実際の動きや文法が理解でき始めたら、今度は自分で作ってみましょう。

先ほどのいいましたが、いきなりうまくプログラムはできないと思って、どんどんプログラムを書いていきましょう。

覚えた文法をすべて使うようなプログラムを作ってみるのが理想的です。なぜなら、学んだ内容をより深く理解できるようになり、次のレベルアップがはかれるからです。

どんなものを作るといいかですが、私が最初にしたのは住所録プログラムです。
最近では個人情報の保護の観点から、住所録が作成されることは、ほぼないでしょうが、関数やポインタ、文字列の扱いに慣れるのにはいいと思います。

始めてやったときは、全く動きませんでした。構造体とポインタが混じってる時点でハードルがグッと上がりますからね。
最終的にはファイル保存出来るようにして、開始はファイル読み込みをして、内部で住所録をリスト化して、ユーザ端末から、住所録の追加、削除、閲覧を選択できるようにします。

追加なら、郵便番号、住所、氏名を入力させ、登録選択で、登録できるようにし、削除なら一覧表示させた中から、指定された住所録を削除し、中抜けした情報を詰めるという処理を作りました。

何か聞いてるだけでややこしいですよね。文で書くのは簡単ですが、プログラムを作るとなると、簡単ではありません。

まず、住所録の内容をどうするかを決める必要がありますね。先に挙げたのは郵便番号、住所、氏名でしたが、他にも性別や年齢等も入れようと思えば入れられますね。

このデータ群は構造体を使う必要があるということが想像できたでしょうか?もし、できたなら、あなたはすでにプログラムのイメージができているはずです。

struct st_ADDRESS {
    char m_yubin_bango[8]; /* 郵便番号 */
    char m_jyusho[100];    /* 住所 */
    char m_name[20];       /* 氏名 */
};

こんな感じになるかと思います。これが複数あるので、

struct st_ADDRESS data[100];

という宣言になり、構造体配列になるのが分かりますね。

ここから先は、実際にあなた自身で作ってみてください。
あとは、入力方法、表示方法、エラー処理、リスト構造化するというようなところでしょうか?
ぜひチャレンジしてみてください。これができれば、C言語で大抵のプログラムを作ることができるようになります。

まとめ

いかがでしたでしょうか?

3か月で身につける方法を記憶の中から呼び起こして、書いてみました。
少々抽象的で、わかりにくかったかもしれません。

ですが、結局のところ、あなた自身でどんどんプログラムを書いていって、慣れていくしかありません。慣れてしまえば、自然とプログラムが作れるようになります。

文法や標準関数の使い方を忘れたら、検索したらいいんです。
私も全部頭に入っているわけではありませんから、いつも検索で調べています。

それで、要求に応じたプログラムが出来上がればそれでいいんです。

あなたもどんどんプログラムを書いてC言語を身につけてください。

よければ、C言語のプログラムを3か月で身につけるための第1週前半でやるべきことから読み進めてみてください。

  • このエントリーをはてなブックマークに追加

コメントを残す

*