
キッチンでプログラミング(5)
繰り返し(その2)
「今晩はクリームシチューを作りましょう。」ビットさんが言いました。
~作り方~
1.人数を3にする。
水差しに水700mlを入れる。
煮込み時間を20分にする。
2.人数分のじゃがいも、玉ねぎ、にんじん、とり肉を
2cm角に切ってボールに入れる。
3.なべにサラダ油大さじ1を入れる。
4.なべを火にかける。
5.ボールの中身をなべに入れていためる。
6.なべに水差しの水を入れてふたをする。
7.ふっとうしたか?
はい→8に進む。
いいえ
→1分待つ
7に戻る
8.タイマーを煮込み時間の値にする。
9.タイマーは0か?
はい→10に進む。
いいえ
→タイマーから1引く。
1分待つ。
9に戻る。
10.人数分のルーを入れる。
11.かきまぜる。
12.人数分のお皿にもりつける。
~~~~~
「今日は初めて煮込み料理を作るから、注意する点をいくつかあげておくわね。」ビットさんが言いました。
「まず、7のところ。ふっとうしたかどうかチェックして、ふっとうしていなかったら『1分待つ』と書いてあるよね。私たちはそんなにすぐにはお湯がわかないのを知っているからしばらく放っておくけど、コンピュータにそれをさせるのはなかなか難しいので1分おきに調べることにしたの。もし、『1分待つ』を入れておかなかったら、おなべの前でわいたかなわいたかなとずーっと見ていないといけないからね。たった1分って思うかもしれないけど、コンピュータにとっては人間が全自動洗濯機の前で選択が終わるのを何もしないで待っているよりもむだなことなの。」
はじめ君が言いました。「1分待つ間コンピュータは何をしているの。」
ビットさんが言いました。「何をするか決まっているわけではないのよ。おなべを火にかけている間、普通の人は使い終わった包丁やまな板を片づけたり、食卓の準備をしたりするでしょう。大事なことは、コンピュータに長時間1つの仕事をさせっぱなしにしないということなの。」
「なんとなくわかった気がするよ。」はじめ君がいいました。
ビットさんが言いました。「次に8,9のところ。2人はキッチンタイマーを知っているわよね。時間をセットして置いておいたら0になったときにピピッてなるわよね。あれといっしょよ。本当だったらその後で煮えたかどうかチェックしないといけないんだけど、ここでは設定した時間で煮えることにしてあるわ。実際、決まった大きさに切った材料を決まった火力で火にかければ、設定した時間で煮えるはずなのよね。」
「最後に1のところ。『人数を3にする。』というのは前にもやったからわかるわよね。人数が変わっても簡単に直せるようにするためだったわね。」
かなたちゃんが言いました。「覚えてるわ。3人分のサラダを作るときにやったよね。」
ビットさんが言いました。「それじゃあ、あとの2つはなんでこんなことをするのかって思うでしょ。これにはね、大事な意味があるの。例えば、まちがえて水の量を70mlにしたりとか、煮込み時間を200分にしたりすると、シチューは黒こげになってしまうでしょう。ちょっと数字を打ち間違えただけなのに大変な結果になってしまうわけ。それがプログラムの中の方にあったら探すのも大変なの。だから大事な数字は先頭で定義しておくといいのよ。ちなみに、これらの数字は途中で変わらない数字だから定数として定義するの。」
「ずいぶんたくさんしゃべったけど、わかってくれたかしら。」
★ちょっとブレイク★
最近、スマホのカタログなんかを見ていると、クアッドコアとかオクタコアなんていう単語が出てきますね。これは、コンピュータの脳みそにあたる部分がいくつあるかを示しています。クアッドコアなら4つ、オクタコアなら8つということです。シチューを作る場合に、じゃがいもを切る人、玉ねぎを切る人、にんじんを切る人、とり肉を切る人の4人がいれば、下ごしらえの時間はずいぶん短くなります。