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

第7日  分数

rss


 今日は分数の問題を作ってみましょう。

 
問題名 (*) 問題7 分数
言語 (*) 日本語
問題文 (*) 次の計算をしましょう。
問題式 (*) $1+$2
解答式 (*) $1+$2=$3


 
@BUNBO_TYPE=
$1; b: 1, 8, 9
$2; b: 1, 8, 9
Rb1(0,0);$1$2
$1+$2=$3;b
生成可能問題数 (*) 10


 制約条件のところだけいつもと違いますね。

 
@BUNBO_TYPE=


 問題を作るときに分母を同じにしたい場合は、最初にこのように書きます。

 
$1; b: 1, 8, 9


変数の宣言ですが、整数は「d」、小数は「f」でしたが、分数は「b」になります。
次の3つの数字ですが、最初は分子の最小値、次が分子の最大値、最後が分母の最大値になります。

 
Rb1(0,0);$1$2


分数の乱数を発生します。最初に「@BUNBO_TYPE=1」と宣言した場合は「Rb1」になります。

 
$1+$2=$3;b


$1$2の和の答え$3を分数で表します。


このままでも問題は作れますが、8/5のような問題が出たり、答えも1/21/22/2のように表示される場合があります。それで次のように$1$2$3も1炉委小さいものを作ることにしましょう、

 
Rb1(0,0);$1$2 :$1<1,$2<1,$1+$2<1


なお、答えを帯分数で表示したい場合は「$1+$2=$3;bt」のようにします。

 
@BUNBO_TYPE=
$1; b: 1, 8, 9
$2; b: 1, 8, 9
Rb1(0,0);$1$2 :$1<1,$2<1,$1+$2>1
$1+$2=$3;bt







 
【本日のまとめ】
@BUNBO_TYPE=・・・分母を同じにしたい場合に最初に書く。
が選ばれる。
$1; b: 1, 8, 9 ・・・分数の変数の宣言。数字は分子の最小値、分子の最大値、分母の最大値の順。
Rb1(0,0);$1$2 ・・・分数の乱数。最初に@BUNBO_TYPE=1と宣言したのでRb1
$1+$2=$3;b・・・$1$2の和の答え$3を分数で表示
$1+$2=$3;bt・・$1$2の和の答え$3を帯分数で表示


時間があったら、次の発展問題を作ってみましょう。

 
(発展1) 分母が9までの同じ分母の真分数のひきざんを作ってみましょう。
(発展2)  1から分母が9までの真分数をひく問題を作ってみましょう。
(発展3)  仮分数を帯分数にする問題を作ってみましょう。