第6回 基礎プログラミング II レポート課題 氏名:薮田 大樹 学籍番号:c1101916 語学クラス:中国語3 コース(系):地域共創 1、筆記問題 (A) 1: alphabet[18] は s である。 理由: alphabet = ["a","b",...,"z"] という配列のとき1からでなく 0から数えるのを始める。なので a,b,c = 0,1,2と数えると alphabet[18] は s である。 2: alphabet[40] は nil である。 理由: これも上記と同じように数えて行くが、ひとつ問題が生じる。 アルファベットは26までしかなく配列も z までしかないので alphabet[40]は答えを出せない。この場合何も無いことを 答えるために alphabet[40] は nil(無い) となる。 2、プログラム問題 A プログラム(def_statistic.rb) a 考えた設定 1日の勉強時間の平均時間を求めるプログラムを考えた。 作成したプログラム #!/usr/koeki/bin/ruby def avarage(study) # メソッドの設定 sum = 0.0 # 小数点数にする for time in study sum += time end # for - endのend sum / study.length # timeの数でsumを割る。そして平均を出す。 end # for - endのend work = Array.new # 新しく配列をつくる while true # break するまで繰り返し STDERR.print("あなたの勉強時間を入力して下さい。(終了する時はCrtl+D)\n") STDERR.print("時間は小数点で入力してください。例 1.5のように\n") studytime = gets if studytime == nil # 止めたいときは ctrl - dを押す break end work << studytime.to_i end printf("あなたの平均勉強時間は%3.2fです\n" ,avarage(work)) 実行結果 pan{c110191}% ./def_statistic.rb [~/Ruby] あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように 1 あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように 2 あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように 3 あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように 4 あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように 5 あなたの勉強時間を入力して下さい。(終了する時はCrtl+D) 時間は小数点で入力してください。例 1.5のように あなたの平均勉強時間は3.00です 3、考察 平均が間違っていないかbc -lで確かめ算をした。 合計勉強時間 / 日数なので上記の実行結果に基づくと pan{c110191}% bc -l [~/Ruby] 1+2+3+4+5 15 15/5 3.00000000000000000000 となり、計算が合っていることが証明される。 4、感想 メソッドを使っているものとして、育成型やRPGなどの ゲームがあげられると思う。プレイヤーの意図によって変化して行くから。 5、参考文献 基礎プログラミング I 第5回 配列の構造 「配列 Array」 http://roy/~madoka/2011/r1/05/05_03_theme_02_array.html 西村まどか