Scratchで 割り算のアルゴリズムを考えてみよう

余りのある割り算専用電卓

 3年生用にって思って「余りのある割り算しか出来ない電卓」を作りました。こんな物売り物にはならん、と一蹴されますが、プログラミング体験にもってこいなんです。

 電卓の基本的な反応として、数字キーを押したら、とりあえず変数にその数字を追加するってコードが要ります。そしてそれを数字キー全部に書かなきゃいけませんが、同じような仕事を9回も繰り返すのは面倒なことです。

 その部分はやっておいて教材として提供することにして、「イコール」キーを押したらどうするか? って部分だけコーディングすると考えさせりゃぁ、プログラミング体験になりそう。

 

 Scratchは、「〇を〇で割ったあまり」ってのやら、「〇の切り下げ」なんてのが、すでに用意されているので、簡単なことです。

 しかし、九九を知らないコンピュータは割り算をどうやっているか、って考えると面白そうです。

割り算電卓のプログラム

 “割られる数(前項)から割る数(後項)を引いて”は、“「回数」に1加える”って繰り返しを、“後項より前項が小さくなるまで”する、ってアルゴリズムを思いつくことでしょう。

 コレって大昔のメカニカルな手回し計算機の割り算の方法だよねぇ。グリグリ回してチンって鳴ったら、マイナスになったってことなので1回転戻すって操作だったよね。

割り算電卓のプログラム

 考えやすいように(表示部分の数値が動いてしまうからなんだが)「割られる数」「割る数」「回数」って変数にして作ってみました。そのための書き込みや書き戻しの5行を除くと、何度も引き算をしてその回数を数えるって、たった2行の繰り返しですワ。これは算数専門の先生が “割り算は引き算とは違うぞ” って言いそうなアルゴリズム。

 

 割られる数だけしか入れていない時にイコールをおしたらどうなるか?なんてことも考えておかなくちゃいけません。

 割り算ですから、下手をすりゃぁ「ゼロ」で割る事態が想定されます。それをいさめる表示が要るなぁってのが、プログラミングの勘所。“「ステージ」とは割る数の入力モード” で、それに加えて “割る数が0ではない” 場合に余りのある割り算を開始することにしています。

 プログラムを作るってことは、使う人は何するかワカランって思ってするもんなのです。予測外の操作をされた時の対処をきちんとやらなくっちゃぁ「バグってる」って言われるんです。

割り算電卓のプログラム

 こんなコーディングでしょうかねぇ。

 計算結果が出た後、数字キーを打つとさらに数字が入るので、ステージを「0」にして入力を受け付けないようにしています。

 また、あまりを「0」と表示するのも方法ですが、式としてはおかしいって声もありそうなので、「なし」と表示するようにしています。

 

 作ってみて、加減乗算をしない!ってことにしたら、すっきりとした電卓になりました。しかも、3年生向けですから、小数点も取っちゃいました。ノートに書く式の形で表示しているのも、3年生向け。

 もっと上の学年が、プログラミングの学習に使うのなら、コーディング上の問題点を発見しやすくて、トレーサビリティが良い。

 

 プログラミングで児童に与える時は、「計算する」ってメッセージを、背景のコードで受けています。背景のコードの「計算するを受け取った時」のキャップスタックを外して動作しないようにしてから、校内サーバーなどに保存して使うと良いです。

 

私のスタジオ「小学校の授業で」に置いています。作品数が多くなったので「小学校の授業で、プログラミング」ってスタジオを増設しました。


にほんブログ村 教育ブログ 理科教育へ
 
コメント
コメントする



 ※コメントには表示しません

 ※コメントには表示しません


   

更新情報

累計記事数: 1760
最終更新日: 2020/06/07

最新記事 5件

ブログ内検索

単元別記事一覧

 ○理科単元名は啓林館版に拠る
 6年生 理科

 5年生 理科

 4年生 理科

 3年生 理科

 理科以外の教科

ここからダウンロードできます

 Scratch でプログラミング


特集記事

カテゴリー別記事一覧

Today and Now

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    
<< June 2020 >>

最新のコメント

  • 今日は分散登校日
    BUN3
  • 今日は分散登校日
    toto
  • 自然教材は待ってくれない
    kk
  • 自然教材は待ってくれない
    BUN3
  • 自然教材は待ってくれない
    BUN3
  • 自然教材は待ってくれない
    kk
  • Scratch 窓口順番発券機のプログラムを考える
    toto
  • Scratch 窓口順番発券機のプログラムを考える
    BUN3
  • Scratch 窓口順番発券機のプログラムを考える
    toto
  • Scratch 窓口順番発券機のプログラムを考える
    BUN3

過去の記事

mobile

qrcode

powered

blogRANKING

他の理科ブログを覗いてみますか?

にほんブログ村 教育ブログ 理科教育へ
にほんブログ村