第4回 繰り返しは引っ張り出そう レポート課題 氏名:伊藤桜子 学籍番号:c1100265 語学クラス:英語6 コース:政策マネジメント 1、筆記問題 A 寿司屋の店員 とかけて 負けなしの試合 と解く その心は どちらもたいしょう(大将、大勝)です。 B (1) 私はパンと牛乳を買って代金がいくらになるか調べた。 パンの値段は1個160円、牛乳の値段は1個100円である。 パン3個 牛乳2個 160 * 3 + 100 * 2 = 680 bc -lで確かめた。 pan{c110026}% bc -l [~/Ruby] 160*3+100*2 680 680円 (2) 私はえんぴつと消しゴムを買って代金がいくらになるか調べた。 えんぴつの値段は1本60円、消しゴムは1個100円である。 えんぴつ6本 消しゴム2個 60 * 6 + 100 * 2 =560 bc -lで確かめた。 pan{ITO Sakurako}% bc -l [~/Ruby] 60*6+100*2 560 560円 2、プログラム問題 A ◯考えた設定 上記の(1)を使って、数値の計算を導くプログラム ◯プログラム #!/usr/koeki/bin/ruby $KCODE = 'e' def f(x,y) # fが関数、x,y が仮引数 160 * x + 100 * y end STDERR.print("買うパンの個数 = ") pan = gets.to_i STDERR.print("買う牛乳の個数 = ") milk = gets.to_i printf("パンを%d個、牛乳を%d個買うと合計は%d円になります。\n",pan, milk, f(pan,milk)) ◯もとにしたプログラムの変更点 授業で作ったdef_func.rbをもとにした。 数値が2つあるのでdef f(x,y)として計算式を作った。 パンの個数をpan、牛乳の個数をmilkとして合計をf(pan,milk)とした。 ◯実行結果 pan{c110026}% ./def_twoparam.rb [~/Ruby] 買うパンの個数 = 5 買う牛乳の個数 = 3 パンを5個、牛乳を3個買うと合計は1100円になります。 ◯考察 bc -lで計算が合っているか確認をしたところ pan{c110026}% bc -l [~/Ruby] 160*5+100*3 1100 となり、実行結果と同じだったのでこのプログラムは正しいといえる。 B ◯考えた設定 パンの個数を3個に固定して牛乳の個数を入力してもらい、合計額を求めるプロ グラム ◯プログラム #!/usr/koeki/bin/ruby $KCODE = 'e' def f(x,y) #fが関数、x,yが仮引数 160 * x + 100 * y end STDERR.print("パンを3個買います。牛乳は何個買いますか?\n") pan = 3 STDERR.print("買う牛乳の個数 = ") milk = gets.to_i printf("パンを%d個、牛乳を%d個買うと合計は%d円になります。\n",pan, milk, f(pan,milk)) ◯もとにしたプログラムの変更点 def_twoparam.rbをもとにした。 パンの個数は固定なので買う牛乳の個数を入力してもらい、その合計を 表示できるようにした。 ◯実行結果 pan{c110026}% ./def_oneparam_a.rb [~/Ruby] パンを3個買います。牛乳は何個買いますか? 買う牛乳の個数 = 12 パンを3個、牛乳を12個買うと合計は1680円になります。 ◯考察 bc -lで計算が合っているか確認したところ pan{c110026}% bc -l [~/Ruby] 160*3+100*12 1680 となり、実行結果と答えが一致しているのでこのプログラムは 正しいといえる。 3、感想 数学と同じ仕組みだと考える。一次関数の公式でf(x) = ax + bのとき プログラムでは def f(x) a * x + b end と表すので同じ仕組みだと考える。 一年生のとき、エクセルやカルクで表計算をした経験がある。 f(x) = sum(A1:C1)のように表せていたので似たような仕組みだと考える。 今回作ったプログラムでは2つの変数を使う関数も表示できるので便利な機能だ と思った。 今回、C問題にも取り組んだが、2本のグラフを表示させるプログラムを作りたい のに1本のグラフしか表示させることができなかった。あともう少しだと思った が、今後復習してグラフ機能を理解していきたいと思った。 4、参考文献 ◯西村先生の第4回授業ページ 3.どんな関数がきてもだいじょうぶ http://roy/~madoka/2011/r2/04/r2_04_03_theme_03_method.html ◯共同学習者 畠山貴衣 東北公益文科大学 公益学部 公益学科 2年 伊藤桜子 c110026@f.koeki-u.ac.jp