喜三郎のなでしこ日記

2008-04-18

加減乗除の算数問題* 11:12

 三桁の加減乗除の算数問題を作成しました。

三桁なので 掛け算の暗算は難しいですね~

前に一度作ったのですが 引き算や割り算の時に

乱数で得た数字の数の大きな方を前にもってくるには

どうしたら良いかわからずに のままにしていました。

 この部分を考えて 

割り算では0以下の答えにならないように

引き算では マイナスにならないようにしました。

以下が のプログラムです。

母艦は算数問題
母艦の可視はオフ。

「これは算数の問題です。
整数で答えてください。
割り算も整数で答えてください。
例えば2.154なら2と回答してください。
問題は10問です。暗算してください。
それでは 始めます。」と言う。

Mとは変数
Nとは変数

10回
 イベント1

M1はMの文字数。
N1はNの文字数。

「{M1+N1}問中{M1}問正解でした。」と言う。

●イベント1
 A=10の乱数
 B=8の乱数+1
 K=A*10+B

 D=10の乱数
 E=8の乱数+1
 J=D*10+E


 加減乗除は「+{~}-{~}×{~}÷」
 加減乗除を配列シャッフル
 m=加減乗除\0

 mで条件分岐
  "+"ならば
     「{K}+{J}は?」と尋ねる。
     Lはそれ。
     もし、L=K+Jならば
        「正解」と言う。
        Mに「正」を追加。
     違えば
        「不正解」と言う。
        Nに「不」を追加。 
     
  "-"ならば
     もし、K<Jならば
           「{J}-{K}は?」と尋ねる。
           Lはそれ。
           もし、L=J-Kならば
              「正解」と言う。
           Mに「正」を追加。
        違えば
           「不正解」と言う。 
           Nに「不」を追加。 
     違えば            
        「{K}-{J}は?」と尋ねる。
        Lはそれ。
        もし、L=K-Jならば
           「正解」と言う。
           Mに「正」を追加。
        違えば
           「不正解」と言う。 
           Nに「不」を追加。
     
  "×"ならば
     「{K}×{J}は?」と尋ねる。
     Lはそれ。
     もし、L=K*Jならば
        「正解」と言う。
        Mに「正」を追加。
     違えば
        「不正解」と言う。
        Nに「不」を追加。
     
  "÷"ならば
     もし、K<Jならば
           「{J}÷{K}は?」と尋ねる。
           Lはそれ。
           Z=J/Kの整数部分
           もし、L=Zならば
              「正解」と言う。
           Mに「正」を追加。
        違えば
           「不正解」と言う。
           Nに「不」を追加。
     違えば            
        「{K}÷{J}は?」と尋ねる。
        Lはそれ。
        Z=K/Jの整数部分
        もし、L=Zならば
           「正解」と言う。
           Mに「正」を追加。
        違えば
           「不正解」と言う。
           Nに「不」を追加。