‖一括処理部品集6‖oturi.html 《戻る》 《玄関へ》
《 商品価格と支払い額を乱数を使って変えることでお釣りを求める問題を作る。 》
【内容】
「買い物学習」の「お釣りはいくら?」の問題を自動作成する。
買う品物は1〜3品が選べます。支払う金額は購入金額に応じて
自動入力しますが、手入力による変更も可能です。
【用例】
(一括処理の一部)
@名札 お釣り画面演習
&TBL1=#連結(&DAPA,"お釣り.TBL") /*
データ表
&TBL2=#連結(&DAPA,"商品表.TBL") /*
データ表
&WFM1=#連結(&DAPA,"お釣り01.WFM"),&SM=""
-----中略-------
手続き実行 品数メニュー A
-----中略-------
手続き実行 買い物初期化 B
手続き実行 支払い額入力 C
手続き実行 支払い問題準備 G
-----中略-------
フォーム形式編集
条件 (&SM=1) 手続き実行 成績発表
手続き終了
A名札 品数メニュー
メニュー2 &品数,&品数,(
7,41),#連結(&システム名,”買い物の品数を選んでください。”)\
,"1品だけ,2 品,3 品"
\
,"中止(メインメニューへ)"
条件 (&品数=4) 分岐 START
手続き終了
B名札 買い物初期化
置換 [問題番号]=#未定義,[区分]=#未定義,[所持金]=#未定義,[支払金]=#未定義
\
,[商品1]=#未定義,[単価1]=#未定義,[数量1]=#未定義
\
,[商品2]=#未定義,[単価2]=#未定義,[数量2]=#未定義
\
,[商品3]=#未定義,[単価3]=#未定義,[数量3]=#未定義,[解答]=#未定義
手続き終了
C名札 支払い額入力
繰り返し (.not #終端行)
編集表 &TBL2
手続き実行 商品名 D
編集表 &TBL1
ケース開始
ケース (&品数=1)
行訂正 [商品1]=&商品1,[単価1]=&単価1,[数量1]=#MOD(#乱数(10),2)+1
ケース (&品数=2)
行訂正 [商品1]=&商品1,[単価1]=&単価1,[数量1]=#MOD(#乱数(10),2)+1
\
,[商品2]=&商品2,[単価2]=&単価2,[数量2]=#MOD(#乱数(10),2)+1
ケース (&品数=3)
行訂正 [商品1]=&商品1,[単価1]=&単価1,[数量1]=#MOD(#乱数(10),2)+1
\
,[商品2]=&商品2,[単価2]=&単価2,[数量2]=#MOD(#乱数(10),2)+1
\
,[商品3]=&商品3,[単価3]=&単価3,[数量3]=#MOD(#乱数(10),2)+1
ケース終了
手続き実行 支払い額 E
ジャンプ 行番号=+1
繰り返し終了
手続き実行 表初期化
手続き終了
D名札 商品名
手続き実行 商品乱数順 F
&商品1="",&商品2="",&商品3="",&単価1="",&単価2="",&単価3=""
ケース開始
ケース (&品数=1)
&商品1=[商品名],&単価1=[単価]
ケース (&品数=2)
&商品1=[商品名],&単価1=[単価]
ジャンプ 行番号=+1
&商品2=[商品名],&単価2=[単価]
ケース (&品数=3)
&商品1=[商品名],&単価1=[単価]
ジャンプ 行番号=+1
&商品2=[商品名],&単価2=[単価]
ジャンプ 行番号=+1
&商品3=[商品名],&単価3=[単価]
ケース終了
手続き終了
E名札 支払い額
ケース開始
ケース ([税込み]=<50)
行訂正 [支払金]=#COND(#乱数(3)=0,50,#乱数(3)=1,100,1,100)
ケース ([税込み]>50 .and [税込み]=<100)
行訂正 [支払金]=#COND(#乱数(3)=0,100,#乱数(3)=1,500,1,100)
ケース ([税込み]>100 .and [税込み]=<200)
行訂正 [支払金]=200
ケース ([税込み]>200 .and [税込み]=<300)
行訂正 [支払金]=300
ケース ([税込み]>300 .and [税込み]=<400)
行訂正 [支払金]=400
ケース ([税込み]>400 .and [税込み]=<500)
行訂正 [支払金]=500
-----中略-------
ケース ([税込み]>800 .and [税込み]=<1000)
行訂正 [支払金]=1000
-----中略-------
ケース終了
手続き終了
F名札 商品乱数順
置換 [乱数処理]=#乱数(10000)
並べ替え {[乱数処理]昇順}
手続き終了
G名札 支払い問題準備
検索条件登録 条件名="支払い",{[支払金]>0,[税込み]>0,[支払金]>[税込み]}
絞り込み 条件名="支払い"
置換 [問題番号]=#連番
手続き終了
(イベント処理の一部)
*** 支払うお金の額表示
手続き定義開始 ボタン_64::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
&支払金=[支払金]
オブジェクト操作 @テキスト_59{ ソース
= &支払金 }
手続き定義終了
*** 支払うお金の額の変更表示
手続き定義開始 テキスト_59::マウス左クリック(長整数 ・・・)
キー入力 (16,41),プロンプト="
変更する支払金額を入力してください。",\
モード=半角,上書き=する,初期値=0,終了状態=&ESC,&支払金2
行訂正 [支払金]=&支払金2
&支払金=[支払金]
オブジェクト操作 @テキスト_59{ ソース
= &支払金 }
手続き定義終了
*** 買った品物の合計額の表示(税込み額)
手続き定義開始 ボタン_67::マウス左クリック(長整数 ・・・)
&税込み=[税込み]
オブジェクト操作 @テキスト_60{ ソース
= &税込み}
手続き定義終了
*** お釣り額の表示(支払い金額−税込み額)
手続き定義開始 ボタン_68::マウス左クリック(長整数 ・・・)
&お釣り=[お釣り]
オブジェクト操作 @テキスト_61{ ソース
= &お釣り}
手続き定義終了
*** 商品1の金額
手続き定義開始 テキスト_77::マウス左クリック(長整数 ・・・)
&LL=[番号]
ジャンプ 行番号=&LL
&単価1=[単価1],&単価2=[単価2],&単価3=[単価3]
&数量1=[数量1],&数量2=[数量2],&数量3=[数量3]
&金額1=&単価1*&数量1,&金額2=&単価2*&数量2,&金額3=&単価3*&数量3
オブジェクト操作 @テキスト_77{ ソース =
&金額1 }
手続き定義終了
【解説】
@ フォームを使ったお釣り問題(画面での演習:プロジェクターを利用して授業をおこなっている)
商品表には[商品名]、[単価]などのデータを蓄積している。
お釣り表は、乱数発生により、[商品名]、[単価]、[個数]、[支払金]を入力する表で、
問題表示の為のデータベースとなる。[お釣り]などは項目計算式で処理し、解答の正誤判定に
使う。
A 選択できる品数は3品までとしている。
B お釣り表を繰り返し使用しているので、使用毎に前歴を消去する。
C 乱数発生により選ばれた商品などがお釣り表に入力される。
同時に、項目計算式により購入金額合計が計算される。
D 購入商品は、商品表を乱数順に並べ替え、上行から指定品数のデータを使用する。
E 支払い金額は、購入金額合計(税込み)に応じて、用意している。
なお、フォームのテキストをクリックすれば、支払額の手入力ができる。(イベント処理による)
F 商品表の乱数並べ替え。
G ミス問題のチェック用の回路であった。Eのルーチンで不要となった。
【参考】



メインメニュー10)より


補足)・ 画面が表示された時は、商品名、単価、数量のデータだけを表示。金額小計、合計額は該当のテキスト(くぼみ)
を左クリックすれば、表示される。
・ 「店の人に払ったお金」ボタンを左クリックすれば、額が表示される。
その右のテキストで左クリックすれば、支払い額をキー入力するボックスが表示される。
・ 「クリア」ボタンを左クリックすれば、単価を除く全ての金額が消去される。
・ 左下の「千円札」ボタンを左クリックすれば、画像がビュアー表示される。
・ 右上の「P問題」ボタンなどを左クリックすれば、教材プリント(***.doc,***.pdfなど)が表示される。(下図)

END
of FILE 《戻る》 《玄関へ》