例外処理があって奥深い引き算
このブログでは何度も
子どもたちが KUMON に取り組んでいることに触れていました。
どうかと思う問題も多々ありながらも
取り合えず子どもたちは
年中さんにも関わらず、
一生懸命、筆算で足し算と引き算をやっています。
まぁ筆算無しで
二桁の数字の足し算と引き算の問題が続いていた頃よりも
随分と理不尽さは無くなってきた気がします。
足し算のロジックは結構単調で
割と苦労することなく教えられました。
桁上がりもそんなに悩むポイントがありません。
問題は引き算です。
やはり桁の繰り下がりが頭使いますよね…。
それでも何とか、良い方法で教えることが出来て
子どもたちは取り組めていましたが
よく考えたら例外処理を教える必要がありました。
スポンサーリンク
上位桁が 0
引き算の筆算は、
上下の数字を見比べて、上が下の数字以上の場合、
単純に
上の数字 – 下の数字
の計算をします。
一方で、上の数字が下の数字より小さい場合
少し頭を使います。
上位桁の数字を 1 つ小さくして
10 – 下の数字をした結果に、上の数字を足し合わせます。
このロジックで子どもたちは引き算を
筆算で解くことが出来ていましたが
壁が立ちはだかりました。
上の数字よりも下の数字が大きく
なおかつ、
上位桁の数字が 0 だった場合です。
いつも通り、
上位桁の数字を 1 つ小さくしようとすると
0 と書いてあるので、子どもたち的には手が止まります。
そりゃそうなります。
何だか本当に、プログラムのコーディングをしているようです。
0 から 1 つ小さくしようとすると
-1 といった 0 よりも小さい数字を扱える必要がありますが
子どもたちにまだその定義がありません。
という訳で、上位桁が 0 だった場合の
例外処理を教えました。
条件分岐と情報スタックが多い
上位桁が 0 だったときの計算方法は、
更にその上位桁を 1 つ小さくして
10 借りてきて、10 を 1 つ小さくして
いつも通り計算する
というロジックです。
例えば
103 – 25
の場合です。
1 の桁を見ます。
3 と 5 で、5 の方が大きいので
上位の 10 の桁に注目します。
1 つ小さくしようとしますが、あいにくの 0 です。
なので、更に上位の 100 の桁を見ると、1 とあるので、
一つ小さくして 0 にします。
10 の桁は 10 になっていると見なし、
10 を 1 つ小さくして、10 の桁は 9 にします。
で、やっと 1 の桁の計算に戻れます。
10 から 5 を引いた結果が 5 です。
これに 3 を足して、1 の桁は 8 です。
10 の桁は 9 になっているので、9 から 2 引いて 7 です。
100 の桁は 0 になっているので、0 から 0 引いて 0 です。
答えは 078 です。つまり 78 です。
ある桁の計算をする際
上の数字と下の数字を比較し、
そこから分岐する場合分けの数が多いことと
計算したかった桁の計算を一度止めて
上位桁もしくは更にその上位桁まで目を向けて
桁の繰り下がりを経て、ようやく計算に戻って来れます。
これを小さな子がやるのはちょっと酷ですよね…。
特に竜太は桁の繰り上がりや繰り下がりの際、
問題用紙に繰り上がり結果や繰り下がり結果を
書き込むことを嫌うので
余計に難易度が上がっているらしく
非常に苦しそうです。
何とか頑張って取り組んでいますが、
克服できるかしら…。