一括処理部品集6‖kagen.html                            《戻る》 《玄関へ
 《 足し算または引き算問題乱数を使って変えることで作る。 》

【内容】
  「算数のおけいこ」の「足し算と引き算」の問題を自動作成する。
  桁数や繰り上がりのありなしを選べます。

【用例】
 (表定義の一部)
     [一A]:初項の一の位の数値を乱数入力する項目
     [十A]:初項の一の位の数値を乱数入力する項目
     [百A]:初項の一の位の数値を乱数入力する項目
     [A]:初項の値 #cond([一A]="","",1,[百A]*100+[十A]*10+[一A])
     [一B]:第二項の一の位の数値を乱数入力する項目
     [十B]:第二項の一の位の数値を乱数入力する項目
     [百B]:第二項の一の位の数値を乱数入力する項目
     [B]:初項の値 #cond([一B]="","",1,[百B]*100+[十B]*10+[一B])
     [番号]を設け連番を予め入力している。レコード数=24
     他の項目は略す

 (フォームの定義:画面演習用、略)

 (レポートの定義:問題印刷用、略)

 (一括処理の一部)
  名札 加減メニュー     @
    メニュー2 &加減,&加減,( 7,41),#連結(&システム名,”加減問題の種類を選んでください。”)\
     ,"足し算(2桁+1桁),足し算(2桁+2桁),足し算(3桁+2桁),足し算(2桁+3桁),足し算(3桁+3桁) \
     ,引き算(2桁−1桁),引き算(2桁−2桁),引き算(3桁−2桁),引き算(3桁−3桁)" ¥
     ,"繰上りなし加算(2桁+1桁),繰下りなし減算(2桁−1桁),繰上りあり加算(2桁+1桁),繰上りあり加算(1桁+1桁) \
     ,繰下りあり減算(2桁−1桁),1桁+1桁=<9,1桁−1桁>=0,中止(メインメニューへ)"
    条件 (&加減=17) 分岐 START
  手続き終了

  ・・・・・・・・
  名札 加減初期化      A
    置換 [問題番号]=#未定義,[区分]=#未定義,[解答]=#未定義,[百A]="",[十A]="",[一A]="" \
       ,[百B]="",[十B]="",[一B]="",[千C]="",[百C]="",[十C]="",[一C]="",[演算]=""
  手続き終了

  ・・・・・・・・
  名札 加減乱数入力     B
   ケース開始
    ケース (&加減=1)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[十A]=#乱数(9)+1,[一A]=#乱数(10) \
            ,[一B]=#乱数(9)+1
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=2)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[十A]=#乱数(9)+1,[一A]=#乱数(10) \
            ,[十B]=#乱数(9)+1,[一B]=#乱数(10)
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=3)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[百A]=#乱数(9)+1,[十A]=#乱数(10),[一A]=#乱数(10) \
            ,[十B]=#乱数(9)+1,[一B]=#乱数(10)
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=4)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[十A]=#乱数(9)+1,[一A]=#乱数(10) \
            ,[百B]=#乱数(9)+1,[十B]=#乱数(10),[一B]=#乱数(10)
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=5)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[百A]=#乱数(9)+1,[十A]=#乱数(10),[一A]=#乱数(10) \
            ,[百B]=#乱数(9)+1,[十B]=#乱数(10),[一B]=#乱数(10)
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=6)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[十A]=#乱数(9)+1,[一A]=#乱数(10) \
            ,[一B]=#乱数(9)+1
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=7)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[十A]=#乱数(9)+1,[一A]=#乱数(10) \
            ,[十B]=#乱数(9)+1,[一B]=#乱数(10)
        &A=[A],&B=[B]
        条件 (&A>=&B) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=8)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[百A]=#乱数(9)+1,[十A]=#乱数(10),[一A]=#乱数(10) \
            ,[十B]=#乱数(9)+1,[一B]=#乱数(10)
        ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=9)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[百A]=#乱数(9)+1,[十A]=#乱数(10),[一A]=#乱数(10) \
            ,[百B]=#乱数(9)+1,[十B]=#乱数(10),[一B]=#乱数(10)
        &A=[A],&B=[B]
        条件 (&A>=&B) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=10)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[十A]=#乱数(9)+1,[一A]=#乱数(10),[一B]=#乱数(9)+1
        &A=[一A],&B=[一B]
        条件 (&A+&B<10) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=11)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[十A]=#乱数(9)+1,[一A]=#乱数(10),[一B]=#乱数(9)+1
        &A=[一A],&B=[一B]
        条件 (&A>=&B) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=12)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[十A]=#乱数(9)+1,[一A]=#乱数(10),[一B]=#乱数(9)+1
        &A=[一A],&B=[一B]
        条件 (&A+&B>9) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=13)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[一A]=#乱数(9)+1,[一B]=#乱数(9)+1
        &A=[一A],&B=[一B]
        条件 (&A+&B>9) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=14)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[十A]=#乱数(9)+1,[一A]=#乱数(10),[一B]=#乱数(9)+1
        &A=[一A],&B=[一B]
        条件 (&A<&B) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=15)
      繰り返し (.not #終端行)
        行訂正 [演算]="+",[一A]=#乱数(10),[一B]=#乱数(10)
        &A=[一A],&B=[一B]
        条件 (&A+&B<10) ジャンプ 行番号=+1
      繰り返し終了
    ケース (&加減=16)
      繰り返し (.not #終端行)
        行訂正 [演算]="−",[一A]=#乱数(10),[一B]=#乱数(10)
        &A=[一A],&B=[一B]
        条件 (&A-&B>-1) ジャンプ 行番号=+1
      繰り返し終了
   ケース終了
   手続き実行 表初期化
  手続き終了

  ・・・・・・・・
  名札 加減問題準備     C
   絞り込み 単一化={[A],[B]}
   条件 (&加減<6) 検索条件登録 条件名="加減問題",{[A]>0,[B]>0}
   条件 (&加減>5 .and &加減<10) 検索条件登録 条件名="加減問題",{[A]>0,[B]>0,[A]>[B]}
   条件 (&加減<10) 絞り込み 条件名="加減問題"
   置換 [問題番号]=#連番,[区分]=&加減
  手続き終了
  ・・・・・・・・

【解説】
 @ 加減問題のメニューです。選んだ問題の種類を変数(&加減)に記憶させる。
 A 加減問題で使用する項目を初期化します。
 B 加減問題で使用する項目に乱数を入力します。
    各ケースにおいて問題の種類の条件に合わない場合は乱数を再入力します。
 C 加減問題準備
       初項と第二項が一致する場合も生じる。このためレコードの単一化絞り込みをおこなうことで
    同一問題の重複出題を避ける。
   
【参考】
  「作品案内」→「算数のけいこ」→から処理画面例がご覧になれます。

                      
END of FILE  戻る》 《玄関へ