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

第5日 使う変数をあらかじめ宣言しておく

rss




 昨日の最後の発展5は、次のどちらかの考えでできますね。
(1)2桁の$1と1桁の$2を決めて$2-$1が1桁になるようにする。
(2)1桁の$1$2を決めて、$1$2が2桁になるようにする。


どちらにしても、制約条件を次のように書かないといけないので苦手場人も多いでしょう。


(1)Rd(10,18);$1
Rd(1,9);$2:$1-$2<10
(2)Rd(1,9);$1$2:$1+$2>=10


そういう人のために簡単な方法も紹介します・
制約条件を次のように書いてもよいのです。

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


最初に$3は1から9までの整数にしたいと宣言しておけばよいのです。
このようにすれば制約条件は簡単になりますね。これまでの問題も、もっと簡単に作れたかもしれません。


ところで、変数は$1$2も使うので、次のように宣言したくなりませんか。


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


もちろん、それでもよいのですが、最初に使う変数を宣言した場合は、次のように書けばよいのです。

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


コンピュータは$1$2の値の範囲が分かっていますから「Rd(0,0);$1$2」で、それぞれの範囲内で数字を探してくれます。






今日はこれまでの復習もかねてたくさんの発展問題を作ってみましょう。

 
【本日のまとめ】
◎最初に変数の範囲を決めてもよい。
$3; d: 1, 9 ・・・$3は1から9までの整数であることを決めておく。
Rd(0,0);$1$2 ・・・最初に$1$2の範囲を宣言しておけば、その範囲での数字を探してくれる。


次の発展問題を作ってみましょう。問題によっては2通りの考え方をしてみましょう。

 
(発展1) 1桁+1桁で繰り上がりのある問題を作ってみましょう。
(発展2) 2桁-1桁でくり下がりのあるひき算を作ってみましょう。
(発展3) 3桁と2桁の数字を決めて、たし算とひき算の問題の組を作ってみましょう。
(発展4) 3桁÷2桁のわり算で商と余りを求める問題作ってみましょう。
(発展5) 4桁÷2桁のわり算で割り切れる問題を作ってみましょう。
(発展6)  2桁の連続する2つの数の積を求める問題を作ってみましょう。
(発展7) 3桁の連続する3つの数の和を求める問題を作ってみましょう。