第4回 基礎プログラミング II レポート課題 氏名:笹木郁哉 学籍番号:c1090791 語学クラス:英語1 コース(系):地域 1.A 「島田紳助とかけまして、」 「良く晴れた日の山頂と解く」 「その心は??」 「どちらもしかい「司会、視界」がいいでしょう。」 B(1) 食べ物を買って、いくらかかるかを調べた。 パンは一つ100円、おにぎりは一つ130円、カップラーメンは一つ180円である。 パン二つ、おにぎり四つ、カップラーメン二つ買う事にした。 100 * 2 + 130 * 4 + 180 * 2 = 1080 合計は1080円である。 確かめ算を行ない確認すると「bc -l」 pan{c109079}% bc -l [~] 100 * 2 200 130 * 4 520 180 * 2 360 200 + 520 + 360 1080 確かめ算を行なった結果、1080円となったので正しいと言える。 (2) イエローハットに買い物にいって、いくらかかるかを調べた。 芳香剤は498円、洗車用洗剤は798円、灰皿1390円である。 芳香剤は三つ、洗車用洗剤は一つ、灰皿を二つ買う事にした。 498 * 3 + 798 * 1 + 1390 * 2 = 5072 合計は5072円である。 確かめ算を行ない確認すると「bc -l」 pan{c109079}% bc -l [~] 498 * 3 1494 798 * 1 798 1390 * 2 2780 1494 + 798 + 2780 5072 確かめ算を行なった結果、5072円になったので正しいと言える。 2.A (a)考えた設定 購入する食べ物の個数を入力していくと、それぞれの合計金額と、 全ての合計金額が出力されるようにした。 (b)作成したプログラム #!/usr/koeki/bin/ruby def pan(x) 100 * x #パンの値段 * 個数 end def onigiri(y) 130 * y #おにぎりの値段 * 個数 end def ramen(z) 180 * z #カップラーメンの値段 * 個数 end STDERR.print("購入する個数を入力して下さい。\n") STDERR.print("パン(1個100円): \n") a = gets.chomp.to_i STDERR.print("おにぎり(一個130円): \n") b = gets.chomp.to_i STDERR.print("カップラーメン(一個180円): \n") c = gets.chomp.to_i STDERR.printf("\nパンの合計金額: %d 円\n", pan(a)) STDERR.printf("\nおにぎりの合計金額: %d 円\n", onigiri(b)) STDERR.printf("\nカップラーメンの合計金額: %d 円\n", ramen(c)) printf("\n全ての合計金額は%d円です。 \n", pan(a)+onigiri(b)+ramen(c)) (c)もとにしたプログラムからの変更点 授業で作成したプログラム def_function.rb を参考にし、 変数を変更していった。 (d)実行結果 pan{c109079}% ./def_twoparam.rb [~/Ruby] 購入する個数を入力して下さい。 パン(1個100円): 2 おにぎり(一個130円): 3 カップラーメン(一個180円): 1 パンの合計金額: 200 円 おにぎりの合計金額: 390 円 カップラーメンの合計金額: 180 円 全ての合計金額は770円です。 (e)考察 確かめ算を行なう「bc -l」 pan{c109079}% bc -l [~/Ruby] 100 * 2 200 130 * 3 390 180 * 1 180 200 + 390 + 180 770 このように確かめ算を行なった結果、合計金額が770円になったので このプログラムは正しいと言える事が分かった。 2.B (a)考えた設定 入力した数と計算させて合計金額を出力させるようにした。 (b)作成したプログラム #!/usr/koeki/bin/ruby def eat(k) 100 * 2 + 130 * k #購入するパンの個数を二つに固定する。 end STDERR.print("カップラーメンが品切れのため、2種類しかありません。 \n") STDERR.print("パンは一つ100円 \t おにぎりは一つ130円\n\n") sleep 3 STDERR.print("パンを二つ買いましょう。 \n") STDERR.print("おにぎりはいくつ買いますか?? \n") onigiri = gets.chomp.to_i #to_iで整数表示にする。 printf("\n合計金額は %d 円です。 \n", eat(onigiri)) # method に定義された関数に k = onogiri を代入する。 (c)もとにしたプログラムからの変更点 授業で作成したプログラム def_function.rb をもとにして 変数と計算式を変更していった。 (d)実行結果 pan{c109079}% ./def_oneparam_a.rb [~/Ruby] カップラーメンが品切れのため、2種類しかありません。 パンは一つ100円 おにぎりは一つ130円 パンを二つ買いましょう。 おにぎりはいくつ買いますか?? 3 合計金額は 590 円です。 (e)考察 確かめ算を行なう 「bc -l」 pan{c109079}% bc -l [~/Ruby] 100 * 2 200 130 * 3 390 200 + 390 590 このように確かめ算を行なった結果、合計金額が590円になったので このプログラムは正しいと言える事が分かった。 3.感想 義務教育で学んだ算数や数学との仕組みは同じではないだろうか。 なので、自分は算数や数学が嫌いではあったが、改めて重要だと 思った。以前、高校の情報の授業でエクセルを使った事が少々ある。 数値を入力していって合計を出す場合は自動的にしてくれる。 このような事から今回のプログラムと同じ仕組みと言えるのでは ないかと思った。 --------------------------------------------------------------- 今回は授業で習った事をしっかり活かして、いつもよりスムーズに 課題に取り組めた。以前に比べたらレポートの書き方もよくなっては いると思うので、良い評価を取れるように頑張りたいと思ったし、日頃 の授業にもしっかり取り組みたいと思った。 参考文献 西村 まどか 基礎プログラミングII 第4回 繰り返しは引っ張りだそう 「これを代入した答はなあに」 http://roy/~madoka/2010/r2/04/04_04_theme_04_stderr.html 「わかりやすいプログラムへ」 http://roy/~madoka/2010/r2/04/04_05_theme_05_print.html 協力してくれた先輩 大沼 拓海 さん 共同学習者 奥山 広大