第 6 回 目的に応じて使ってみよう レポート課題 氏名:下妻 匡哉 学籍番号:c1101164 語学クラス:英語(6) コース(系):地域共創コース 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"] となる。 配列を数えるときは、key = [0,1,2,3,…]のように、0,1,2,3,…と数える。 つまり、a = 0, b = 1, c = 2,… という順番になる。 これに則ってやると、alphabet[18] は s になる。 また、この配列は z、すなはちz = 25 までしかないため、alphabet[40]は 表示されない。よって、alphabet[40]は nil になる。 -------------------------------------------------------------------------------- 2.プログラミング問題 A (1)考えた設定 「余目〜酒田間の鉄道の利用者を調べる社会実験が行われる」という設定のも と、入力された人数の合計と平均を求めるプログラム def_statistic.rb を考 えた。 (2)作成したプログラム #!/usr/koeki/bin/ruby def average(number) # defメソッドを設定 sum = 0.0 for human in number # human の中に number を代入して、繰り返す。 sum += human # 合計を求める end printf("乗客の合計は %d 人です\n", sum) # 入力された人数の合計を表示 sum / number.length # 平均を求める end passenger = Array.new # 配列 passenger を作る print("余目〜酒田間の鉄道の乗客の人数を調べます\n") sleep 1 while true STDERR.print("乗客の人数を入力して下さい(終了はCtrl-D)\n ") people = gets # people を持って来る if people == nil # もし people がなかったら break # While true(繰り返し)から抜ける end passenger << people.to_i # 配列に passenger を整数に変換して追加 end print("\n") printf("乗客の平均は %3.1f 人です\n", average(passenger)) (3)もとにしたプログラム def_ary_movie.rb を参考にさせていただいた。 変数やprint文を設定に合わせたほか、合計を表示する、という工夫をした。 (4)プログラム実行結果 pan{c110116}% ./def_statistic.rb [~/Ruby] 余目〜酒田間の鉄道の乗客の人数を調べます 乗客の人数を入力して下さい(終了はCtrl-D) 1234 乗客の人数を入力して下さい(終了はCtrl-D) 5678 乗客の人数を入力して下さい(終了はCtrl-D) 9012 乗客の人数を入力して下さい(終了はCtrl-D) 3456 乗客の人数を入力して下さい(終了はCtrl-D) 7890 乗客の人数を入力して下さい(終了はCtrl-D) ^D 乗客の合計は 27270 人です 乗客の平均は 5454.0 人です pan{c110116}% ./def_statistic.rb [~/Ruby] 余目〜酒田間の鉄道の乗客の人数を調べます 乗客の人数を入力して下さい(終了はCtrl-D) 2 乗客の人数を入力して下さい(終了はCtrl-D) 3 乗客の人数を入力して下さい(終了はCtrl-D) 2 乗客の人数を入力して下さい(終了はCtrl-D) ^D 乗客の合計は 7 人です 乗客の平均は 2.3 人です (5)考察 計算が正しいかどうか確かめるため、bc -l で確かめ算を行った。 pan{c110116}% bc -l [~/Ruby] 1234+5678+9012+3456+7890 27270 27270/5 5454.00000000000000000000 quit このように、実行結果と確かめ算の計算結果が一致した。 以上から、このプログラムは正常に作動していると言える。 また、小数点第2位を四捨五入しているかどうかを確かめるために後者の記入をし てプログラムを実行した。それの bc -l による確かめ算が、 pan{c110116}% bc -l [~/Ruby] 2+3+2 7 7/3 2.33333333333333333333 quit となり、きちんと小数点第2位で四捨五入されていることが証明された。 -------------------------------------------------------------------------------- 3.感想 RPGゲームがこれに当てはまると思う。 選択肢からプレイヤーの選択や行動により、イベントやルート、エンディング が決められる。 よって、RPGゲームはメソッドの考え方を使ってできていると考える。 今回のプログラム課題では、分散や標準偏差などは難しくてできなかったが、 その代わりに合計を表示する、というせめてもの工夫をした。このような感じ で、代わりの工夫なども組み合わせれば違った視点から見ることもできると思っ た。 -------------------------------------------------------------------------------- 4.参考文献 http://roy/~madoka/2011/r2/06/r2_06_08_theme_07_aryavg.html 西村 まどか 基礎プログラミングII 第 6 回 「目的に応じて使ってみよう」 映画の星づけランキング http://roy/~madoka/2011/r2/06/r2_06_10_theme_08_while.html 西村 まどか 基礎プログラミングII 第 6 回 「目的に応じて使ってみよう」 while文で入力するとき http://roy/~madoka/2011/r2/06/r2_06_09_appendix_01_methodinmethod.html 西村 まどか 基礎プログラミングII 第 6 回 「目的に応じて使ってみよう」 method の中にmethod http://roy/~madoka/2010/r2/06/rpt/crt.html 西村 まどか 基礎プログラミングII(2010) 第 6 回 「目的に応じて使ってみよう」 共同学習者:吉住 貴則 ------------------------- 東北公益文科大学 公益学部 2年 下妻 匡哉 C110116@f.koeki-u.ac.jp -------------------------