
キッチンでプログラミング(8)
今回は手続き型プログラミングの復習をしたいと思います。
【ぎょうざを作ろう】
ビットさんが言いました。
「今まで手続き型プログラミングについて簡単に紹介してきたけど、どうだったかしら。順次処理、条件分岐、繰り返しを使いこなせるようになりましょう。それじゃあ、今日はぎょうざを作りましょう。」
~作り方~
材料
豚ひき肉 200g キャベツ 200g ニラ 50g
ぎょうざの皮 25枚 しょうゆ 大さじ1
チューブのしょうが 2cm 塩 小さじ1
1.キャベツとニラをみじん切りにしてボールに入れる。
2.ボールに塩小さじ1を入れてまぜる。
3.キャベツとニラはしんなりしたか?
はい→4に進む。
いいえ→1分待つ。3にもどる。
4.ボールに豚ひき肉、しょうゆしょうがを追加してよくまぜる。
(まぜたものを具という)
5.回数を人数×5にする。
6.回数は0か?
はい→7に進む。
いいえ→具大さじ1を皮にのせてつつむ。
回数から1引く。6にもどる。
7.強火で軽く焼き色がつくまで焼く。
8.水100mlを回しかけ、ふたをして中火で5分焼く。
9.水分をとばす。
10.人数分のお皿を用意する。
11.回数を人数にする。
12.回数は0か?
はい→終わる。
いいえ→お皿にぎょうざを5個のせる。
回数から1引く。12にもどる。
~~~~~~~~~~
「この作り方を見て何か気づいたことはあるかしら。」ビットさんが言いました。
かなたちゃんが言いました。「みじん切りでは大きさがわからないから”5mm角”とかにした方がいいと思うわ。」
はじめ君も言いました。「しんなりもわからないよ。それに軽く焼き色がつくまでも”何分”とかにした方がいいね。」
かなたちゃんが言いました。「”水100mlを回しかけ、ふたをして中火で5分焼く。”は文が長くてわかりにくいわ。」
ビットさんが言いました。「そうね。長い文は間違いのもとになるから、短く区切った方がいいわね。例えば、”中火にする。””水100mlを回しかける。””すぐふたをする。””5分焼く。”という風ね。」
はじめ君が言いました。「”回数を人数×5にする。”と”お皿にぎょうざを5個のせる。”のところは、同じ1人分の個数なので、『個数』とかいう定数を作って最初に定義した方がいいと思うよ。」
「よく気づいたわね。」ビットさんが言いました。
【解説】
最後の盛り付けの部分の繰り返しをJavaというプログラミング言語で記述すると、
for(int i=0; i<人数; i++){
// お皿にぎょうざを5個のせる。
}
または
for(int i=人数; i>0; i--){
// お皿にぎょうざを5個のせる。
}
のようになります。
上の文は「iという変数を0で初期化して、iが人数より小さい間、『 お皿にぎょうざを5個のせる。iに1たす。』を繰り返すという意味です。
下の文は「iという変数を”人数”で初期化して、iが0より大きい間、『 お皿にぎょうざを5個のせる。iから1ひく。』を繰り返すという意味です。
どちらも”人数”分繰り返すことになります。