第 4 回 繰り返しは引っ張りだそう レポート課題 氏名:兵藤 理沙 学籍番号:c1101721 語学クラス:英語 6 コース(系):政策マネジメント 1.筆記問題 A. 「秋の山とかけまして睡眠不足とときます。」 「その心は?」 「熊(クマ)が出ます。」 「ペットとかけましてペットボトルとときます。」 「その心は?」 「要らなくなってもポイ捨ては禁止です。」 B. 佐藤は鉛筆と消しゴムを買って代金がいくらかかるか調べた。 鉛筆一本は60円、消しゴム一個は100円である。 鉛筆3本と消しゴム2個の代金。 60 * 3 + 100 * 2 = 380 pan{HYODO Risa}% bc -l [~] 60*3+100*2 380 鉛筆12本と消しゴム6個の代金。 60 * 12 + 100 * 6 = 1320 pan{c110172}% bc -l [~] 60*12+100*6 1320 斎藤は缶ジュースとおにぎりを買って代金がいくらかかるか調べた。 缶ジュースは一本120円、おにぎりはひとつ100円である。 缶ジュース11本とおにぎり10個の代金。 120 * 11 + 100 * 10 = 2320 pan{c110172}% bc -l [~] 120*11+100*10 2320 缶ジュース50本とおにぎり25個の代金。 120 * 50 + 100 * 25 =8500 pan{c110172}% bc -l [~] 120*50+100*25 8500 2.プログラム問題 A. i.考えた設定 ennpitu,keshigomuを鉛筆の本数、消しゴムの個数とし、買った合計を f(ennpitu,keshigomu)として呼び出すプログラムを作成した。 ii.作成したプログラム def_twoparam.rb #!/usr/koeki/bin/ruby def f(x,y) # xを鉛筆の本数、 yを消しゴムの個数と定義する 60 * x + 100 * y end STDERR.print("鉛筆は何本買いますか?") ennpitu = gets.to_i # キーボードから入力された文字列をgets # 整数にする to_i STDERR.print("消しゴムを何個買いますか?") keshigomu = gets.to_i printf("鉛筆%d本、消しゴム%d個。\n",ennpitu, keshigomu) # キーボードから入力された整数を表示する printf("合計は%d円です。\n",f(ennpitu,keshigomu)) # 定義された関数に x = ennpitu、 y = keshigomuを代入 iii.もとにしたプログラムからの変更点 def_func.rbを参考にして作成しました。 iv.プログラムを実行した結果画面 鉛筆を3本、消しゴムを2個の場合 pan{HYODO Risa}% ./def_twoparam.rb [~/Ruby] 鉛筆は何本買いますか?3 消しゴムを何個買いますか?2 鉛筆3本、消しゴム2個。 合計は380円です。 鉛筆を50本、消しゴムを25個の場合 pan{c110172}% ./def_twoparam.rb [~/Ruby] 鉛筆は何本買いますか?50 消しゴムを何個買いますか?25 鉛筆50本、消しゴム25個。 合計は5500円です。 v.導き出された結果の考察 bc -lで確かめ算をした。 鉛筆を3本、消しゴムを2個の場合。 pan{c110172}% bc -l [~/Ruby] 60 * 3 + 100 *2 380 鉛筆の値段は60円で本数は3本、消しゴムの値段は100円で個数は2個で 合計は380円になる。実行結果と確かめ算は同じ値になったので正しくプログラ ムは実行されている。 鉛筆を50本、消しゴムを25個の場合。 pan{c110172}% bc -l [~/Ruby] 60 * 50 + 100 * 25 5500 鉛筆の値段は60円で本数は50本、消しゴムの値段は100円で個数は25個で 合計は5500円になる。実行結果と確かめ算は同じ値になったので正しくプログラ ムは実行されている。 B. i.考えた設定 ennpituで鉛筆の本数を固定し、keshigomuを消しゴムの個数として買った合計を f(keshigomu)として呼び出すプログラムを作成した。 ii.作成したプログラム def_oneparam_a.rb #!/usr/koeki/bin/ruby def f(y) #鉛筆の本数は固定し、yを消しゴムの個数と定義する 60 * 3 + 100 * y end STDERR.print("鉛筆は3本買います\n") STDERR.print("消しゴムを何個買いますか?") # キーボードから入力された文字列をgets keshigomu = gets.to_i # 整数にするto_i printf("鉛筆3本、消しゴム%d個。\n", keshigomu) printf("合計は%d円です。\n",f(keshigomu)) iii.もとにしたプログラムからの変更点 def_twoparam.rbをもとに鉛筆の本数を固定し作成しました。 iv.プログラムを実行した結果画面 鉛筆を3本で固定し、消しゴムを2個買った場合。 pan{c110172}% ./def_oneparam_a.rb [~/Ruby] 鉛筆は3本買います 消しゴムを何個買いますか?2 鉛筆3本、消しゴム2個。 合計は380円です。 鉛筆を3本で固定し、消しゴムを7個買った場合。 pan{c110172}% ./def_oneparam_a.rb [~/Ruby] 鉛筆は3本買います 消しゴムを何個買いますか?7 鉛筆3本、消しゴム7個。 合計は880円です。 v.導き出された結果の考察 bc -l で確かめ算をした。 鉛筆3本で固定し、消しゴムを2個買った場合。 pan{c110172}% bc -l [~/Ruby] 60 * 3 + 100 * 2 380 鉛筆の値段は60円で本数は3本、消しゴムの値段は100円で個数は2個で 合計は380円になる。実行結果と確かめ算は同じ値になったので正しくプログラ ムは実行されている。 pan{c110172}% bc -l [~/Ruby] 60 * 3 + 100 * 7 880 鉛筆の値段は60円で本数は3本、消しゴムの値段は100円で個数は7個で 合計は880円になる。実行結果と確かめ算は同じ値になったので正しくプログラ ムは実行されている。 3.感想 60 * x + 100 * y の式にxやyに数字を代入し、計算する方法は義務教育で学んだこ とと同じしくみだった。 4.参考文献 http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/04/ 西村まどか 基礎プログラミングII 第 4 回 「繰り返しは引っ張りだそう」 http://roy.e.koeki-u.ac.jp/~madoka/2011/rpt/report.html 西村まどか 基礎プログラミングII 第 1 回 「前期の復習」 プログラミングのレポートに必要な項目 協力してくれた先輩:青木 千紗さん