第4回 基礎プログラミング II レポート課題 氏名: xxxxxxxx 学籍番号:C10xxxx 語学クラス:英語1 コース(系):社会系 1.筆記問題 A.コロッケとかけまして、ベテランのものまね芸人とときます。そのこころは、どちら もとってもうまいでしょう。 B. 設問1 高島田薫る君(きみ)くんは1個50円の豆腐と1本210円の缶ビールを買って代金が いくらになるか調べた。 解答1 豆腐を3個と缶ビールを6本買った時の合計 50 * 3 + 210 * 6 = 1410 確かめ算 pan{c107194}% bc -l [~] 50*3+210*6 1410 quit 解答2 豆腐を5個と缶ビールを2本買った時の合計 50 * 5 + 210 * 2 = 670 確かめ算 pan{c107194}% bc -l [~] 50*5+210*2 670 quit 設問2 トンネルを抜けると雪国さんは1個600円の駅弁と1本150円のドリンクを買って代 金がいくらになるか調べた。 解答1 駅弁3個とドリンク2本買ったときの合計 600 * 3 + 150 * 2 = 2100 確かめ算 pan{c107194}% bc -l [~] 600 * 3 + 150 * 2 2100 quit 解答 駅弁2個とドリンク1本買ったときの合計 600 * 2 + 150 * 1 = 1350 確かめ算 pan{c107194}% bc -l [~] 600 * 2 + 150 * 1 1350 quit 2.プログラム問題 A.プログラム内容 #!/usr/koeki/bin/ruby def total(x,y) 600 * x + 150 * y end STDERR.print("駅弁の個数は?:") ekiben = gets.chomp.to_i STDERR.print("ドリンクの本数は?:") drink = gets.chomp.to_i printf("\n駅弁は%d個、ドリンクは%d本買えました。\n",ekiben,drink) printf("合計:%d円\n",total(ekiben,drink)) 実行結果 pan{c107194}% ./def_twoparam.rb [~/Ruby] 駅弁の個数は?:4 ドリンクの本数は?:8 駅弁は4個、ドリンクは8本買えました。 合計:3600円 pan{c107194}% ./def_twoparam.rb [~/Ruby] 駅弁の個数は?:3 ドリンクの本数は?:2 駅弁は3個、ドリンクは2本買えました。 合計:2100円 確かめ算 pan{c107194}% bc -l [~/Ruby] 600*4+150*8 3600 600*3+150*2 2100 quit B.プログラム内容 #!/usr/koeki/bin/ruby def total(x) y = 2 600 * x + 150 * y end STDERR.print("ドリンクは2本買うことにした。\n\n") STDERR.print("駅弁の個数は?:") ekiben = gets.chomp.to_i printf("\n駅弁は%d個、ドリンクは2本買えました。\n",ekiben) printf("合計:%d円\n",total(ekiben)) 実行結果 pan{c107194}% ./def_oneparam_a.rb [~/Ruby] ドリンクは2本買うことにした。 駅弁の個数は?:3 駅弁は3個、ドリンクは2本買えました。 合計:2100円 pan{c107194}% ./def_oneparam_a.rb [~/Ruby] ドリンクは2本買うことにした。 駅弁の個数は?:5 駅弁は5個、ドリンクは2本買えました。 合計:3300円 確かめ算 pan{c107194}% bc -l [~/Ruby] 600*3+300 2100 600*5+300 3300 quit C.プログラム内容 #!/usr/koeki/bin/ruby def graf(x,y) print("+") printf("--------------------------------------------") print("\n") for r in x..y barplot(r) end print("|\n") end def barplot(x) print("|") printf("■"*total2(x)) print("\n") end def total(y) x = 2 600 * x + 150 * y end def total2(y) x = 2 (600 * x + 150 * y)/100 end print("駅弁を3個買うことにした。\n") print("ドリンクの最低値と最高値を入力し、グラフにする。\n") STDERR.print("ドリンクを最低何個から買いたい?:") a = gets.chomp.to_i STDERR.print("ドリンクを最高何個まで買いたい?:") b = gets.chomp.to_i printf("合計の最低値:f(%d)=%d円\n",a,total(a)) printf("合計の最高値:f(%d)=%d円\n",b,total(b)) graf(a,b) 実行結果 pan{c107194}% ./def_oneparam_bar.rb [~/Ruby] 駅弁を3個買うことにした。 ドリンクの最低値と最高値を入力し、グラフにする。 ドリンクを最低何個から買いたい?:2 ドリンクを最高何個まで買いたい?:4 合計の最低値:f(2)=1500円 合計の最高値:f(4)=1800円 +-------------------------------------------- |■■■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■■■■ | pan{c107194}% ./def_oneparam_bar.rb [~/Ruby] 駅弁を3個買うことにした。 ドリンクの最低値と最高値を入力し、グラフにする。 ドリンクを最低何個から買いたい?:1 ドリンクを最高何個まで買いたい?:5 合計の最低値:f(1)=1350円 合計の最高値:f(5)=1950円 +-------------------------------------------- |■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■■■■ |■■■■■■■■■■■■■■■■■■■ | 確かめ算 pan{c107194}% bc -l [~/Ruby] 600*2+150*2 1500 600*2+150*4 1800 600*2+150*1 1350 600*2+150*5 1950 感想 おなじものです。 今日は今までの中では、かなりはやい流れで課題をこなせることができたと、 実際にとり組んでみて思った。まあ筆記問題に関しては、いつもより余計に ふざけている感じがあったなあなんていう気もしています。次回以降も授業は どうにかこらえながらも、課題レポートのときに当たっては、思い切ってスピー ドは速く、内容もそれなりのものをと考えています。 参考文献 基礎プログラミング II 第4回 繰り返しは引っ張りだそう 「描画ソフトの真似」 http://roy/~madoka/2010/r2/04/04_06_theme_06_graph.html