一括処理部品集6‖kuuranti.html                            《戻る》 《玄関へ
 《 空欄を埋めさせる問題をl作る。 》

【内容】
  「空欄のところの数値は?」の数値列(虫食い)問題を自動作成する。
  問題は1行が10マス、5行までとし、1行の虫食い箇所の最大値を指定できる。

【用例】
  ・・・・・・・・・
  名札 空欄値は
    &TBL1=#連結(&DAPA,"空欄値.TBL")   /* データ表
    &TBL2=#連結(&DAPA,"空欄値条件設定.TBL")   /* データ表
    &WFM2=#連結(&DAPA,"空欄値条件設定01CB.WFM")
    &WFM1=#連結(&DAPA,"空欄値01CB.WFM")
  ・・・・・・・・・
   表
   表 &TBL2 表番号=2,使用フォーム=&WFM2  @
      フォーム形式編集 ガイド="キャンセル:ESC 終了:f・4(表示)/Q フォーム⇔表:HOME ",画面消去=しない
      条件 (&SM=1) 分岐 START
      &マス行数=[マス行数],&先頭値=[先頭値],&変化分=[変化分],&虫くい数=[虫くい数]  A
   表
   表 &TBL1 表番号=1,使用フォーム=&WFM1  B
   手続き実行 空欄値初期化
   手続き実行 表初期化
   手続き実行 空欄値入力              C
   手続き実行 虫くい発生               D
      フォーム形式編集 ガイド="キャンセル:ESC 終了:f・4(表示)/Q フォーム⇔表:HOME ",画面消去=しない E
  ・・・・・・・・・

  名札 空欄値初期化
    置換 [空欄値]="",[空欄値B]=""
  手続き終了

  名札 空欄値入力                 C
    &LN=&マス行数*10
    絞り込み 行数=&LN
    置換 [空欄値]=&先頭値+(#連番-1)*&変化分,[空欄値B]=&先頭値+(#連番-1)*&変化分
       位置指定 行番号=先頭
    繰り返し &N=1,&LN
      &YOKO[&N]=[空欄値],&YOKOB[&N]=[空欄値B]
      ジャンプ 行番号=次行
    繰り返し終了
  手続き終了

  名札 虫くい発生                  D
    繰り返し &N=1,&虫くい数
     &虫1=#乱数(10)+1,&YOKO[&虫1]=""
     &虫1=#乱数(10)+11,&YOKO[&虫1]=""
     &虫1=#乱数(10)+21,&YOKO[&虫1]=""
     &虫1=#乱数(10)+31,&YOKO[&虫1]=""
     &虫1=#乱数(10)+41,&YOKO[&虫1]=""
    繰り返し終了
  手続き終了
  ・・・・・・・・・

【解説】
 @ 出題の行数、先頭値、増・減分、虫食い数などの条件を設定します。
    
 A 条件値を変数に取り込みます。
   
 BC 条件に見合うデータを作成します。
      さらに、データを配列変数に取り込みます。
   
 D 虫食いを乱数発生させ、配列変数の値を変更(未定義に)します。
   虫食いの最大数は条件設定値です。フォームの各行に虫食いを作成しておきます。
 E フォームを使って問題を表示します。表示されている数値は配列変数(&YOKO[ ])からのものです。
   
   正解を表示するには空欄の枠内をクリックします。この場合に表示される数値は配列変数(&YOKOB[ ])からのものです。(イベントファイル参照)
   再度空欄にしたい場合は空欄枠直上の番号(ラベル)をクリックします。なお、行単位でクリアすることもできます。
   

  出題した問題を直ちに印刷することもできます。
   

                      
END of FILE  戻る 玄関へ