ここでは,次の例題に関するプログラムの例を示します. このプログラムでは,配列と繰り返しを利用していません. このプログラムは,あくまでも参考のためのもので,実際にはこのようなプログラムは書きません.
ある金額(円)を硬貨(1円,5円,10円,50円,100円,500円)でおつりがないように支払うとき,
何円玉を何枚出せばよいかを調べる.
プログラム
例題のプログラムの仕様に書いてある通りに,愚直に処理を行っています. じつは仕様自体,配列と繰り返しのありがたみを強調するために,わざと繰り返しの部分を一つ一つ書き下しています.
1 =begin
2
3 coins_noarray.rb:
4 ある金額(円)を硬貨(1円,5円,10円,50円,100円,500円)でおつりが
5 ないように支払うとき,できるだけ少ない枚数で支払うには何円玉を
6 何枚出せばよいかを調べる.
7
8 =end
9
10
11 # 支払う金額を取得する
12 print "おつりがないように硬貨で支払いを行います\n"
13 print "支払う金額(円)を入力して下さい: "
14 amount = gets.to_i
15
16 # 金額が0円以下の場合は,エラーメッセージを表示して終了する
17 if(amount <= 0)
18 print "1円以上を指定して下さい\n"
19 exit # プログラムを終了させる
20 end
21
22 ### 各硬貨の支払い枚数の計算と結果の表示
23 print amount,"円は,"
24 rest = amount
25
26 # 500円の支払い枚数の計算と表示
27 if rest >= 500
28 n = rest/500
29 print "500円",n,"枚 "
30 rest = rest - n*500
31 end
32
33 # 100円の支払い枚数の計算と表示
34 if rest >= 100
35 n = rest/100
36 print "100円",n,"枚 "
37 rest = rest - n*100
38 end
39
40 # 50円の支払い枚数の計算と表示
41 if rest >= 50
42 n = rest/50
43 print "50円",n,"枚 "
44 rest = rest - n*50
45 end
46
47 # 10円の支払い枚数の計算と表示
48 if rest >= 10
49 n = rest/10
50 print "10円",n,"枚 "
51 rest = rest - n*10
52 end
53
54 # 5円の支払い枚数の計算と表示
55 if rest >= 5
56 n = rest/5
57 print "5円",n,"枚 "
58 rest = rest - n*5
59 end
60
61 # 1円の支払い枚数の計算と表示(残額そのもの)
62 print "1円",rest,"枚 "
63
64 print "で支払えます\n"
65