スクラッチを使って入力した月がどの季節なのか調べるプログラムを作ります。
3.4.5月は春、6.7.8月は夏、9.10.11月は秋、12.1.2月は冬として判定し、それ以外の数字は「そんな月はありません。」と画面に表示するプログラムです。
プログラムの詳細
月の数字を入力する際に使用しているのは、「コード」の「調べる」にあるこのブロックです。
このブロックは、実行すると打ち込んだ質問を画面に表示して答えが入力されるのを待ちます。
答えが入力されるとこのブロックの下にある
この中に代入されます。
注意点はには一つの値しか入れることが出来きません。
今回は入力する数字が一つなので問題ありませんが、2つ以上入力したい場合は注意が必要です。
例えば、次のようにこのブロックを使って実行したとします。
「君の苗字は?」の質問に「山田」と入力し、次の「君の名前は?」の質問に「太郎」と入力したとすると、
には「山田 太郎」ではなく、最後に入力した「太郎」しか入っていない状態になります。
その為、入力した値を2つ以上使用したい場合は「変数」を用意することで2つ以上の値を使用することが出来ます。
ただ、今回のプログラムでは使用しないので、変数の説明については省略します。
入力された数字を
①「1~12」の中の数字か、それ以外なのか
②「1~12」の数字だった場合、春夏秋冬のどの季節になるのか
を判断します。
「もし~なら」というように、条件によって実行される動きが違うプログラムを作成する場合は、
コードの「制御」にあるこれらのブロックを使うことで作ることが出来ます。
今回は両方のブロックを組み合わせて使います。
「1~12」なのか、それ以外なのか の判定には右のブロック
春夏秋冬のどの季節になるのか の判定には左のブロックを使います。
条件を指定するブロックはコードの「演算」にある六角形のブロックを使います。
上から「左の値が右の値より大きい時」「左の値が右の値より小さい時」「左の値と右の値が同じ時」という条件になります。
下の3つは複数の条件がある時に使用します。
例えば、「もし値が1以上かつ10以下の時」というような条件の場合は「~かつ~」のブロックを使って条件を指定します。
まずは入力された数字が1~12のどれかかどうかを判断します。
1~12のどれかかどうかは、入力された数字が「0以上 かつ 13以下」の場合という条件にすることで探すことが出来ます。
この条件に当てはまらない場合は存在しない月なので、「でなけらば」のプログラムに「そんな月はありません。」と表示させます。
これで存在しない月の数字を入力された際の処理は完成しました。
次は入力された数字が「1~12」の時は「入力された月は」と表示し、その後に判定した季節の結果表示します。
これは次は入力された数字が「1~12」の時に「入力された月は」と表示するプログラムです。
この後に入力された月が春の場合のプログラムを追加します。
春は3.4.5月の場合なので、条件の指定は「入力された数字が 2より大きい かつ 6より小さい」と指定します。
こうすることで「入力された数字が3の時 または 入力された数字が4の時 または 入力された数字が5の時」と指定するより条件を短く指定できます。
春のプログラムが完成すれば、先ほどのプログラムに追加します。
同じように夏・秋も判定するプログラムを作成していきます。
冬の判定だけは春・夏・秋と同じ条件の指定方法では難しいので、長くはなりますが「入力された数字が1の時 または 入力された数字がの2時 または 入力された数字が12の時」と指定します。
完成したプログラムをすべて繋げれば今回のプログラムは完成です。
プログラムの流れ
プログラムを実行すると、数字を1つ入力します。
入力した数字が3.4.5月は「春の季節です。」、6.7.8月は「夏の季節です。」、9.10.11月は「秋の季節です。」、12.1.2月は「冬の季節です。」として画面に表示し、それ以外の数字は「そんな月はありません。」と表示します。
月を判定するプログラムは他にも色々なプログラムに改造することが可能です。
月以外にも西暦なども判定に加えると、もっと複雑なプログラムを作ることが可能です。
興味のある方は是非ともチャレンジして自分だけのプログラムを作ってみてください。
コメント