第4回繰り返しは引っ張りだそう レポート課題 氏名:小山田晃平 学籍番号:c1110393 語学クラス:英語5 コース:マネジメント 1.筆記問題 A. 「制作中の映画とかけて、人に嘘をつくことと解く」 「その心は?」 「どちらも後で公開(後悔)します」 B. 1.あるCDとDVDの価格を調べた。CDは1600円で、DVDは4000円だった。 CDを3枚、DVDを2枚買う場合は 1600 * 3 + 4000 * 2 =12800 となる CDを4枚、DVDを3枚買う場合は 1600 * 4 + 4000 * 3 =18400 となる 2.液晶テレビとBDレコーダーの価格を調べた。液晶テレビは100000円で、BDレコー ダーは40000円だった。 テレビを1台レコーダーを2台買う場合は 100000 * 1 + 40000 *2 =180000 となる テレビを3台レコーダーを5台買う場合は 100000 * 3 + 40000 * 5 =500000 となる 2.プログラム問題 A. 考えた設定 CDを1枚1600円、DVDを1枚4000円として、それぞれの購入枚数を入力させて合計 金額を表示するプログラムとした プログラム #!/usr/koeki/bin/ruby #coding: euc-jp def sum(x, y) 1600 * x + 4000 * y end print("CDは1枚1600円、DVDは1枚4000円です。\n") STDERR.print("CDを何枚買いますか?: ") cd = gets.to_i STDERR.print("DVDを何枚買いますか?: ") dvd = gets.to_i printf("CDを%d枚、DVDを%d枚買いました。\n", cd , dvd) printf("合計金額は%d[円]です。\n", sum(cd,dvd)) 変更点 変数、数値などを変更した 実行結果 a. pan{c111039}% ./def_twoparam.rb [~/Ruby] CDは1枚1600円、DVDは1枚4000円です。 CDを何枚買いますか?: 2 DVDを何枚買いますか?: 4 CDを2枚、DVDを4枚買いました。 合計金額は19200[円]です。 b. pan{c111039}% ./def_twoparam.rb [~/Ruby] CDは1枚1600円、DVDは1枚4000円です。 CDを何枚買いますか?: 0 DVDを何枚買いますか?: 2 CDを0枚、DVDを2枚買いました。 合計金額は8000[円]です。 c. pan{c111039}% ./def_twoparam.rb [~/Ruby] CDは1枚1600円、DVDは1枚4000円です。 CDを何枚買いますか?: 9 DVDを何枚買いますか?: 11 CDを9枚、DVDを11枚買いました。 合計金額は58400[円]です。 考察 a. 1600*2+4000*4 =19200 b. 1600*0+4000*2 =8000 c.1600*9+4000*11 =58400 入力した数値を間違えなく表示出来ている 合計金額の計算を間違えなく出来ている 以上のことからプログラムは正しいといえる B. 考えた設定 あらかじめ予算を設定した上で、CDの購入枚数をきき、予算内でDVDが何枚買え るかということを計算するプログラムにした プログラム #!/usr/koeki/bin/ruby #coding: euc-jp def sum(x) (20000 - 1600 * x) / 4000 # 予算内で買えるDVDの枚数を計算 end print("予算は20000円です。CDを購入する枚数を入力すると、残りの予算で購入できるDVDの枚数を表示します。\n") STDERR.print("CDを何枚買いますか?(購入できるのは最大で12枚です。): ") # CDの購入枚数をきく cd = gets.to_i # 入力されたものをcdにいれる。整数にしたいので、.to_iにする printf("DVDは%d枚買えます。\n", sum(cd)) # 購入できるDVDの枚数を表示 変更点 Aのプログラムを元にした 計算式などを変更した 実行結果 a. pan{c111039}% ./def_budget.rb [~/Ruby] 予算は20000円です。CDを購入する枚数を入力すると、残りの予算で購入できるDVDの枚数を表示します。 CDを何枚買いますか?: 0 DVDは5枚買えます。 b. pan{c111039}% ./def_budget.rb [~/Ruby] 予算は20000円です。CDを購入する枚数を入力すると、残りの予算で購入できるDVDの枚数を表示します。 CDを何枚買いますか?: 4 DVDは3枚買えます。 c. pan{c111039}% ./def_budget.rb [~/Ruby] 予算は20000円です。CDを購入する枚数を入力すると、残りの予算で購入できるDVDの枚数を表示します。 CDを何枚買いますか?: 8 DVDは1枚買えます。 考察 a. 1600*0 =0 20000/4000 =5 よって5枚 b. 1600*4 =6400 20000-6400 =13600 13600/4000 =3 あまり1600 よって3枚 c. 1600*8 =12800 20000-12800 =7200 7200/4000 =1 あまり3200 よって1枚 予算が事前に提示されている 入力された数値が表示されている 計算が間違えなく行なわれ、その結果が表示されている 購入できる枚数を整数で表示出来ている 以上のことからプログラムは正しいといえる C. 考えた設定 CDの購入枚数でDVDの購入できる枚数を計算し、購入できる合計枚数を表示して、 グラフも表示するプログラムにした プログラム #!/usr/koeki/bin/ruby #coding: euc-jp def sum(x) ((20000 - 1600 * x) / 4000) + x # CDとDVDの合計枚数を計算する end def barplot(x) print("-" * (sum(x) + 1) + "> CDとDVDの合計枚数" + "\n") # グラフのX軸を表示させる printf("*" * sum(x) + "\n") # CDとDVDの合計枚数を"*"の数で表示 end print("予算は20000円です。購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。\n") print("0 < CDの購入枚数 < 12\n") # CDは予算内で最高で12枚まで買える STDERR.print("CDを何枚買いますか?: ") # CDの購入枚数をきく cd = gets.to_i # 入力されたものをcdにいれる。整数にしたいので、.to_iにする printf("購入できるCDとDVDの合計枚数は%d枚です。\n", sum(cd)) # 購入できる合計枚数を表示 barplot(cd) # グラフを表示 変更点 Bのプログラムを元にした グラフを表示する部分を変更した 実行結果 a. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 0 購入できるCDとDVDの合計枚数は5枚です。 ------> CDとDVDの合計枚数 ***** b. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 1 購入できるCDとDVDの合計枚数は5枚です。 ------> CDとDVDの合計枚数 ***** c. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 2 購入できるCDとDVDの合計枚数は6枚です。 -------> CDとDVDの合計枚数 ****** d. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 3 購入できるCDとDVDの合計枚数は6枚です。 -------> CDとDVDの合計枚数 ****** e. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 4 購入できるCDとDVDの合計枚数は7枚です。 --------> CDとDVDの合計枚数 ******* f. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 5 購入できるCDとDVDの合計枚数は8枚です。 ---------> CDとDVDの合計枚数 ******** g. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 6 購入できるCDとDVDの合計枚数は8枚です。 ---------> CDとDVDの合計枚数 ******** h. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 7 購入できるCDとDVDの合計枚数は9枚です。 ----------> CDとDVDの合計枚数 ********* i. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 8 購入できるCDとDVDの合計枚数は9枚です。 ----------> CDとDVDの合計枚数 ********* j. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 9 購入できるCDとDVDの合計枚数は10枚です。 -----------> CDとDVDの合計枚数 ********** k. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 10 購入できるCDとDVDの合計枚数は11枚です。 ------------> CDとDVDの合計枚数 *********** l. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 11 購入できるCDとDVDの合計枚数は11枚です。 ------------> CDとDVDの合計枚数 *********** m. pan{c111039}% ./def_budget_bar.rb [~/Ruby] 購入するCDの枚数を入力すると、購入できるCDとDVDの合計枚数をグラフで表示します。 CDを何枚買いますか?: 12 購入できるCDとDVDの合計枚数は12枚です。 -------------> CDとDVDの合計枚数 ************ 考察 a. 1600*0 =0 20000-0 =20000 20000/4000 =5あまり 0+5 =5 よって5枚 b. 1600*1 =1600 20000-1600 =18400 18400/4000 =4あまり2400 1*4 =5 よって5枚 c. 1600*2 =3200 20000-3200 =16800 16800/4000 =4あまり800 2+4 =6 よって6枚 d. 1600*3 =4800 20000-4800 =15200 15200/4000 =3あまり3200 3+3 =6 よって6枚 e. 1600*4 =6400 20000-6400 =13600 13600/4000 =3あまり1600 4+3 =7 よって7枚 f. 1600*5 =8000 20000-8000 =12000 12000/4000 =3あまり0 5+3 =8 よって8枚 g. 1600*6 =9600 20000-9600 =10400 10400/4000 =2あまり2400 6+2 =8 よって8枚 h. 1600*7 =11200 20000-11200 =8800 8800/4000 =2あまり800 7+2 =9 よって9枚 i. 1600*8 =12800 20000-12800 =7200 7200/4000 =1あまり3200 8+1 =9 よって9枚 j. 1600*9 =14400 20000-14400 =5600 5600/4000 =1あまり1600 9+1 =10 よって10枚 k. 1600*10 =16000 20000-16000 =4000 4000/4000 =1あまり0 10+0 =10 よって10枚 l. 1600*11 =17600 20000-17600 =2400 2400/4000 =0あまり2400 11+0 =11 よって11枚 m. 1600*12 =19200 20000-19200 =800 800/4000 =0あまり800 12+0 =0 よって12枚 入力された数値が正しく計算されている 計算された数値の通りにグラフが表示されている X軸の長さが数値によって変化している 実行によって合計枚数が最も多くなる組み合わせは CDを12枚、DVDを0枚買ったときと分かる 3.感想 算数や数学と似ていると思った。 表計算ソフトも同じなのではないかと感じた 4.参考文献 第4回基礎プログラミング2(繰り返しは引っ張りだそう)「操作をまとめる」 西村まどか http://roy/~madoka/2012/r2/04/r2_04_07_theme_07_allinone.html