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

第2日 ひきざん

投稿日時:2021/10/08(金) 20:32

第2日目 ひきざん


 メニューの「問題を作る」で新しい問題を作っても良いですが、前と同じような問題になりますので、前回作成した問題を利用して新しい問題を作ってみましょう。


メニューの「問題を探す」をクリックすると公開された問題を検索できるようになりますが、この対象「公開」の部分を「自分(全て)」に変更して検索のボタンをクリックします。


これまでに作成した問題が表示されますので。問題名のところをクリックするとその問題を編集できるようになります。


ここで「この問題を手本にして問題を作る」をクリックします。


そうすると、右側と同じ内容が左に表示されますので、左の部分を直して新しい問題を作ります。



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

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


問題名を「問題2  ひきざん」に変えたのと「+」の3箇所を「-」に変えました。
なお、「+」や「-」は全角でも半角でも影響はありません。


正しく入力されていれば問題が印刷されるはずですが、問題を見て困ったことはありませんか。


もしかすると「(1)2-4」のような問題が印刷されているかもしれません。
中学生には計算できるのですが、小学生には難しいですね。


Rd(1,5);$1$2 で問題の数字を決めるときに、いつも$1$2より大きくしたいですね。
そういう場合は、次のように書けばよいのです。

 
Rd(1,5);$1$2:$1>$2


Rd(1,5);$1$2 の後にコロン(:)をつけて$1$2の条件を書くことができるのです。
$1$2よりも大きくしたいので、Rd(1,5);$1$2:$1>$2 と書けば小学生にも安心して計算できるひきざんの問題が作れます。


Rd(1,5);$1$2:$2<$1 でもよいですね。


$1$2以上にしたい場合もあるでしょう。そのときは、 Rd(1,5);$1$2:$1>=$2 と書きます。
$2$1以下にするならば、Rd(1,5);$1$2:$2<=$1 となります。


$1$2を同じ値にしたくない場合は次のように書きます。難しいかな。
Rd(1,5);$1$2:$1!=$2


同じ値にしたい場合はどうするかですが、実際は$2を使わず$1だけにすればよいわけですが、同じ値にしたいときは Rd(1,5);$1$2:$1==$2 のように=を2つ書くのです。


条件式を2つ以上並べたいときはカンマ(,)で区切ります。


Rd(1,5);$1$2$3:$1>$2,$2>$3


このようにすすると、どのような結果になるかわかりますね。


なお、$1と$2の計算結果を指定するころもできます。

 
Rd(10,18);$1
Rd(1,9);$2:$1-$2<10
$1-$2=$3;d


上の場合は、2桁ー1桁のひきざんで、答えを1桁にしたいという場合の例です。
$1が19以上だと1桁を引いても2桁以上ですから、18までにしておきました。
1桁の$2を決めるときに$1-$2を計算して10より小さいものだけを選ぶようにしています。

 
【本日のまとめ】
Rd(1,5);$1$2:$1>$2・・・$1$2より大きいものだけが選ばれる。
Rd(1,5);$1$2$3:$1>$2,$2>$3・・・$1,$2,$3の順に大きいものだけが選ばれる。
$1$2の条件は次のように書きます。
$1==$2・・・$1は$2と等しい
$1!=$2・・・$1は$2に等しくない
$1>$2・・・$1は$2より大きい
$1>=$2・・・$1は$2以上(大きいか等しい)
$1<$2・・・$1は$2より小さい
$1<=$2・・・$1は$2以下(小さいか等しい)


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



 
(発展1)Rd(10,99);$1$2:$1>$2 と変えて2けたのひきざんを作ってみましょう。
(発展2) Rd(100,999);$1$2:$1>$2と変えて3桁のひきざんを作ってみましょう。
(発展3) 3桁ー1桁のひきざんを作ってみましょう。
(発展4) 3桁ー2桁のひきざんを作ってみましょう。
(発展5) 3桁ー2桁のひきざんで答えが1桁になるものだけを作ってみましょう。

 

第1日 たしざん

投稿日時:2021/10/06(水) 20:29

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


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


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

 
問題名 (*) 問題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桁のたしざんを作ってみましょう。






 

 小学生でもプログラマーになれます。

投稿日時:2021/10/05(火) 18:15

世の中のほとんどの分野でコンピュータが利用されています。

コンピュータは自分で勝手に動いているのではなく、人間が作った「プログラム」によって動いています。

コンピュータが将棋や囲碁で人間に勝つなど人口知能という言葉が話題になっていますが、それもコンピュータが自分で判断しているわけではないです。

 小学生でもプログラマーになれます。算数の問題ォ作りながらプログラマーを目指しましょう。