
このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。
スクラッチ講座、投稿記事のまとめはこちら(一分間スクラッチ講座 まとめ)でご参照ください。
今回は足し算、引き算、掛け算、割り算ができる算数アプリ、基本編のご説明です。
下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。
足し算偏
変数を2つ用意します
- Num1:1つ目の数字
- Num2:2つ目の数字

旗が押されたとき以下の処理を行います。
旗が押されたら
- ずっと以下の処理を繰り返す(何度も連続でプレイを行う)
- 変数:Num1に1~100までの乱数を代入
- 変数:Num2に1~100までの乱数を代入
- 「Num1」と「␣+␣」と「Num2」と「␣=␣?」 ※ ␣は半角スペースで、見やすくするために入れています。
- もし入力された質問の答えとNum1+Num2の答えが等しければ 「正解!」と2秒言う
- そうでなければ(質問の答えと足し算の答えが違うなら) 「残念、答えは・・・」と2秒言う さらに「Num1+Num2」の値を2秒言う

これで下の図のように、足し算のクイズができました。入力欄に数字を入れると、正解かはずれか教えてくれます。

引き算編
引き算の場合も同様に、上で作成したNum1、Num2を活用します。
このとき、Num1がNum2より大きい場合は答えは正の数(0以上の数)になるりますが、Num2の方が大きい時、答えは負の数になってしまいます。マイナスの学習をしていれば答えることができますが、まだマイナスの概念がない場合、答えることができません。
サンプルでは、答えがマイナスにならないような方法をご説明します。
事前に新たな変数:一時保存 を用意します。
これはNum1 と Num2 を交換する際に、一時的にNum1 の値を保存しておく変数です。

基本の動きは足し算と同じになります。違う部分は下の赤字の部分です。
旗が押されたら
- ずっと以下の処理を繰り返す(何度も連続でプレイを行う)
- 変数:Num1に1~100までの乱数を代入
- 変数:Num2に1~100までの乱数を代入
- もし Num1 が Num2 より小さければ
- 変数:一時保存 に Num1 を代入
- Num1 に Num2 を代入
- Num2 に 一時変数を代入(Num1にはNum2の値が入っているので)
- 「Num1」と「␣-␣」と「Num2」と「␣=␣?」
- もし入力された質問の答えとNum1 – Num2の答えが等しければ 「正解!」と2秒言う
- そうでなければ(質問の答えと引き算の答えが違うなら) 「残念、答えは・・・」と2秒言う さらに「Num1 – Num2」の値を2秒言う

これで常に、答えが0以上になる引き算ができました。
掛け算編
掛け算は足し算同様、マイナスの値にはならないので、足し算のスクリプトを活用すればいいですね。
ただしNum1,Num2の乱数の範囲が大きいので、任意で調整します。サンプルではNum1を 1~20 までの乱数、Num2を 1~10 までの乱数にしてみました。
基本の動きは足し算と同じになります。違う部分は下の赤字の部分です。
旗が押されたら
- ずっと以下の処理を繰り返す(何度も連続でプレイを行う)
- 変数:Num1に1~20までの乱数を代入
- 変数:Num2に1~10までの乱数を代入
- 「Num1」と「␣×␣」と「Num2」と「␣=␣?」
- もし入力された質問の答えとNum1 * Num2の答えが等しければ 「正解!」と2秒言う
- そうでなければ(質問の答えと掛け算の答えが違うなら) 「残念、答えは・・・」と2秒言う さらに「Num1 * Num2」の値を2秒言う

インドでは19×19まで暗算でおぼえるようです。
割り算編
割り算は答えが整数にならない場合があります。今回は答えが整数で割り切れる問題を作ってみたいと思います。
引き算で作った変数:一時変数を活用します。
今回はNum1 が答えになるように問題を作ります。
Num1に1~20までの乱数、Num2に1~10までの乱数をそれぞれ代入し、変数:一時保存にはNum1×Num2 の値を代入します。
出題内容は「一時保存 / Num2」になります。(割り算の記号は「/」スラッシュ)
基本の動きは足し算と同じになります。違う部分は下の赤字の部分です。
旗が押されたら
- ずっと以下の処理を繰り返す(何度も連続でプレイを行う)
- 変数:Num1に1~20までの乱数を代入
- 変数:Num2に1~10までの乱数を代入
- 変数:一時保存 に Num1 * Num2 の値を代入
- 「一時保存」と「␣/␣」と「Num2」と「␣=␣?」
- もし入力された質問の答えとNum1 が等しければ 「正解!」と2秒言う
- そうでなければ(質問の答えと掛け算の答えが違うなら) 「残念、答えは・・・」と2秒言う さらに「Num1 」の値を2秒言う

これで割り算の計算プログラムができました。
四則演算、それぞれ独立した動きはできましたが、一貫性がないので次回はアプリとして楽しめるように改造します。
ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。