算数で四捨五入を教える場面でプログラミングを使った授業が公開されたそうですが,一番肝心の四捨五入という計算がブラックボックスの中に入ってしまっているのはちょっと残念ですね.かといって,Scratchで四捨五入という計算そのものを(四捨五入という機能を使わずに)教えるのは結構難しそうです.
ビスケットで試してみました.プログラムはここにあります.
まず,必要な部品は次の通りです.
数が0から9まで.三角はどの桁で四捨五入するか.横棒は切り捨て,「5|4」が四捨五入命令,「+1」は数に1をたす,「?」はランダムな数生成です.
順に見ていきましょう.
まず,ビスケットは数の計算を知りませんから,足し算を教えます.今回は1をたすということだけ教えればよいので「+1」が数に重なったらその数に1をたすということにします.
ちょっと見づらいですが,それぞれの数に1を足すと次の数になっています.ここで重要なのは9に1を足した時です.桁上がりがおきますね.この場合はその桁を0にして隣の桁に「+1」をさせています.たとえば9999のときに一番下の桁で「+1」をすると順に桁上がりが起きて10000になります.最後何もないところで「+1」があると1に変わるというメガネは9999が桁上がりして万の位に進んだ時に1にするためです.
では,肝心の四捨五入を作ってみましょう.
ここでは四捨五入の命令「5|4」が数に重なった時,0から4までは切り捨て,5から9までは切り上げをするようになっています.それぞれその桁を0にして,切り上げをする場合は次の桁に「+1」をさせています.
切り捨ての命令もつくります.
どんな数でも0に書き換えられています.最初のメガネは切り捨てが何もないところにあると消えます.実は0を切り捨てるメガネが省略されています.
どの桁で四捨五入するかを決めるのがこの三角です.
タッチした場所に三角が生成されます.三角は一つ下の桁で四捨五入,さらに下の桁で切り捨てをします.
実際に走らせてみると.
この8の下をタッチすると,
8の下に三角ができて,この三角が
に変わります.7は0に切り捨てられ,6は5から9の間なので切り上げられて,
8に「+1」を重ねて
となります.
それっぽく動いていますよね.いろんな数で試すために,ランダムに数を生成するプログラムもつくりました.これはビスケットでは常套手段ですね.
ステージに「?」を並べると
走らせるたびに,ランダムな数ができます.
これ全部を授業の中でやるのは無駄な部分が多すぎるので疑問ですが,1を加える部分などはあらかじめ作ってあれば,短い時間でやれるかもしれません.
僕が子供の頃疑問に思っていたのは五捨六入じゃだめかってことで.こっちの方が真ん中っぽいですよね.だったら作ってみればいいんです.四捨五入は切り上げるメガネと切り捨てるメガネがちょうど5個ずつなんですよ.