第6回 目的に応じて使ってみよう レポート課題 氏名:馬宮巧 学籍番号:c1101833 語学クラス:中国語 コース(系):政策マネジメント 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"] 自分で数えるだけだと不確かなので、プログラムを作成して確認してみた。 〜 プログラム test.rb #!/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"] printf("配列の18番目は%s\n",alphabet[18]) printf("配列の40番目は%s\n",alphabet[40]) 〜 実行結果 pan{MAMIYA Takumi}% ./test.rb [~/program] 配列の18番目はs 配列の40番目は これにより、alphabet[18]は先頭から数えて18番目なので、alphabet[18] = に なる。 そして alphabet[40]は配列が 25 番目までしかないため、40番目を数えること は出来ない。よって、alphabet[40] = 無し となる。 2.A.考えた設定 配列を取りこんで、5日間行われたテストの平均・分散・偏差を表す プログラム。 作成したプログラム #!/usr/koeki/bin/ruby def average(score) sum = 0.0 for tokuten in score sum += tokuten end sum / score.length end def bunsan(score) sum = 0.0 for tokuten in score sum += (tokuten - average(score))**2 end sum / score.length end # 分散 = ((データ ー 平均値 ^2)の総和 / 個数 def hyoujyun(score) # 標準偏差 Math.sqrt(bunsan(score)) # Math.sqrt … ルート end test = Array.new # 配列 test を作る print("\n") print("テストの点数を調べます。\n") print("\n") print("点数の平均・分散・標準偏差を求めることが出来ます。\n") print("\n") while true # 繰り返し STDERR.print "今日のテストの点数を入力して下さい:" line = gets # lineを入れる if line == nil break # 繰り返しから抜ける。 end # if終わり test << line.to_i # 上か下かどちらでもよい。 end # while終わり printf("\n テストの平均は %f です。分散は %f で、標準偏差は %f です。\n", average(test) ,bunsan(test) ,hyoujyun(test)) ●実行結果 pan{c110183}% ./def_statistic.rb [~/program] テストの点数を調べます。 点数の平均・分散・標準偏差を求めることが出来ます。 今日のテストの点数を入力して下さい:67 今日のテストの点数を入力して下さい:59 今日のテストの点数を入力して下さい:89 今日のテストの点数を入力して下さい:78 今日のテストの点数を入力して下さい:97 今日のテストの点数を入力して下さい:^D テストの平均は 78.000000 です。分散は 192.800000 で、標準偏差は 13.885244 です。 ●考察 bc - l で正しいのか確認する。 [平均] pan{c110183}% bc -l [~/program] 67 + 59 + 89 + 78 + 97 390 390 / 5 78.00000000000000000000 [ 分散] pan{c110183}% bc -l [~/program] (67-78)^@ syntax error on line 1, teletype (67-78)^2+(59-78)^2+(89-78)^2+(78-78)^2+(97-78)^2 964 964/5 192.80000000000000000000 [標準偏差] 192.800000^2 37171.840000000000 計算して確認したところ、ほぼ答えと一致している。 3、感想 知っている中では、人生ゲームが当てはまると思う。出た数字だけ進み、ついた マスで色々なイベントが発生する。メソッドの考え方を使える。 4、参考文献 基礎プログラミング 2 2010年度 第6回 講評 http://roy/~madoka/2010/r2/06/rpt/crt.html 5,添付