スクラッチを使って入力した月が大の月か小の月か調べるプログラムを作ります。
大の月というのは31日まで日付ある月のことを指します。
小の月は31日未満の月で、「西向く士」(にしむくさむらい)という覚え方が有名ですね。
今回は月の数字を入力してその月が「2,4,6,9、11(にしむくさむらい)」の月なら小の月、「1,3,5,7,8,10,12」の月なら大の月、それ以外の数字は「そんな月はありません。」と画面に表示するプログラムです。
プログラムの詳細
月の数字を入力する際に使用しているのは、「コード」の「調べる」にあるこのブロックです。
このブロックは、実行すると打ち込んだ質問を画面に表示して答えが入力されるのを待ちます。
答えが入力されるとこのブロックの下にある
この中に代入されます。
注意点はには一つの値しか入れることが出来きません。
今回は入力する数字が一つなので問題ありませんが、2つ以上入力したい場合は注意が必要です。
例えば、次のようにこのブロックを使って実行したとします。
「君の苗字は?」の質問に「山田」と入力し、次の「君の名前は?」の質問に「太郎」と入力したとすると、
には「山田 太郎」ではなく、最後に入力した「太郎」しか入っていない状態になります。
その為、入力した値を2つ以上使用したい場合は「変数」を用意することで2つ以上の値を使用することが出来ます。
ただ、今回のプログラムでは使用しないので、変数の説明については省略します。
入力された数字を「2,4,6,9、11」のどれかなのか、「1,3,5,7,8,10,12」のどれかなのか、それともそれ以外なのかを判断します。
「もし~なら」というように、条件によって実行される動きが違うプログラムを作成する場合は、
コードの「制御」にあるこれらのブロックを使うことで作ることが出来ます。
今回は右のブロックを使います。
これは条件に該当する場合は上のプログラムが実行され、そうではない場合は下のプログラムが実行されるブロックです。
条件を指定するブロックはコードの「演算」にある六角形のブロックを使います。
上から「左の値が右の値より大きい時」「左の値が右の値より小さい時」「左の値と右の値が同じ時」という条件になります。
下の3つは複数の条件がある時に使用します。
例えば、「もし値が1以上かつ10以下の時」というような条件の場合は「~かつ~」のブロックを使って条件を指定します。
まずは入力された数字が1~12のどれかかどうかを判断します。
1~12のどれかかどうかは、入力された数字が「0以上 かつ 13以下」の場合という条件にすることで探すことが出来ます。
この条件に当てはまらない場合は存在しない月なので、「でなけらば」のプログラムに「そんな月はありません。」と表示させます。
これで存在しない月の数字を入力された際の処理は完成しました。
次は入力された数字が「2,4,6,9、11」の時は「小の月です」と表示するプログラムを作ります。
条件の指定方法は「入力された数字が 2または4または6または9または11の時」というように指定します。
この条件に当てはまる時は「小の月です」と画面に表示し、この条件に当てはまらない時は「大の月です」と表示させます。
完成したプログラムを「入力された数字が0以上 かつ 13以下」の時に実行されるようにします。
最後に一番上に月を入力するブロックを付け加えればこのプログラムは完成です。
プログラムの流れ
プログラムを実行すると、数字を1つ入力します。
入力した数字が「2,4,6,9、11(にしむくさむらい)」の月なら「小の月です。」と、「1,3,5,7,8,10,12」の月なら「大の月です。」と、それ以外の数字は「そんな月はありません。」と画面に表示します。
条件の指定は工夫をすればとても細かく指定することが出来ますが、その分ミスもしやすくなるので、「~かつ~」や「~または~」を複数使用した条件を作る際は注意しましょう。
コメント