第 6 回 目的に応じて使ってみよう レポート課題 氏名:上林千尋 学籍番号:c1100638 語学クラス:英語 コース(系):地域共創コース 1.筆記問題 A 配列は0から始まるので、一番最初の"a"は0となる。 配列を順番に書き著すと 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 となる。 18番目はsなので、alphabet[18]=s alphabet[40]は配列に存在しないので、空であることを表すnilとなる。 2.プログラム問題 A 考えた設定 養豚場から出荷する豚の体重の平均と分散、標準偏差を 入力された値を配列にしまって計算するプログラムを考えた。 プログラム内容 #!/usr/koeki/bin/ruby def average(kiro) #平均を求めるメソッド sum = 0.0 for heikin in kiro #kiroをheikinにかえる sum += heikin #heikinをsumに加算 end sum / kiro.length #合計を入力された重さで割る end #defおわり def bun(kiro2) #分散を求めるメソッド sum = 0 for bunsan in kiro2 #kiro2をbunsanにかえる sum += (bunsan-average(kiro2))**2 end sum / kiro2.length end #defおわり def hensa(kiro3) #偏差を求めるメソッド Math.sqrt(bun(kiro3)) end #def終わり count = 0 #豚の数をカウントする total = Array.new #totalの配列を作る print("豚の一匹あたりの平均体重、分散、標準偏差を求めます。\n") print("終了する場合はexitと入力して下さい。\n") print("\n") while true STDERR.print("豚の体重を入力してください :") weight = gets.chomp if weight == "exit" #もしexitと入力されたら break #加算をやめる end total << weight.to_i #入力された数字を取りこむ count += 1 #同時に入力された回数もカウント end printf("\n") printf("%d匹の重さの平均は %3.1f です。\n",count,average(total)) printf("分散は %.3f です。\n",bun(total)) printf("標準偏差は %.3f です。\n",hensa(total)) 実行結果 pan{c110063}% ./def_statistic.rb [~/Ruby] 豚の一匹あたりの平均体重、分散、標準偏差を求めます。 終了する場合はexitと入力して下さい。 豚の体重を入力してください :5 豚の体重を入力してください :4 豚の体重を入力してください :3 豚の体重を入力してください :2 豚の体重を入力してください :1 豚の体重を入力してください :exit 5匹の重さの平均は 3.0 です。 分散は 2.000 です。 標準偏差は 1.414 です。 確かめ計算 bc -lを使って確かめ計算をした pan{KAMBAYASHI Chihiro}% bc -l [~/Ruby] 5+4+3+2+1 15 15/5 3.00000000000000000000 プログラムが算出した数字と合致しているので、プログラムの計算は正しい と言える。 3.感想 methodを使って、ゲームの戦闘シーンを再現することができると考えた。 敵と自分にHPを振り、攻撃を繰り返すことによってHPを削っていき、最終的 にどちらかのHPが0になったら終わるようになっていると考えた。 参考文献 http://roy/~madoka/2011/r2/06/lec/resume.html 基礎プログラミング II 第 6 回 「目的に応じて使ってみよう」 講義ノート 西村まどか先生