
プログラミングについて学ぼう!
プログラミングとは?
プログラミングとは、ざっくりというと「コンピューターに指示を出す」ということです。
すべてのコンピューターなどの機器はプログラムというどのような動作をするのかの仕様書を元に動作しています。その為プログラムさえ書ければしたいことがほとんど出来ると言っても過言ではないのです。
C言語とは?
C言語とは1972年にAT&Tベル研究所で開発されたプログラミング言語で、システム開発のベースともいえる言語です。汎用性が高く、高速なプログラムを作成できるのが特徴で、ハードウェアからシステム開発まで幅広く応用されています。
目次
1. 変数ってなに?
2. ifってなに?
3. forってなに?
4. delayってなに?
5. switch関数ってなに?
6. millisってなに?
7. プログラムを綺麗に書こう!
8. 構造化プログラミングってなに?
変数ってなに?
変数とは、C言語において重要な要素の1つです。変数とはこの文字を入力したらこの数字を入力したことにするというもので、例えば「int count = 10;」とプログラムを入力すれば、その後のプログラムにおいてcountと入力したとき、プログラムは10として認識します。またこの変数にはさまざまな種類があります。

上記の表が変数の種類です。プログラムでは主に「int」と「float」を使用します。その他の「long」や「double」は「int」や「float」より大きな数値を扱えますがあまり使う機会はないでしょう。また整数型と書いているのは整数しか扱えない変数、浮動小数点型は小数も扱える変数です。しかし、浮動小数点型は整数型と比べて重たい傾向があるためできるだけ整数型、その中で「int」をつかうのが適切でしょう。
ifってなに?
If文とは英語のifが分かる人は予想がつきますが、もし○○だったらこの動作をする。それ以外だったらこの動作をするという判別をするプログラムです。
例文を出してみましょう。
int x = 15;
if (x > 10) {
printf("10よりも大きい数値です\n");
}else if (x > 5) {
printf("5よりも大きい数値です\n");
}else{
printf("5以下の数値です\n");
}
このプログラムはまずintでxという変数を宣言しています。その後if文を用いてprintf(表示する文章)を選択しています。結果このプログラムは、「10よりも大きい数値です」という文字を出力します。また、この文を見て見たことのない「else」や「else if」という2つの文字が出てきていると思います。If文とはif(もし○○だったら)という文で始まり、else(それ以外だったら)で終わるという形で基本構成されますがその間にelse if(もし○○以外かつ△△だったら)というものを追加することができます。そのおかげで上記のプログラムのように、「10よりも大きい数値です」・「5よりも大きい数値です」・「5以下の数値です」という風に細かく分割することができます。またif文の構成は
If (比較文){
実行するプログラム
}else if(比較文){
実行するプログラム
}else{
実行するプログラム
}
となっており比較文には例文のように不等号を用いることができます。また、不等号の代わりに等号やその他の比較文を用いてより細かく、正確な比較文を作ることができます。下にその主につかう記号の例を出してみます。

基本的には以上の記号が分かれば比例文を作ることが出来ます。
forってなに?
forはifと違いあまり使う機会がないため軽い説明となります。forとはその指定のプログラムをループするプログラムとなります。例文を見て見ましょう。
int i;
for (i = 1; i <= 3; i = i + 1) {
printf("こんにちは\n");
}
このプログラムはまずif同様にintでiという変数を宣言しています。その後for文を使ってprintfで「こんにちは」という単語を計3回表示するプログラムになっています。forは主にif文でいう比較文の部分が重要になっています。つまり、逆にいうとそれ以外の部分はifよりも簡単ということです。またfor文の構成は
for(最初の値;比較文;途中式){
実行するプログラム
}
となっており、最初の値は一番初めの始まる時の値、比較式はfor文を続けるか続けないかの判別、途中式はプログラムが一周したのちもう一度動作する前にされる計算となっています。最後に、プログラムを文で説明すると、
①for文によってiが1となる
②iが1な為比較式をクリアし、「printf(“こんにちは\n”);」を実行する
③初めに戻りfor文の途中式「i = i + 1」を行う
④iが2な為、比較式をクリアし、「printf(“こんにちは\n”);」を実行する
⑤初めに戻りfor文の途中式「i = i + 1」を行う
⑥iが3な為比較式をクリアし、「printf(“こんにちは\n”);」を実行する
⑦初めに戻りfor文の途中式「i = i + 1」を行う
⑧iが4な為比較式が通らずプログラムを終了する
となります。
delayってなに?
delay関数とはプログラムに遅延をつけるときに使います。delay関数を使うとその文にプログラムが到達した場合数字にて指定した時間分プログラムを停止させます。その為delay関数を使うと停止中はあらゆる外部信号を受け付けず、内部関数も動作しないという問題がある為使いどころには注意が必要です。またdelay関数はミリ秒で入力しなければなりません。例文を出してみましょう。
実行するプログラム1
delay(2000);
実行するプログラム2
このプログラムは実行するプログラム1が動作した後にdelay関数にて2000ミリ秒、つまり2秒間プログラムを停止させます。その後に実行するプログラム2を実行するというプログラムです。
switch関数ってなに?
switch文とは簡単に言うとifから汎用性を犠牲に見やすくしたものです。例文を見てみましょう。
int count = ◯;
void loop {
switch (count) {
case 0:
printf ( “赤色\n”);
break;
case 1:
printf ( “青色\n”);
break;
case 2:
printf ( “黄色\n”);
break;
case 3:
printf ( “緑色\n”);
break;
case 4:
printf ( “紫色\n”);
break;
case 5:
printf ( “白色\n”);
}
}
}
このプログラムはcountの数によって表示する文字が違うというプログラムです。このプログラムは構成自体はとても簡単ですが、暗記力が必要になっています。またswitch文を使うことで、冒頭で話した通りプログラムが比較的スッキリと見えます。それでは構成を見てみましょう。
switch (変数名) {
case 数字:
実行するプログラム
break;
case 数字:
実行するプログラム
}
switch文の構成はこのようになっており変える点は変数名と数字のみというシンプルなものとなっています。またcase内にある「break;」という単語が気になった人も居ると思います。breakとは直訳で壊すという意味があるように枠組みを壊して外に出るという意味です。通常プログラムという物は上から下へという順番で動作します。その関係でswitch文の場合例文で言うcase 0;の場所に入った後にbreakがない場合次にcase 1;のプログラムにも入ってそのままcase 5;までのすべてのプログラムが実行されてしまいます。これでは扱いにくいためbreak;を使ってプログラムが実行された後にswitch文の外まで実行プロセスを飛ばすことにより、他のプログラムが実行される事がなくなります。このようにして、switch文を使うことができます。
millisってなに?
millis関数とは、簡単に言うと時間関係のプログラムです。このmillis関数はArduinoに標準搭載されているため容易に使うことが出来ます。このmillis関数が扱える数字というのはArduinoを起動(主電源をつないでから)してから経過した時間をunsigned long変数にてミリ秒で取得する事が出来ます。その為unsigned longの上限である4,294,967,295という数値を越さない限りは正常に動作します。(約50日で上限にあたってオーバーフローつまり0に戻ります)
豆知識 ~ unsigned変数編~
unsigned変数とは簡単に言うと負の数つまりマイナスのない変数です。その為通常のintやlongなどと比べてunsignedを用いたintやlongは正の数つまりプラスの数が2倍と大きいのが特徴です。
プログラムを綺麗に書こう!
今までの例文や構成確認のプログラムを見て何か気づいた人もいると思います。この記事に書いてあるプログラムはすべてコードを綺麗に並べて書いています。ここでは綺麗なコードについて学んでみましょう。
綺麗なプログラムの条件
- 変数名が分かりやすい。
- 各プログラムごとにスペースの数がそろっている。
- コメントが適切に使われている。
- 詰めすぎず適切なスペースがある。
などが上げられます。では実際に例文で確認してみましょう。
例文1
void loop {
if(count==1){
printf(count);
}
}
これは上記の条件をすべて無視したプログラムです。この規模だとまだギリギリ中カッコのつながりなどわかるかもしれませんがこれが数十行数百行のプログラムになると何が何だか分からなくなります。それでは条件を満たすプログラムを書いてみましょう。
例文2
void loop {
if ( count == 1 ){ //countが1の時
printf ( count ); //countの値を出力する
}
}
このようにプログラムに適切なスペースを入れるなどをすれば、見やすいプログラムを作ることが出来ます。また綺麗なプログラムというのはある程度の規則はあると思いますが結局は各自の感性によります。その上今回筆者のした並べ方以外にも様々な並べ方、揃え方があるので、自分にあった並べ方を調べてみるのもいいかもしれません。
構造化プログラミングってなに?
構造化プログラミングとはプログラミングをするにあたて非常に重要な考え方です。プログラムを組む際にただただ殴り書きするのではなく、どんな構造を組めばプログラムが短くなるのか、こことここは同じ動作だから統合できないのか、こうすれば見やすいのではないかを考えながらプログラムを組むことによって、より分かりやすく、修正作業などのメンテナンス性の良い一歩進んだプログラムを作成することが出来ます。
最後に
ここではプログラムを書くうえで必要な知識について学んでいきました。この知識を活かしてプログラミングも頑張っていきましょう。