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

​​​​​​第6日  小数

rss




 これまでは整数の問題だけでしたが、今日は小数の問題を作ってみましょう。



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

 
$1; f1: 01.1, 9.9
$2; f1: 0.1, 9.9
Rf1(0,0);$1$2
$1+$2=$3;f1
生成可能問題数 (*) 10


これまでと制約条件だけが変わっています。整数は「d」でしたが、小数は「f」になります。

 
$1; f1: 0.1, 9.9


小数の場合は、小数点以下の桁数まで指定しますので、小数点以下1桁(1/10 の位 )までの小数の場合は「f1」となります。小数点以下2桁(1/100 の位 )までの小数の場合は「f2」です。
次の「0.1, 9.9 」は整数の場合と同じように最小値、最大値になります。

 
Rf1(0,0);$1$2


乱数の場合もdの代わりにf1などと指定します。
Rf1(0.1,9.9);$1$2 でも同じことになります。

 
$1+$2=$3;f1


最後の答えまで必ずdf1に変えてください。
もし、最後の答えがdのままだったりすると「1.1 + 7.6 = 8 」のように小数点以下が切り捨てられた整数が答えになってしまいます。


なお、与えられた範囲内の乱数ではなくて、決まった小数の中から選びらいという場合は次のようにします。

 
Sf(0,2,0,4,0,6,0.8);$1


このようにすると 0,2,0,4,0,6,0.8のどれかが$1になります。
整数の場合に同じような使い方をしたい場合には、「Sd(2,4,6,8);$1」となります。

 
【本日のまとめ】
$1; f1: 0.1, 9.9 ・・・変数$1は小数点以下1桁までの小数として、最小値は0.1、最大値は9.9とする。
Rf1(0,0);$1$2・・・小数第1位までの乱数を変数$1$2のそれぞれの範囲内で作る。
$1+$2=$3;f1・・・$1$2の和の答え$3を小数第1位までの小数にする。
Sf(0,2,0,4,0,6,0.8);$1・・・0,2,0,4,0,6,0.8のどれかが小数の変数$1に入る。
Sd(2,4,6,8)・・・2,4,6,8のどれかが整数の変数$1に入る。


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

 
(発展1) 小数点以下1桁までの小数のひきざんを作ってみましょう。
(発展2) 1桁の整数から小数点以下1桁までの小数をひく問題を作ってみましょう。
(発展3) 小数点以下1桁までの小数に1桁の整数をかける問題を作ってみましょう。
(発展4) 小数点以下1桁までの小数のたしざんで答えが整数になる問題を作ってみましょう。
(発展5) 小数点以下1桁までの小数を1桁の整数でわって、商が小数点以下1桁でわれる問題を作ってみましょう。
(発展6) 1桁の整数を0.2または0.5でわる問題を作ってみましょう。