Scratchで数の大小を調べるプログラムを作る
カリキュラム
hr.icon
持っているお金と買いたいものの値段を入れると,買えるかどうかを教えてくれるプログラムを作ります.
https://gyazo.com/9732a22ef615832e74aee3bed2d5ac36
緑の旗を押して,プログラムを実行してください.「もっているお金はいくら?」と聞いてくるので,適当な数を入れてください.次に「買いたいもののねだんはいくら?」と聞いてくるので,適当な数を入れてください.プログラムはそこで止まってしまいます.用意されたブロックを使って,もっているお金で買いたいものが買えるかどうかを調べて,「かえるよ」または「かえないよ」というプログラムを作ります.
数を入れさせてとっておく
https://gyazo.com/b99447adcee824403f0b6aa1355aba98ブロックは,◯に入れた文字を読み上げ,入力を待ち,入力されたものを変数https://gyazo.com/64bb349f9b4555f50e00778a433e9d47ブロックに入れます.よって,https://gyazo.com/c771983833b27b4ba9f13190425fa054ブロックは「もっているお金はいくら?」と聞き,入力された数を変数ブロックhttps://gyazo.com/64bb349f9b4555f50e00778a433e9d47に入れ,同様にhttps://gyazo.com/84733df4474f52f4d6d1451a0c53a179ブロックは「ねだんは?」と聞き,入力された数を変数ブロックhttps://gyazo.com/64bb349f9b4555f50e00778a433e9d47に入れる動きをします.https://gyazo.com/b99447adcee824403f0b6aa1355aba98ブロックは実行されるたびに,変数ブロックhttps://gyazo.com/64bb349f9b4555f50e00778a433e9d47の中身を書き換えてしまいますので,入力された持っているお金と値段を比較するためには,少なくとも値段を聞く前に,入力された持っているお金をどこかにとっておく必要があります.
ここでは,念のため,入力された持っているお金と値段の両方をとっておくことにしています.とっておくためには変数ブロックとして,https://gyazo.com/64bb349f9b4555f50e00778a433e9d47とhttps://gyazo.com/2850e17ff2ce4fc38193d8490e8409deが用意されているので,これを用います.変数ブロックに数値などの値を入れるためには代入ブロックhttps://gyazo.com/88a619998d521d4858f88bbcd1ece6ecを用います.左側の◻︎の部分に値を代入したい変数の名前にして,右側の◯の部分に代入したい値を入れます. 買えるかどうかを判定する
では,買えるかどうか,持っているお金と値段の大小を調べ,それによって買えるか買えないかを言う部分を作ってみます.
何かの条件によってプログラムの動きを変えることを条件分岐と呼びます.このためのブロックが条件分岐ブロックhttps://gyazo.com/ef200802f103c39af43ee46b832179e1です.上の六角形の部分に条件を表す条件式を入れ,その条件式が成り立つときは上側の窪みに入れたブロックが,成り立たない時は下の窪みに入れたブロックが実行されます. 今回は,二つの数の大小が条件となります.数の大小を調べるための条件式としては不等式ブロックhttps://gyazo.com/e69438bb2b1882dbf5c2e371f54d9687を用います.左側に入れた数が右側に入れた数より大きい場合は成り立つ結果となり,異なる場合は成り立たない結果となります. では,具体的に買えるか買えないかの条件はどのようになるかを考えてみてください.
よくある回答としては,https://gyazo.com/150451950a24a65858b7436ebd0c554fとhttps://gyazo.com/9941bf3aed4038b8d6d22c76946e442aの二つがあります.さて,どちらが良いのでしょうか.両方についてプログラムを完成させて行ってみます.
前者の場合は,持っているお金が値段より大きい時成り立つので,上側が「買えるよ」,下側が「買えないよ」と言うブロックになります.後者の場合は,その逆になりますね.この違いはなんでしょうか.
実際に数を入れてどのような結果になるかを確かめてみると良いでしょう.
https://gyazo.com/5dcb8c1d5f9486a80e275df704af34fb https://gyazo.com/d920f7b2656a8f204539e33c61ae8bf1
違いは持ってるお金と値段が同じ時の動きです.同じ場合は不等式は成り立ちません.なので,左側だと「買えないよ」,右側だと「買えるよ」と言うことになります.同じ場合は買えるので,右側が正しいことになります. 実際に数を入れて正しく動くかを確かめる作業をデバッグと言います.この場合,持っているお金が値段より大きい時,小さい時,同じ時の3パターンを調べることが必要になります.このようにどのようなパターンがあるかどうかを考えられる力もプログラミング的思考の重要な要素になります.
なお,ここでは詳しく説明しませんが,次のような条件分岐でも正しく動きます. https://gyazo.com/5cfc0e2d7a438fb68abbafea24ea3c79
https://gyazo.com/c7680bbc41db2fa09603eb1000540504
最後に正解例を示します.
https://gyazo.com/c315c273fd6d2389ccead044b7d72b73
Copyright 2017- NaokiKato, IML at Tokyo Gakugei University, All right reserved.