第 6 回 目的に応じて使ってみよう レポート課題 氏名:佐藤 汰紀 学籍番号:C1101046 語学クラス:英語2 コース(系):環境サイエンスコース 筆記問題 alphabet[18]・・・普通にアルファベット順ならば小文字のrが表示されるはず だが、今回は配列なので表示されるデータは[0、1、2...]の ように表示されるはずである。したがってこの場合はひとつ 前のsが表示されると考えられる。 alphabet[40]・・・アルファベットは全部で26あり、alphabetの配列で考えても 全部で25のため、この場合alphabet[40]と入力するとnilと 表示されると考えられる。 考察 実際に実行して確かめてみる。 #!/usr/koeki/bin/ruby 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"] p alphabet[18] p alphabet[40] というプログラムを作成して実行してみる。 pan{c110104}% ./alphabet.rb [~/Ruby] "s" nil 結果はこのようになり、予想通りとなった。 プログラム問題 A、1日何時間テレビゲームをしたか調べるプログラムを作成した。 #!/usr/koeki/bin/ruby def average(time) sum = 0.0 # 平均を求めるため浮動小数点数にしておく for play in time # for A in B で B の中の A について sum += play end sum / time.length #配列 score の要素数を数え、それで sum を割る end game = [] #配列が空であることを意味する while true STDERR.print("1日どのくらいテレビゲームしますかー?\n") STDERR.print("小数で入力してね。(終了はCrtl+D):\n ") display = gets if display == nil break end game << display.to_f #小数を表示できるようにto_fにした end printf("\n みなさんの平均ゲームプレイ時間は %3.2f 時間でしたー。\n", average(game)) 結果は pan{SATO Taiki}% ./def_statistic.rb [~/Ruby] 1日どのくらいテレビゲームしますかー? 小数で入力してね。(終了はCrtl+D): 0.5 1日どのくらいテレビゲームしますかー? 小数で入力してね。(終了はCrtl+D): 1.3 1日どのくらいテレビゲームしますかー? 小数で入力してね。(終了はCrtl+D): 2.5 1日どのくらいテレビゲームしますかー? 小数で入力してね。(終了はCrtl+D): 3.0 1日どのくらいテレビゲームしますかー? 小数で入力してね。(終了はCrtl+D): ^D みなさんの平均ゲームプレイ時間は 1.82 時間でしたー。 このようになった。 考察 しかし、本当に計算があっているかわからないため、bc -lでたしかめてみる。 pan{c110104}% bc -l [~/Ruby] 0.5+1.3+2.5+3.0 7.3 7.3/4 1.82500000000000000000 結果はこのようになり計算は正しかった。 感想 methodの考え方を使ってできるゲームは、ポケモンやたまごっちなどだと思う。 戦い方や道具などによってパラメータが変化するためである。 参考文献 基礎プログラミング II 第 6 回 (目的に応じて使ってみよう) 「映画の星づけ ランキング」 http://roy/~madoka/2011/r2/06/r2_06_08_theme_07_aryavg.html 協力した友人 宮城 晃司