算数プログラマーになろう

第1日 たしざん

rss

 さっそく問題を作ってみましょう。


左のメニューの「問題を作る」をクリックしてください。
新しい問題を入力できる画面になります。


たくさんの項目がありますが、必ず入力しなければならない(*)の項目だけを次のように入力してください。
日本語は全角ですが、数字や文字、記号は半角で入力してください。

 
問題名 (*) 問題1 たしざん
言語 (*) 日本語
問題文 (*) 次の計算をしましょう。
問題式 (*) $1+$2
解答式 (*) $1+$2=$3
制約条件 (*)

 
Rd(1,5);$1$2
$1+$2=$3;d
生成可能問題数 (*) 10


言語 (*)は▼をクリックしてたくさん表示される言語の中から「日本語」を選びます。
生成可能問題数 (*)はすでに10が入力されていますので、そのまま使います。


入力に間違いがなければ、これで問題が作れるようになっています。


まず、「チェック」のボタンをクリックしてみましょう。


何も表示されなければ正しく入力されているので問題が作成できますが、次のようなメッセージが表示されたかもしれません。

 
制約条件の文法に誤りがあります (1行目の ':' あたり)

これは、制約条件の1行目が「Rd(1,5);$1$2」ではなく「Rd(1,5):1$2」と入力されていると思います。セミコロン(;)とコロン(:)という記号は間違えやすいので、これからも注意してください。


「チェック」で何も表示されなかったら「プレビュー」をクリックしてみましょう。


次のように問題が4問表示されたと思います。




問題生成のところで10を指定したので、本来は10問が作られるのですが、プレビューでは4問だけしか表示されないのです。


予定した問題が作られることを確認したら、「作成中保存」をクリックして問題を保存しましょう。


問題を保存したら「印刷リストに追加」をクリックして「PDFダウンロード」からPDFを印刷すれば問題用紙と解答用紙が印刷されます。


もう一度同じことを実行すると、今度は別の問題が印刷されたと思います。


MathPubでは、同じように問題を作成するプログラミングを行っても、実行するたびに別の問題が作られるのです。

ここで、MathPubでは、どのようにして問題が作成されるのか説明してみましょう。

 
問題式 (*) $1+$2


問題式には、10問作成した場合に、(1)(2)などの後に表示したいものを書きます。
ここでは「(1)5+1」のように表示させたいので「$1+$2」と書きました。
$1&2は「変数」と呼ばれるもので、コンピュータが毎回数値を決めるものです。
それ以外の文字は、そのまま印刷されます。


問題式は、次のように書いてもよいのです。

 
問題式 (*) $1+$2
問題式 (*) $1たす$2はいくつですか。
問題式 (*) りんごが$1個、みかんが$2個あります。あわせていくつでしょう。


解答式は問題用紙ではなく正解を印刷する用紙に表示するものを書きます。

 
解答式 (*) $1+$2=$3


答えを$3という変数に入れておくことができれば、上のように書くことで「(1)5+1=6」のように正解が表示されます。


次の制約条件が難しいかもしれないですね。

 
制約条件 (*)

 
Rd(1,5);$1$2
$1+$2=$3;d


詳しい説明は後ですることにして、ここでは呪文のように意味がわからなくてもそのまま真似をして使うようにしてください。
 ただ、少しは説明しないと似たような問題が作れませんから、ここで知っておきたい所だけ解説します。


Rd(1,5);$1$2 は1から5までの整数(つまり、1,2,3,4,5のどれか)を$1に入れて、また別の1から5までの整数を$2に入れるようなプログラムになっています。
$1$2は同じ値とは限りません。偶然同じ値になることはあるかもしれません。


Rd(0,5);$1
Rd(1,5);$2
上のように$1$2に入れる数字が違う場合は2行にわけて書いてください。






2行目の $1+$2=$3;d は、最初は見当がつくでしょう。
$1$2のたしざんの結果を$3に入れるプログラムになっています。
最後の「;d」については、このように書くものだと思って、そのまま真似をして書いてください。

 
【本日のまとめ】
$1,$2,$3・・・「変数」(コンピュータが計算した数字になって印刷される。)
問題式、解答式・・・変数以外は入力した文字がそのまま印刷される。
(制約条件)
Rd(1,5);$1$2・・・1,2,3,4,5のどれかの数を$1$2にそれぞれ入れる。
$1+$2=$3;d・・・$1$2を足した値を$3に入れる。 


時間があったら、次の発展問題を作ってみましょう。
作成する問題の数は限られていますので、発展問題は問題1の制約条件を変えるだけで同じ問題番号で保存してください。

 
(発展1)Rd(0,9);$1$2 と変えて0から9までのたしざんを作ってみましょう。
(発展2) Rd(10,99);$1$2と変えて2桁のたしざんを作ってみましょう。
(発展3) Rd(100,999);$1$2と変えて3桁のたしざんを作ってみましょう。
(発展4) 4桁のたしざんを作ってみましょう。
(発展5) 5桁+6桁のたしざんを作ってみましょう。