前回、提出したプログラムを修正しました。 前回のプログラムは、内容理解があまりできなかったので、新に自分でプログラ ムを作り直しました。 再度、新たなプログラムを貼り付け、計算をし、添付しました。 再評価、どうぞよろしくお願いします。 第4回 基礎プログラミング II レポート課題 氏名:青木 千紗 学籍番号:C1090012 語学クラス:中国語1 コース:地域共創コース 1 筆記問題 A ●「優しい人」 とかけまして 「久保田の欲しいもの」 とときます。 「広き心/広樹心」でしょう。 ●「サスペンス」 とかけまして 「横山広樹」 とときます。 「(船越)英一郎/(久保田)瑛一郎」がかかせません。 B ●久保田は、学食の夕飯定食と醤油ラーメンの代金がいくらかかるか調べた。 夕飯定食の値段は 「1食 550円」。醤油ラーメンの値段は 「1杯 350円」で ある。 ●久保田は、キムチが好きなので、川越達也イチオシキムチの値段とこうちゃ んの!幸せキムチの代金がいくらかかるか調べた。 川越達也のイチオシキムチの値段は 「248円(200g)」。こうちゃんの!幸せ キムチの値段は「480円(300g)」である。 2 プログラム問題 A プログラム(def_twoparam.rb) a 考えた設定 筆記問題を参考にして考え、学食の夕飯定食と醤油ラーメンを何人前頼むかを 入力させ、その合計金額を表すプログラムを作成した。 b 作成したプログラム #!/usr/koeki/bin/ruby def food(ramen,teisyoku) # ここから関数が始まる 550 * ramen + 350 * teisyoku end # defに対するend STDERR.print("醤油ラーメンを何人前食べますか?\n") # 文章を表示 a = gets.to_i # 入力された文字列を整数にする STDERR.print("夕飯定食を何人前食べますか?\n") # 文章を表示 b = gets.to_i # 入力された文字列を整数にする total = food(a,b) printf("合計金額は %d 円です。\n",total) # 文章を表示 c もとにしたプログラム def_function.rb を参考にしてプログラムを作成した。 d 実行結果 pan{c109001}% ./def_twoparam.rb [~/Ruby] 醤油ラーメンを何人前食べますか? 3 夕飯定食を何人前食べますか? 2 合計金額は 2350 円です。 e 考察 正しく計算ができているかbc -lで確かめ算をしてみた。 pan{c109001}% bc -l [~/Ruby] 550 * 3 1650 350 * 2 700 1650 + 700 2350 quit 醤油ラーメンの価格は550円で3食分、夕飯定食の価格は350円で2食分であり、合 計2350円であるので、確かめ算と実行結果が同じ値になったので、このプログラ ムは正しく実行されているといえる。 B プログラム(def_oneparam_a.rb) a 考えた設定 昼にラーメンを2人前食べ、夕飯に何人前食べるのかというように片方を固定 し、片方を入力させ計算するプログラムを作成した。 b 作成したプログラム #!/usr/koeki/bin/ruby def food(teisyoku) # ここから関数が始まる 550 * 2 + 350 * teisyoku end # defに対するend STDERR.print("お昼にラーメンを2人前食べました\n") # 文章を表示 STDERR.print("夕飯は夕飯定食何人前食べますか?\n") # 文章を表示 a = gets.to_i # 入力された文字列を整数にする printf("今日1日の食費の合計金額は %d 円です。\n", food(a)) # 文章を表示 c もとにしたプログラム def_function.rb を参考にしてプログラムを作成した。 d 実行結果 pan{c109001}% ./def_oneparam_a.rb [~/Ruby] お昼にラーメンを2人前食べました 夕飯は夕飯定食何人前食べますか? 4 今日1日の食費の合計金額は 2500 円です。 e 考察 正しく計算ができているかbc -lで確かめ算をしてみた。 pan{c109001}% bc -l [~/Ruby] 550 * 2 1100 350 * 4 1400 1100 + 1400 2500 quit 夕飯定食の価格は350円であり、それを2食分を食べたという固定がある。そして、 醤油ラーメンの価格は550円であり、それを2食分であったので、合計2550円でる。 よって、確かめ算と実行結果が同じ値になったので、このプログラムは正しく実 行されているといえる。 また、aのプログラムとbのプログラムは確かめ算と実行結果が同じになったので 正しく実行されていることがわかり、また、内容・価格設定は同じであるので同 じ数量で実行してみることにした。 醤油ラーメンはbのプログラムの固定である、2食分。 夕飯定食は4食分にしてみることにする。 (aのプログラム) pan{c109001}% ./def_twoparam.rb [~/Ruby] 醤油ラーメンを何人前食べますか? 2 夕飯定食を何人前食べますか? 4 合計金額は 2500 円です。 (bのプログラム) pan{c109001}% ./def_oneparam_a.rb [~/Ruby] お昼にラーメンを2人前食べました 夕飯は夕飯定食何人前食べますか? 4 今日1日の食費の合計金額は 2500 円です。 以上のように、どちらのプログラムも合計金額が2500円であるので、正しく実行 されていることがわかった。 3 感想 義務教育で学んだ算数や数学と今回のdefは同じ仕組みではないだろうか。関 数の式をつくって、代入するという点において同じだと思った。 また、グラフを作る場合も表計算と同じだと感じた。 4 参考文献 基礎プログラミング II 第4回 http://roy/~madoka/2010/r2/04/04_03_theme_03_method.html 「どんな関数がきてもだいじょうぶ」 http://roy/~madoka/2010/r2/04/04_04_theme_04_stderr.html 「これを代入した答はなあに」 http://roy/~madoka/2010/r2/04/04_05_theme_05_print.html 「分かりやすいプログラムへ」 著者:西村まどか 5 共同学習者 小松由里 横山広樹 6 添付