スクラッチを使って簡単な算数の問題を作ってみます。
今回のプログラムは3つの数字を入力して、その中から最大値を見つけて画面上に表示します。
プログラムの詳細
まずは「変数」を用意します。
「変数」というのは数学の変数(xやyなど)と同じ意味で、この中に何か値を入れることが出来ます。
「変数」の作り方は、コードの「変数」をクリックし、「変数を作る」をクリックして名前を入力するだけで作ることが出来ます。
今回は「入力回数」と「一番大きい数字」という変数を用意しました。
この変数に値を入れるブロックはいくつかありますが、今回は このブロックを使います。
これをそのまま実行すると「一番大きい数字」の値が0になります。
プログラムが実行された時に「入力回数」を1に、「一番大きい数字」を0にして初期化をしておきます。
そして、入力した数字を「一番大きい数字」に入っている数字と比較をします。
入力した数字のほうが大きければ「一番大きい数字」の中にその数字を代入していきます。
数字を3回入力する為に「3回繰り返す」命令は「制御」にこのブロックで指定することが出来ます。
数字を変えることで、この中のプログラムを何回繰り返すか指定できます。
今回は3回なので、3と入力します。
数字を入力する際に使用しているのは、「コード」の「調べる」にあるこのブロックです。
「~回目の数字を入力してください」と表示する方法は後ほど説明します。
このブロックは、実行すると打ち込んだ質問を画面に表示して答えが入力されるのを待ちます。
答えが入力されるとこのブロックの下にある
この中に代入されます。
注意点はには一つの値しか入れることが出来きません。
例えば、次のようにこのブロックを使って実行したとします。
「1つ目の数字を入力してください」の質問に「8」と入力し、次の「2つ目の数字を入力してください」の質問に「19」と入力したとすると、
には「8」と「19」ではなく、最後に入力した「19」しか入っていない状態になります。
その為、入力した値を2つ以上使用したい場合は「変数」を利用します。
今回のプログラムでは入力した値が最大値だった場合「一番大きい数位」の値にしたいので、このブロックを使います。
このようにプログラミングをする入力した数字を変数の中に入れることが出来ます。
ただ、今回のプログラムでこのブロックを実行する条件は入力された数字が「一番大きい数字」より大きい場合です。
「もし~のほうが大きければ」というような、条件によって実行される動きが違うプログラムを作成する場合は、
コードの「制御」にあるこれらのブロックを使うことで作ることが出来ます。
今回は左のブロックを使います。
条件に該当する場合はこのブロックの中にあるプログラムが実行されるというブロックです。
条件を指定するブロックはコードの「演算」にある六角形のブロックを使います。
上から「左の値が右の値より大きい時」「左の値が右の値より小さい時」「左の値と右の値が同じ時」という条件になります。
今回のプログラムではこのブロックを使用します。
条件は【答えが「一番大きい数字」より大きい時】という条件のプログラムを作ります。
このように条件を指定して、中に先ほど作った答えを「一番大きい数字」に代入するプログラムを入れます。
数字を入力するたびに「入力回数」の数字を1ずつ増やすプログラムを追加します。
変数にあるこのブロックをこのように追加します。
このようにプログラミングをすることで、数字を入力する度に「入力回数」が1ずつ増えていきます。
3つの数字を入力した後、最後に「一番大きい数字」に入っている値を画面上に表示します。
「一番大きい数字は~です」と表示させるには、これらのブロックを組み合わせます。
このように組み合わせることで「一番大きな数字は~です」と表示させることが出来ます。
同じように数字を入力する際の質問も「~回目の数字を入力してください」と表示するようにしましょう。
作ったプログラムをすべて繋げると今回のプログラムは完成です。
プログラムの流れ
プログラムが実行すると、3つの数字を入力します。
3つの数字を入力したら、その中から最大の数字を判断し画面上に表示します。
今回は3回入力した中から最大値を探すプログラムですが、「~回繰り返す」の数字を変えることで、何個でも入力する数字を増やすことが出来ます。
また、入力された数字から最小 最大 平均 のそれぞれを求めて表示するといったプログラムに改造することも可能です。
コメント