第6回 基礎プログラミング II レポート課題 氏名:遠藤孝之 学籍番号:c1090265 語学クラス:中国語 コース(系):環境サイエンス 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"] 簡単に調べるようにプログラムを作りました #!/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] 実行結果 pan{c109026}% ./alphabet.rb [~/Ruby] "s" alphabet「18」=「s」となる 「18」のところを「40」にすると... 変更したプログラム #!/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[40] 実行結果 pan{c109026}% ./alphabet.rb [~/Ruby] nil 存在しないものは「nil」と出る。つまり... alphabet「40」は、存在しないという意味になる。 2:プログラ厶問題 元のプログラム、def_ary_movie.rbを変更して、身長の平均値を出せるようにし た。 プログラム本体 def average(sintyou) sum = 0.0 for takasa in sintyou sum += takasa # printf("%d 人目 途中合計 sum=%d\n", ninzu.length + 1, sum) end sum / sintyou.length end points = Array.new # i=0 while true STDERR.print "身長をを入力して下さい: " line = gets if line == nil break end points << line.to_i # 上か下かどちらかでよい # points[i] = line.to_i p points # i += 1 end printf("\n みんなの平均は %3.1f です\n", average(points)) sintyou1 = average(points) if sintyou1 > 180 print("皆身長高いね!!\n") elsif sintyou1 > 170 print("平均的だね!\n") else print("全体的に身長が低いね...\n") end 実行結果(160cmから170cmの間の身長平均値の場合) pan{c109026}% ./def_statistic.rb [~/Ruby] 身長をを入力して下さい: 167 [167] 身長をを入力して下さい: 143 [167, 143] 身長をを入力して下さい: 178 [167, 143, 178] 身長をを入力して下さい: 162 [167, 143, 178, 162] 身長をを入力して下さい: ^D みんなの平均は 162.5 です 全体的に身長が低いね... 本当にそうなのか確かめ算をした。 pan{c109026}% bc -l [~/Ruby] 167 + 143+ 178 + 162 650 650 / 4 162.50000000000000000000 quit 同じ答えになったのでプログラムは成功と言える。 平均値が170cmから180cmの場合 pan{c109026}% ./def_statistic.rb [~/Ruby] 身長をを入力して下さい: 180 [180] 身長をを入力して下さい: 197 [180, 197] 身長をを入力して下さい: 165 [180, 197, 165] 身長をを入力して下さい: 170 [180, 197, 165, 170] 身長をを入力して下さい: ^D みんなの平均は 178.0 です 平均的だね! 確かめ算 pan{c109026}% bc -l [~/Ruby] 180 + 197 + 165 + 170 712 712 / 4 178.00000000000000000000 平均値が180cm以上の場合 pan{c109026}% ./def_statistic.rb [~/Ruby] 身長をを入力して下さい: 182 [182] 身長をを入力して下さい: 176 [182, 176] 身長をを入力して下さい: 190 [182, 176, 190] 身長をを入力して下さい: 186 [182, 176, 190, 186] 身長をを入力して下さい: ^D みんなの平均は 183.5 です 皆身長高いね!! 確かめ算 pan{c109026}% bc -l [~/Ruby] 182 + 176 + 190 + 186 734 734 / 4 183.50000000000000000000 同じ答えになったのでプログラムは成功と言える。 感想 テイルズシリーズのゲームで敵に攻撃を加えると敵の防禦力の違いで攻撃値に変 化を与えているので、method の考え方を使っている。 参考文献 http://roy/~madoka/2010/r2/06/06_08_theme_07_aryavg.html 「映画の星づけランキング」 共同学習者:横山広樹、池田博哉、藤井駿、佐藤裕康