[CG実習 >  Rubyによるプログラミングの基礎 >  配列とイテレータ >  例題に関する参考プログラム(1)]

「配列とイテレータ」の例題に関する参考プログラム(1)

ここでは,次の例題に関するプログラムの例を示します. このプログラムでは,配列と繰り返しを利用していません. このプログラムは,あくまでも参考のためのもので,実際にはこのようなプログラムは書きません.

ある金額(円)を硬貨(1円,5円,10円,50円,100円,500円)でおつりがないように支払うとき, 何円玉を何枚出せばよいかを調べる.

プログラム

例題のプログラムの仕様に書いてある通りに, 愚直に処理を行っています. じつは仕様自体,配列と繰り返しのありがたみを強調するために, わざと繰り返しの部分を一つ一つ書き下しています.


 1  
 2  # 支払う金額を取得する
 3  print "おつりがないように硬貨で支払いを行います\n"
 4  print "支払う金額(円)を入力して下さい: "
 5  amount = gets.to_i
 6  
 7  # 金額が0円以下の場合は,エラーメッセージを表示して終了する
 8  if(amount <= 0)
 9    print "1円以上を指定して下さい\n"
10    exit # プログラムを終了させる
11  end
12  
13  ### 各硬貨の支払い枚数の計算と結果の表示
14  print amount,"円は,"
15  rest = amount
16  
17  # 500円の支払い枚数の計算と表示
18  if rest >= 500
19    n = rest/500        
20    print "500円",n,"枚 "
21    rest = rest - n*500
22  end
23  
24  # 100円の支払い枚数の計算と表示
25  if rest >= 100
26    n = rest/100
27    print "100円",n,"枚 "
28    rest = rest - n*100
29  end
30  
31  # 50円の支払い枚数の計算と表示
32  if rest >= 50
33    n = rest/50
34    print "50円",n,"枚 "
35    rest = rest - n*50
36  end
37  
38  # 10円の支払い枚数の計算と表示
39  if rest >= 10  
40    n = rest/10
41    print "10円",n,"枚 "
42    rest = rest - n*10
43  end
44  
45  # 5円の支払い枚数の計算と表示
46  if rest >= 5
47    n = rest/5
48    print "5円",n,"枚 "
49    rest = rest - n*5
50  end
51  
52  # 1円の支払い枚数の計算と表示(残額そのもの)
53  print "1円",rest,"枚 "
54    
55  print "で支払えます\n"
56  

[CG実習 >  Rubyによるプログラミングの基礎 >  配列とイテレータ >  例題に関する参考プログラム(1)]