第4回 基礎プログラミング II レポート課題 氏名:遠藤裕貴 学籍番号:c1090294 語学クラス:中国語 コース(系):政策マネ 1.筆記問題 A 「嬉しい時の気持ちとかけて、豪華なドアととく」 「そのこころは?」 「とってもいい(とっても良い、取っ手もいい)」 B (1)加藤くんはお昼に何を食べるか考えていた。 おにぎりは1個100円、パンは1個120円、飲み物は1本110円である。 お腹が減っていたのでおにぎり3個とパン2個と飲み物5本買うことした。 100 * 3 + 120 * 2 + 110 * 5 = 1090 合計は1090円である。 bc -l で確認すると、 pan{c109029}% bc -l [~] 100*3+120*2+110*5 1090 quit pan{c109029}% [~] この結果より正しいといえる。 (2)ぺペロンチーノをつくる材料を買いにいくことにした。 にんにくは1個60円、パスタは1袋200円、ベーコンは1個100円である。 にんにくを2個、パスタを2袋、ベーコンを2個買うことにした。 60 * 2 + 200 * 2 + 100 * 2 = 720 合計は720円である。 bc -l で確認すると、 pan{c109029}% bc -l [~] 60*2+200*2+100*2 720 quit pan{c109029}% [~] この結果より正しいといえる。 2.プログラム問題 A ◯考えた設定 変数が2つ以上定義されており、def--end を用いた数値の計算を導くプログラム。 購入した材料を入力すると、それぞれの合計金額と、全ての合 計金額が出力されるようにした。 ◯作成したプログラム #!/usr/koeki/bin/ruby def garlic(x) 60 * x # にんにくの値段 * 個数 end def pasta(y) 200 * y # パスタの値段 * 個数 end def bacon(z) 100 * z # ベーコンの値段 * 個数 end STDERR.print("購入する個数を入力して下さい。\n") STDERR.print("にんにく(1個60円): \n") a = gets.chomp.to_i # to_i で整数表示にする STDERR.print("パスタ(1袋200円): \n") b = gets.chomp.to_i STDERR.print("ベーコン(1個100円): \n") c = gets.chomp.to_i STDERR.printf("\nにんにくの合計金額: %d 円\n",garlic(a)) STDERR.printf("パスタの合計金額: %d 円\n",pasta(b)) STDERR.printf("ベーコンの合計金額: %d 円\n",bacon(c)) printf("\n全ての合計金額は %d 円です。\n",garlic(a)+pasta(b)+bacon(c)) ◯変更点 授業で作成したプログラム def_function.rb をもとにし、変数を変更した。 ◯実行結果 pan{c109029}% ./def_twoparam.rb [~/Ruby] 購入する個数を入力して下さい。 にんにく(1個60円): 3 パスタ(1袋200円): 4 ベーコン(1個100円): 3 にんにくの合計金額: 180 円 パスタの合計金額: 800 円 ベーコンの合計金額: 300 円 全ての合計金額は 1280 円です。 pan{c109029}% [~/Ruby] ◯考察 pan{c109029}% bc -l [~/Ruby] 60*3 180 200*4 800 100*3 300 180+800+300 1280 quit pan{c109029}% [~/Ruby] 上記の計算より、正しいといえる。 B ◯考えた設定 変数のうちひとつを固定し、他の二つの入力した数と計算させて合計金額 を出力させるようにした。 ◯作成したプログラム #!/usr/koeki/bin/ruby def material(x,y) 200 * 2 + 60 * x + 100 * y # パスタを買った個数を2袋と固定する end STDERR.print("今日ペペロンチーノ作ろうよ。\n") sleep 2 STDERR.print("材料はある?\n") sleep 2 STDERR.print("昨日パスタは2袋買っておいたから足りると思うよ。他の材料だけだね。\n") sleep 2 STDERR.print("んぢゃあと必要なのはにんにくとベーコンかな。\n") sleep 2 STDERR.print("★にんにく1個 60円 、ベーコン1個100円☆\n\n") sleep 2 STDERR.print("にんにくは何個買う??\n\n") garlic = gets.chomp.to_i # to_i で整数表示にする STDERR.print("ベーコンは何個買う?? \n") bacon = gets.chomp.to_i # to_i で整数表示にする printf("\n合計金額は %d 円だね 。\n",material(garlic,bacon)) # method に定義された関数に x = garlic y = baconを代入する ◯変更点 Aで作ったプログラム def_twoparam.rb をもとにし、変数と計算式を変更し た。printの間にsleepを入力し表示に時間差をつけた。 ◯実行結果 pan{c109029}% ./def_oneparam_a.rb [~/Ruby] 今日ペペロンチーノ作ろうよ。 材料はある? 昨日パスタは2袋買っておいたから足りると思うよ。他の材料だけだね。 んぢゃあと必要なのはにんにくとベーコンかな。 ★にんにく1個 60円 、ベーコン1個100円☆ にんにくは何個買う?? 3 ベーコンは何個買う?? 4 合計金額は 980 円だね 。 pan{c109029}% [~/Ruby] ◯考察 pan{c109029}% bc -l [~/Ruby] 60*3 180 100*4 400 200*2 400 180+400+400 980 quit pan{c109029}% [~/Ruby] 確かめ算をしたところ上のような結果になったのでプログラムは正しいと言える。 ◯感想 プログラムB問題に関して、固定した変数の他に2つの変数について入力し合計3 つを計算させるようプログラムするのに苦労した。何度がやって実行してなった ので非常にうれしかった。 小学校などでやったのと同じだと思う。グラフは仕組みは同じだと思う。 ◯共同学習者 横山くん ◯参考文献 基礎プログラミング II 第4回 繰り返しは引っ張りだそう 「どんな関数がきて もだいじょうぶ」 http://roy/~madoka/2010/r2/04/04_03_theme_03_method.html 基礎プログラミング II 第4回 繰り返しは引っ張りだそう 「これを代入した答 はなあに」 http://roy/~madoka/2010/r2/04/04_04_theme_04_stderr.html 基礎プログラミング II 第4回 繰り返しは引っ張りだそう 「分かりやすいプロ グラムへ」 http://roy/~madoka/2010/r2/04/04_05_theme_05_print.html基礎プログラミン グ II 第4回 繰り返しは引っ張りだそう 「method を使ったプログラムの作り方 http://roy/~madoka/2010/r2/04/04_08_theme_08_comment.html プログラム本体を張り付けます