第 4 回 繰り返しは引っ張りだそう レポート課題 氏名:薮田 大樹 学籍番号:C1101916 語学クラス:中国語3 コース(系):地域共創コース 1、筆記問題 A: 選挙に必要なものとかけまして 山登りに必要なものと解きます、その心は どちらも「賛同 = 山道」が必要です。 B: 例1 一郎は、サッカーを見に行くためにチケットを買いに行った。 S席が大人一枚、5000円。子ども一枚2500円である。 (計算式) 大人一枚、子ども二枚買った場合。 5000 * 1 + 2500 * 2 = 10000 (確認) pan{YABUTA Taiki}% bc -l [~] 5000*1+2500*2 10000 (計算式) 大人二十枚、子ども百枚買った場合。 5000 * 20 + 2500 * 100 = 350000 (確認) pan{c110191}% bc -l [~] 5000*20+2500*100 350000 例2 たかしは一台150万の車3台と、5万のカーナビを3個買った。 代金はいくらになるか調べろ。 1500000 * 3 + 50000 * 3 = 4650000 (確認) pan{c110191}% bc -l [~] 1500000*3+50000*3 4650000 2、プログラム問題 A、筆記問題で使った例を使用 大人チケット一枚5000円、子どもチケット一枚2500円のものを 何枚買うか入力させ、合計を出すようにした。 #!/usr/koeki/bin/ruby #筆記問題で使った例を使用。 def total(x,y) # ここではtotalという関数を定義する。x,yは仮の引数(ひきすう) 5000 * x + 2500 * y #大人チケット一枚5000円、子どもチケット一枚2500円。 end STDERR.print("大人チケットは何枚買いますか?:") adults = gets.chomp.to_i #入力されたものを数値として受け取る STDERR.print("子どもチケットは何枚買いますか?:") kids = gets.chomp.to_i printf("大人チケットは%d枚、子どもチケットは%d枚購入します。\n",adults,kids) printf("合計:%d円になります。ありがとうございました!\n",total(adults,kids)) #最後に、初めに定義した関数totalの結果を表示させる。 (実行結果) pan{c110191}% ./def_twoparam.rb ~/Ruby] 大人チケットは何枚買いますか?:5 子どもチケットは何枚買いますか?:5 大人チケットは5枚、子どもチケットは5枚購入します。 合計:37500円になります。ありがとうございました! (計算の確認) pan{c110191}% bc -l 5000*5+2500*5 37500 (考察) 説明はプログラム中にあるとおり、比較的簡単なプログラムである。 def-endを使用し、関数を定義し仮引数をセットした。 計算も、確かめ算をしても答えは一致しているので このプログラムは正確と言える。 B、前問のプログラムを少し変更した。前問は、枚数を欲しい分だけ 入力してもらったが、ここでは大人3枚と初めから指定して 残りの子供の枚数を入力してもらい、合計を出すようにした。 #!/usr/koeki/bin/ruby def total(y) # ここではtotalという関数を定義する 5000 * 3 + 2500 * y #5000 * 3にすることで大人三枚を固定する。 end STDERR.print("大人チケット3枚予約されています。\n")#三枚予約したことにする。 STDERR.print("子どもチケットは何枚買いますか?:") kids = gets.chomp.to_i #入力されたものを数値として受け取る printf("大人チケットは3枚、子どもチケットは%d枚購入します。\n",kids) printf("合計:%d円になります。ありがとうございました!\n",total(kids)) #最後に、初めに定義した関数totalの結果を表示させる。 (実行結果) pan{c110191}% ./def_oneparam_a.rb ~/Ruby] 大人チケット3枚予約されています。 子どもチケットは何枚買いますか?:3 大人チケットは3枚、子どもチケットは3枚購入します。 合計:22500円になります。ありがとうございました! (計算の確認) pan{c110191}% bc -l [~] 5000*3+2500*3 22500 (考察) 大人チケット三枚固定もなっており計算もあっているので このプログラムは正しいと言える。 3、感想 義務教育で学んだ算数や数学と同じしくみだと自分は思う。 数字を設定して、関数の定義を作ってという点ではなにも変わらないと感じる。 表計算、簿記などからグラフを作る経験は、いまのところまだないので 今後作った際に、今回のグラフとの違いを見つけてみたい。 4、参考文献 ------------------------------------------------------------------------- 西村まどか先生 基礎プログラミング II 第 4 回 (繰り返しは引っ張りだそう) 「どんな関数がきてもだいじょうぶ」 http://roy/~madoka/2011/r2/04/r2_04_03_theme_03_method.html 基礎プログラミング II 第 4 回 (繰り返しは引っ張りだそう) 「これを代入した答はなあに」 http://roy/~madoka/2011/r2/04/r2_04_04_theme_04_stderr.html -------------------------------------------------------------------------