第6回 基礎プログラミング II レポート課題 氏名:成澤龍空 学籍番号:c1071658 語学クラス:英語 コース(系):経営系 1. A. alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p", "q","r","s","t","u","v","w","x","y","z"] よって、alphabet[18]は"r"である。 またアルファベットは26個までなので、alphabet[40]は nil となる。 2. A. 設定 授業で行ったdef_ary_movie.rbを元に平均を求めるプログラムを作成した。 作成したプログラム(def_statistic.rb) #!/usr/koeki/bin/ruby def average(score) sum = 0.0 for stars in score sum += stars end sum / score.length end points = Array.new print("テストの結果発表\n") while true STDERR.print("得点を入力して下さい:") line = gets if line == nil break end points << line.to_i end printf("\n クラスの平均は %3.1f 点です\n", average(points)) 実行結果 pan{c107165}% ./def_statistic.rb [~/Ruby] テストの結果発表 得点を入力して下さい:43 得点を入力して下さい:23 得点を入力して下さい:56 得点を入力して下さい:76 得点を入力して下さい:34 得点を入力して下さい:^D クラスの平均は 46.4 点です 考察 bc -l で確かめ算をしてみると、 pan{c107165}% bc -l [~/Ruby] (43 + 23 + 56 + 76 + 34) / 5 46.40000000000000000000 となるので正しく機能している。 B. 設定 このプログラムも授業で行ったdef_rubiocci.rb を参考に作成した。 作成したプログラム(def_rollplaying_a.rb) #!/usr/koeki/bin/ruby def play(ct) ct.times do end print("\n") sleep(0.5) end def message(name) STDERR.printf("%sさん、行動を選択して下さい。: \n",name) STDERR.print("[1]\t試合に登板\n") STDERR.print("[2]\t練習する\n") STDERR.print("[3]\t遊びにいく\n") end def power(perday,year) x = 3 * perday - year - 2 printf("%d年目\n",perday) x end printf("ドラフトに指名されました。\n") STDERR.printf("あなたの名前は?:") name = gets.chomp if name == "" name = "斎藤祐樹" end printf("%sさんですね。\n",name) experiment = 1 skill = 1 year = 1 while true play(experiment) message(name) ans = gets.chomp.to_i print "*" * 80 experiment += year * ans skill += power(year,ans) if experiment > 30 break end if skill > 30 break end play(ans) year += 1 end play(skill) printf("%sは", name) if skill > 30 print("エース") elsif skill <= 15 print("戦力外") else print("2軍選手") end print("になりました。\n") 実行結果 pan{c107165}% ./def_rollplaying_a.rb [~/Ruby] ドラフトに指名されました。 あなたの名前は?: 斎藤祐樹さんですね。 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 3 ********************************************************************************1年目 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 2 ********************************************************************************2年目 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 1 ********************************************************************************3年目 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 1 ********************************************************************************4年目 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 1 ********************************************************************************5年目 斎藤祐樹さん、行動を選択して下さい。: [1] 試合に登板 [2] 練習する [3] 遊びにいく 1 ********************************************************************************6年目 斎藤祐樹はエースになりました。 考察 選択はすべて試合に登板にすると5年目にエースになり、すべて練習にすると5年 目に2軍選手となり、すべて遊びにいくとすると4年で戦力外となる。また試合に 登板するの比重を多くするとエースとなるが遊びにいくの比重を多くすると戦力 外となる。どんなに長くても6年までになっている。 感想 恋愛ゲームやクイズゲームなどはプレイヤーが選んだ答えによって違った結果に なるが、今回のmethod の考えをいかせると思う。 参考アドレス http://roy/~madoka/2010/r2/06/06_08_theme_07_aryavg.html 基礎プログラミング II 第6回 目的に応じて使ってみよう 「映画の星づけラン キング」 http://roy/~madoka/2010/r2/06/06_11_theme_09_rubiocci.html 基礎プログラミング II 第6回 目的に応じて使ってみよう 「るびおっち」 TA:大沼拓海さん