見出し画像

一分間スクラッチ講座 | 算数アプリで足し算・引き算・掛け算・割り算の作り方


今回は、Scratchで作る「算数アプリ」についてご紹介します。

Scratchの変数や乱数、質問ブロックを使うと、足し算・引き算・掛け算・割り算のクイズアプリを作ることができます。

下の動画は、不定期配信の「ファイブボックス 1分間スクラッチ講座」です。
ご興味のある方は、あわせてご覧ください。

ファイブボックス一分間スクラッチ講座
計算アプリの作り方 足し算編

引き算編

かけ算編

割り算編



1.足し算アプリを作る

まずは、足し算のクイズから作っていきます。

変数を2つ用意する

最初に、次の2つの変数を作ります。

  • Num1:1つ目の数字

  • Num2:2つ目の数字

この2つの変数にランダムな数字を入れて、足し算の問題を作ります。


足し算アプリの流れ

旗が押されたとき、次の処理を行います。

旗が押されたら

  • ずっと以下の処理を繰り返す(何度も連続でプレイを行う)

    1. 変数:Num1に1~100までの乱数を代入

    2. 変数:Num2に1~100までの乱数を代入

    3. 「Num1」と「␣+␣」と「Num2」と「␣=␣?」
      ※ ␣は半角スペースで、見やすくするために入れています。

    4. もし入力された質問の答えとNum1+Num2の答えが等しければ
       「正解!」と2秒言う

    5. そうでなければ(質問の答えと足し算の答えが違うなら)
       「残念、答えは・・・」と2秒言う
       さらに「Num1+Num2」の値を2秒言う

たとえば、Num1が54、Num2が23の場合は、

54 + 23 = ?

のような問題が表示されます。

入力欄に答えを入れると、正解か不正解かを判定してくれます。


2.引き算アプリを作る

次に、引き算のクイズを作ります。

引き算も、基本的な考え方は足し算と同じです。
ただし、1つだけ注意点があります。

たとえば、

23 - 54

のように、Num1よりNum2の方が大きい場合、答えがマイナスになります。

マイナスの計算をまだ習っていない場合は、少し難しくなってしまいます。
そこで今回は、答えがマイナスにならないようにします。


一時保存の変数を用意する

引き算では、Num1とNum2を入れ替える場面があります。

そのために、新しく変数:一時保存 を作成します

この変数は、Num1とNum2を交換するときに、一時的にNum1の値を保存しておくために使います。


Num1とNum2を入れ替える考え方

もしNum1がNum2より小さい場合、そのまま引き算をすると答えがマイナスになります。

そこで、次のようにNum1とNum2を入れ替えます。

もし Num1 < Num2 なら

一時保存 に Num1 を入れる
Num1 に Num2 を入れる
Num2 に 一時保存 を入れる

たとえば、最初に

Num1 = 23
Num2 = 54

だった場合、入れ替えた後は

Num1 = 54
Num2 = 23

になります。これで、

54 - 23

という問題になり、答えがマイナスになりません。


引き算アプリの流れ

基本の動きは足し算と同じになります。違う部分は下の太字の部分です。

旗が押されたら

  • ずっと以下の処理を繰り返す(何度も連続でプレイを行う)

    1. 変数:Num1に1~100までの乱数を代入

    2. 変数:Num2に1~100までの乱数を代入

    3. もし Num1 が Num2 より小さければ

      1. 変数:一時保存 に Num1 を代入

      2. Num1 に Num2 を代入

      3. Num2 に 一時変数を代入(Num1にはNum2の値が入っている)

    4. 「Num1」と「␣␣」と「Num2」と「␣=␣?」

    5. もし入力された質問の答えとNum1 - Num2の答えが等しければ 
      「正解!」と2秒言う

    6. そうでなければ(質問の答えと引き算の答えが違うなら)
      「残念、答えは・・・」と2秒言う  
      さらに「Num1 - Num2」の値を2秒言う

これで、常に答えが0以上になる引き算クイズが作れます。


3.掛け算アプリを作る

次は、掛け算です。

掛け算は、足し算と同じように作ることができます。
ただし、Num1とNum2の範囲を大きくしすぎると、問題が難しくなりすぎます。

今回は例として、次の範囲にします。

  • Num1:1から20までの乱数

  • Num2:1から10までの乱数


掛け算アプリの流れ

基本の動きは足し算と同じになります。違う部分は下の太字の部分です。

旗が押されたら

  • ずっと以下の処理を繰り返す(何度も連続でプレイを行う)

    1. 変数:Num1に1~20までの乱数を代入

    2. 変数:Num2に1~10までの乱数を代入

    3. 「Num1」と「␣×␣」と「Num2」と「␣=␣?」

    4. もし入力された質問の答えとNum1 * Num2の答えが等しければ 
       「正解!」と2秒言う

    5. そうでなければ(質問の答えと掛け算の答えが違うなら)
       「残念、答えは・・・」と2秒言う
       さらに「Num1 * Num2」の値を2秒言う

Scratchでは、掛け算の記号は「*」(アスタリスク)を使います。

かけ算ブロック(アスタリスク)

画面上の表示では「×」と見せてもよいですが、計算ブロックでは「*」を使う点に注意しましょう。


4.割り算アプリを作る

最後に、割り算のクイズを作ります。

割り算では、答えが小数になる場合があります。
たとえば、

7 / 2

のような問題では、答えが整数になりません。

今回は、答えが整数になる割り算の問題を作ります。


割り切れる問題を作る考え方

割り算では、Num1を「答え」になる数字として使います。

まず、次のように乱数を入れます。

Num1:1から20までの乱数
Num2:1から10までの乱数

そして、

一時保存 = Num1 * Num2

にします。

たとえば、

Num1 = 6
Num2 = 4

だった場合、

一時保存 = 6 * 4
一時保存 = 24

になります。

この状態で、

24 / 4 = ?

という問題を出せば、答えは必ず割り切れる整数(6)になります。
つまり、答えはNum1になります。


割り算アプリの流れ

基本の動きは足し算と同じになります。違う部分は下の赤字の部分です

旗が押されたら

  • ずっと以下の処理を繰り返す(何度も連続でプレイを行う)

    1. 変数:Num1に1~20までの乱数を代入

    2. 変数:Num2に1~10までの乱数を代入

    3. 変数:一時保存 に Num1 * Num2 の値を代入

    4. 一時保存」と「␣/␣」と「Num2」と「␣=␣?」

    5. もし入力された質問の答えとNum1 が等しければ
       「正解!」と2秒言う

    6. そうでなければ(質問の答えと掛け算の答えが違うなら)
       「残念、答えは・・・」と2秒言う 
       さらに「Num1 」の値を2秒言う

Scratchでは、割り算の記号は「 / 」(スラッシュ)を使います。

今回は、一時保存に「Num1 × Num2」の値を入れているので、

一時保存 / Num2

の答えは、必ずNum1になります。
これで、割り切れる割り算のクイズを作ることができます。


まとめ

今回は、Scratchで算数アプリを作る方法を確認しました。

作った内容は、次の4つです。

  • 足し算アプリ

  • 引き算アプリ

  • 掛け算アプリ

  • 割り算アプリ

足し算では、2つの乱数を足して答えを判定しました。

引き算では、答えがマイナスにならないように、Num1とNum2を必要に応じて入れ替えました。

掛け算では、乱数の範囲を調整して、答えやすい問題にしました。

割り算では、先に掛け算で答えを作っておくことで、必ず割り切れる問題を作りました。

今回は四則演算をそれぞれ独立した形で作りました。
ただ、このままだとアプリとしては少しバラバラです。

次回は、これらをまとめて、よりアプリらしく遊べる形に改造していきます。


ファイブボックス一分間スクラッチ講座 の記事はこちらでまとめてあります。


ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

いいなと思ったら応援しよう!

ファイブボックス よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!