こんにちは、ナナです。
皆さん、それではC言語のプログラミングをするための基礎的な技術を学びましょう。「プログラミングってそもそも何なの?」ってところから解説します。
本記事では次の疑問点を解消する内容となっています。
では、プログラミングの基礎を学んでいきましょう。
プログラミングを始める前の基礎知識
はーい、プログラミングやらせてくださーい!
心意気はいいけど、ちょっと待ってね。何事にも順序があるよ。プログラムを作る前に知っておくべきことがあるからね。
プログラミングを始める前に少しだけ必要な知識を身につけておきましょう。
プログラムを動かすハードウェア
コンピュータは人に代わって様々な仕事をしてくれます。それはコンピュータが人を機械として具現化したものであるということです。
コンピュータは人が持つ「処理・判断する能力」と「情報を記憶する能力」を、2つの異なるハードウェアで実現しています。
プログラミングを行う上で知っておくべきコンピュータの部品が、この「CPU」と「メモリ」です。
プログラムというものは、CPUとメモリを利用して動きます。特にC言語においてはメモリというハードウェアをしっかりとイメージできることが習得の近道となります。
C言語では「メモリ」が本当に大事なんです。「メモリ」の構造を頭の中で思い浮かべられるようになると、成長スピードが断然速くなります。
プログラムパターンの基本要素
プログラムとは次の3つの基本要素で作られます。
実際のプログラムを作ると3つの要素なわけがない!と感じることでしょう。これには理由があります。それは「処理」の部分には、他の要素が含まれるということなのです。
複雑なプログラムとは、この3つの要素が入り乱れます。複雑怪奇に見えますが「細分化していくと結局は3つの要素」となるわけです。
プログラミングを始めてみよう
はい、はーい。今度こそプログラミングやらせてくださーい。
そうだね。話ばっかりじゃつまんないよね。じゃあ、簡単なところからプログラミングをやってみよう!
お待たせしました。では、ここからは具体的なプログラミングを皆さんにも作って動かしてもらいましょう。
四則演算を使ったプログラミング
C言語のプログラムから簡単な四則演算を実際に計算してみましょう。
次のプログラムをmain.cに書き写して動かしてみてください。
#include <stdio.h>
int main(void)
{
printf("%d\n", 5 + 3);
getchar();
return 0;
}
書き写したらビルドして実行してみましょう。結果表示ウィンドウに演算された結果が表示されていることでしょう。
コメントの書き方
プログラミング言語で記載されたソースコードは人が見て理解が困難な場合があります。
そんな時に使用するのがコメントです。ソースコードにはプログラム動作に影響のない文章を注釈として記載することができます。
コメントによりソースコードの一部を無効化することを「コメントアウトする」と呼びます。
コメント記号 | 使用例 | 説明 |
---|---|---|
/* */ | /* コメント部分 */ | /* ~ */で括られた部分がコメントアウト。 複数行に跨いでコメントアウトすることもできる。 |
// | // コメント部分 | //の直後から行末までがコメントアウト。 複数行に跨ぐことはできない。 |
//によるコメント記号は本来C++言語にて認められているコメント記号ですが、最近のC言語環境でもほとんどのケースで使用可能です。
コメントの具体的な使用例
コメント記号を具体的に使用したプログラミング例を示します。
実際の開発では記載するコメントには、ちゃんと意味のあるコメントを書きます。こんな感じでコメントが書けることを学んでおきましょう。
#include <stdio.h>
int main(void)
{
/* 一般的なコメント */
printf("%d\n", 1 + 2);
/* 複数行をコメントできる
printf("%d\n", 6 - 4);
*/
// このコメントもよく使う
printf("%d\n", 3 * 3); // 行末からコメントにすることもできる
//プログラムを無効化したい時にも使う
// printf("%d\n", 5 / 2);
return 0;
}
コメントは「適度・適切」に入れることが大事なんです。
むやみやたらに入れることがいいわけじゃないことを意識してね。「適度な量」で「適切な補助」がいいコメントですよ。
全角空白の罠に気を付けるべし
C言語のソースコード内では、全角空白は使わないようにしてください。
半角空白は使用できるのですが、全角空白はコメントアウト部分以外で使うとエラーが発生します。
試しに全角空白を入れてビルドを行ってみてください。
全角空白によってエラーが発生するのがわかりましたか?このエラー内容は是非、覚えておくとよいです。
全角空白はエディタによっては人の目に見えません。コメントを日本語で入れていると、気づかずに入れてしまうことがよくあります。
でも、エラー内容を覚えておくとすぐに気づけますよ。
C言語ではコメント部分以外での全角空白は禁止!
プログラムが思うように動かない時はデバッガを使おう
う、う・・・なんか作ったプログラムがちゃんと動かないんです。何が悪いのかさっぱりわかりません。もうだめだ、やっぱり僕には無理なんだー・・・。
あんなに元気だったのに、すっごい落ち込んでるね。あのね、プログラム始めたばっかりで、そんなに思い通りに動くなんてことないんだよ。
そんなのは普通なの。プログラムは動かして直す、動かして直すを繰り返すの!
プログラムを作って動かしていると、思ったように動かない・・・といったシーンはよくある光景です。
特にプログラミングを始めたばかりの方はこのようなことが頻繁に発生します。この段階で「向いてないのかな~」とは思わないでください。
これは誰しもが通る道であり、ベテラン開発者もこの道を通って今があるのです。
統合開発環境にはプログラムが正しく動かないときに、それを調査するための強力なツールが含まれています。それがデバッガです。
デバッガには様々な機能があるのですが、まずは基本的な機能から押さえましょう。
ブレークポイントの設定方法
ブレークポイントはプログラムを一時停止するための機能です。
プログラムは本来非常に高速に動作するのですが、デバッガのブレークポイントを使うとその動きを一時停止することが可能です。
ブレークポイントの設定はプログラムコード左の灰色枠をクリックすることで行います。●がブレークポイントの印であり、再度クリックすると解除することができます。
プログラムを実行し、このポイントに到達すると自動的にプログラムが一時停止してくれます。
ステップ実行のやり方
経験を積んだプログラマーは、プログラムを見て頭の中でプログラムを動かすことができます。しかし、経験が少ない方はプログラムがどのように動作するのかをイメージできないことが多いです。
訓練としてデバッガの機能の一つである「ステップ実行」を行ってみましょう。
ステップ実行とは、一時停止したプログラムを1行ずつ順番に実行できる機能です。DVD再生時に行うコマ送りのようなことが、プログラムでもできるのです。
ブレークポイントを、mainと書いてある下に設定して実行しましょう。
次のように、実行直前の場所を黄色の矢印が示しています。
次はプログラムを順番に動作させるためのステップ実行を行います。
ステップオーバー機能を使うことで1行毎に実行することができます。
プログラムが上から下に順番に実行されている様子がわかりますね。これが「順次処理」というものです。
プログラミングを始めたばかりの方は、自分の作成したプログラムを先頭から順番にステップ実行し、プログラムが視覚的に動く様子を考察するとよいでしょう。
これ、学び始めた人は本当ににやった方がいいんです。
プログラムが動く流れを知ることって、ものすごく大事なことなんです。 皆さん、絶対にやってください!
プログラムの動きに慣れるまでは、ステップ実行でプログラム動作の流れを把握せよ!
Q&A:プログラミングに関するよくある質問
プログラミングに関わる質問に答えますよー。
Q:プログラミングの速さはどうしたら向上するのか?
はーい。 プログラミングの速さはどうしたら向上しますか?
もっともっと速くプログラミングしたいんです!
そうだねー、まずはタイピング練習ソフトとか使ってキーボード操作には慣れておいた方がいいね。あとはショートカットキーを覚えるといいかな。
プログラムに慣れていない皆さんにまず知っておいてほしいのは、キーボード操作に慣れることです。少なくとも次のショートカットキーは使えるように慣れておきましょう。
ショートカットキー | 操作内容 |
---|---|
Ctrl + z | 操作をひとつ前に戻す |
Ctrl + x | 切り取り |
Ctrl + c | コピー |
Ctrl + v | 貼り付け |
プログラミングをする際にはこれらのショートカットキーを無意識に使えるようになると非常に作業効率があがります。
課題:プログラミングの基礎を学べたかを確認しよう
ほい、ほーい。プログラミングって簡単ですね。ばっちり理解しました。
ほんとに理解できたのかな・・・。じゃあ、テストしちゃうからね。この問題解いてみて。ばっちり理解したなら簡単だよね。
あ、はい・・・なんかちょっとお腹の調子が・・・
ここから先の記事では最後に課題が用意されていることがあります。
皆さんの環境でプロジェクトを作成し、課題を解いてみてください。出力期待結果が出力されることを目標にプログラムを作ってみましょう。
課題1
課題内容
printf命令を利用し、ディスプレイに「モノづくり C言語塾」と出力せよ。
出力期待結果
モノづくり C言語塾
#include <stdio.h>
int main(void)
{
printf("モノづくり C言語塾");
return 0;
}
printfが何なのかはもう少し先で解説します。これを使うとディスプレイに文字が表示できることは覚えておきましょう。
課題2
課題内容
printf命令を使用し、「モノづくり」「C言語塾」を2段に分けて表示せよ。
改行は\n記号を利用することで可能である。
出力期待結果
モノづくり
C言語塾
#include <stdio.h>
int main(void)
{
// 方法1
printf("モノづくり\n");
printf("C言語塾\n");
// 方法2
printf("モノづくり\nC言語塾\n");
// 方法3
printf("モノづくり");
printf("\n");
printf("C言語塾");
printf("\n");
return 0;
}
改行を「\n」で行うのがポイントです。「\n」はめちゃめちゃ使います。改行は「\n」と呪文のように唱えて覚えましょう。