第4回 基礎プログラミング II レポート課題 氏名:花木剛志 学籍番号:c109126A 語学クラス:英語3 コース(系):地域共創コース 1-A. 「ガソリンとかけて、可愛いキャラクターと解く」 「その心は?」 「どちらも、もえる(燃える、萌える)ものです」 「周冨徳とかけて、プログラミングの課題と解く」 「その心は?」 「どちらも、こく(酷、コック)なんです」 1-B. (1)トマトとピーマンを買って、代金がいくらかかるか調べる。 トマトは一個80円、ピーマンは一個60円である。 トマトを4個、ピーマンを8個買ったときにかかった代金はいくらか。 80 * 4 + 60 * 8 = 800 合計金額は800円である。 [bc -lの結果] pan{c109126}% bc -l 80*4+60*8 800 となり、個の計算は正しい。 (2)灯油とガソリンを購入して、代金がいくらかかるか調べる。 灯油は1リットル当たり70円、ガソリンは130円である。 灯油を30リットル、ガソリンを22リットル購入したときにかかった代金はい くらか。 70 * 30 + 130 * 22 = 4960 [bc -lの結果] pan{c109126}% bc -l [~] 70*30+130*22 4960 となり、個の計算は正しい。 2、プログラム問題 問題A a)考えた設定 1-Bで考えた(1)の問題のプログラムを作った。 b)プログラム本体 #!/usr/koeki/bin/ruby def tomato(x) 80 * x # トマトの値段 * 個数 end def piman(y) 60 * y # ピーマンの値段 * 個数 end STDERR.print("購入する個数を入力して下さい。\n") STDERR.print("トマト (1個80円): \n") a = gets.chomp.to_i # to_i で整数表示にする STDERR.print("ピーマン (1個60円): \n") b = gets.chomp.to_i STDERR.printf("\nトマトの合計金額: %d 円\n",tomato(a)) STDERR.printf("ピーマンの合計金額: %d 円\n",piman(b)) printf("\n全ての合計金額は %d 円です。\n",tomato(a)+piman(b)) c)元にしたプログラムの変更 授業で作成したプログラム「def_fanction.rb」を参考に、関数を変更。また、 tomato,pimanという関数を定義した。 d)実行結果 pan{c109126}% ./def_twoparam.rb [~/Ruby] 購入する個数を入力して下さい。 トマト (1個80円): 6 ピーマン (1個60円): 9 トマトの合計金額: 480 円 ピーマンの合計金額: 540 円 全ての合計金額は 1020 円です。 e)考察 bc -lで確かめ算を行なった。 pan{c109126}% bc -l [~/Ruby] 80*6+60*9 1020 となり、プログラムの実行結果と一致した。 また、最後のprintf文で足算が出来ることも分かった。(先輩のプログラムを参 照) 問題B a)考えた設定 トマトを5個買ったと固定して、ピーマンをいくつ買うかを問い、合計金額を出 せるプログラムを作成した。 b)プログラム本体 #!/usr/koeki/bin/ruby def function(x) 80 * 5 + 60 * x end print("トマトは5個買いました。300円になります。\n") sleep 2 print("トマト5個とピーマンを買った合計金額を出します。\n") sleep 3 print("ピーマンは何個買いますか?\n") a = gets.to_i sleep 1 printf("合計金額は%d円です。\n", function(a)) c)もとにしたプログラムからの変更点 問題Aで作ったプログラムをもとに、トマトを5個買ったとして80*5で固定。ピー マンを60*xとして変数にした。 d)実行結果 トマトは5個買いました。300円になります。 トマト5個とピーマンを買った合計金額を出します。 ピーマンは何個買いますか? 9 合計金額は940円です。 e)考察 bc-lで確かめ算を行なった。 pan{c109126}% bc -l [~/Ruby] 80*5+60*9 940 となり、作成したプログラムの結果と一致した。 3、感想 今回のトマトとピーマンの問題は、連立方程式で表せる。また、グラフ自体は 数学で習ったものと変わらないので、共通すると思う。 表計算ソフトと今回作ったプログラムは、原理的には同じとは思う。しかし、表 計算ソフトは色分けがされてあったり、見映えにも工夫が施されているので、遥 かに複雑だと想像できる。 4、参考文献など 参考にしたwebページ: http://roy/~madoka/2009/r2/04/crt.html 共同製作者:小関文紀君、後藤輝久君