研修(移行中)

マイクロマウス研修 プログラミング4

さて、前回なんとなーく分かったような所を改めて自分が理解する為に書いてみましょう。

ここで取り出したのは、かなり前に購入した「教えて♪プログラミング」という本。
IMG_0190
前にも書いたのですが、この本は私のような超初心者の為に書かれたプログラミング入門書で
コードが一行も書かれていません。
「まずはなんとなく分かることが大切よ!」と表紙に書いてあり、
会社の先輩が後輩に教えていく会話形式で一冊丸々書かれています。

まずは「プログラミングとは何か」をこの本は説明してくれています。
今更そこかい!というツッコミはおいておいて。

プログラミングとは、目的達成の為に
1.アルゴリズムを作り、
2.そのためのデータを扱うためのもの。

アルゴリズムとは、目的達成の為のロジック、ストーリーのこと。
データの扱い方は、参照、保存、更新、削除の4種類しかない。

ふーん、ふんふん。(あまりよく分かっていない)
そして?

ロボットに朝食を食べさせるって目的のプログラムだとしたら、こんな感じ。

1.最初に手を合わせて「いただきます」と言う

2.お味噌汁を一口飲む。具がじゃがいもだったら、ご飯を食べる。
 具がしじみだったら、サラダを食べる

3.鮭を食べた後は、ご飯を2口食べる。
 煮物を食べた後は、ご飯を3口食べる。

4.煮物の味付けが薄かったら、辛子を冷蔵庫から取ってくる。
 1回付けて食べ、まだ足りなかったらそれを繰り返す。

5.ご飯がなくなって、もしまだお腹が空いていたら「おかわり」と言う。
 もしお腹が空いていなかったら箸を置いて「ごちそうさま」と言う。

この中にプログラミングの要素、アルゴリズム(ロジック、ストーリー)と
データの扱い(この場合ご飯、おかず、調味料)の全てが入っている。

IMG_0194
ここには、アルゴリズムを組み立てるのに使う制御方法は3つ、とあります。

順次実行:上から順に命令を実行する。
分岐:もしXだったらYを実行せよ、という形で条件によって実行する内容を場合分けする。
繰り返し:繰り返し同じ処理を実行すること。

ん??これって、この前ブザーを鳴らした時にあった「無限ループ」が
繰り返しに当たるのではないかな!??

アオキ師匠から頂いた資料がこちら。
2016-11-18
プログラミングで出会うif文、for文、while文、switch文がコンパクトにまとめられています。
もちろん私はこれを理解している訳ではありませんが・・・。
文系脳をフル回転させると、if文は上で言う所の「分岐」(もしXだったらYを実行せよ)かな。

上の資料を抜粋すると

If(条件式1){
命令;
}else if(条件式2){
命令;
}else{
命令;
}


if(a==b){
c = d;
}else{
c = e;
}

aとbの値が同じならcにdの値を入れる。aとbの値が違うならcにeの値を入れる。

ふむ。ロボットにご飯を食べさせるなら「2」のお味噌汁を一口飲む、というところですね?
(具がじゃがいもだったら、ご飯を食べる。具がしじみだったら、サラダを食べる)

でも、今までLEDやブザーの部分ではif文はまだ出てきていないかな。

while文は「繰り返し」ですね。
これは、ロボットにご飯を食べさせるバージョンなら
「煮物の味付けが薄ければ辛子を冷蔵庫から取ってくる。まだ足りなかったらそれを繰り返す」
のところかな。

そう言えば、ミニーちゃんのブザーを鳴らした時のプログラミングコードにも
while無限ループって書いてありました!!

while(1) //無限ループ  ←ここ!!
{
BUZZER = 1; //ブザーに1を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
BUZZER = 0; //ブザーに0を出力
for(i = 0; i < 0x3000; i++); //時間待ち(空ループ)
}

「ブザーに1を出力」「ブザーに0を出力」を延々繰り返していて音が出ていたのですね。

ついでにLED点滅のプログラミングコードも見てみようかな~。

while(1)//無限ループ ←あった!!
{
LED0 = LED1 = LED2 = LED3 = 1;//LED点灯
for(i= 0; i< 0x7fffff; i++);//時間待ち(空ループ)
LED0 = LED1 = LED2 = LED3 = 0;//LED消灯
for(i= 0; i< 0x7fffff; i++);//時間待ち(空ループ)
}

繰り返しのwhile文!チカチカ光って消えて繰り返しが続いていた理由がここに!

他にもまだfor文とswitch文がありますが、また今度にしましょう。
マイクロマウスの全国大会が先週末に終わったので(皆さまお疲れさまでした!)、
またアオキ師匠に聞きながらプログラミングを再開しようと思います。

次は「スイッチを使おう」でーす。

タイトルとURLをコピーしました