第 6 回 目的に応じて使ってみよう レポート課題 氏名:水口天地 学籍番号:c1101862 語学クラス:英語2 コース(系):地域共創 1.筆記問題 alphabet = ["a","b",…,"z"] というように配列を用意したとき alphabet[18] は、配列の場合 0 から数 え 始めるので a が 0番目、 b が 1 番目、 c が 2 番目と数えていくと 18 番目 は s になる。 よって alphabet[18] は s になる。 alphabet[40] は上と同じように数えていくが、アルファベットは 26 までしか なく配列も z までしかないので nil つまり何もないという答えがかえってくる。 よって alphabet[40] は nil(なし)になる。 2.プログラム問題 A 作成したプログラム #!/usr/koeki/bin/ruby $KCODE= 'e' #日本語を使用する宣言。 def average(total) # 関数averageを作るメソッド sum = 0.0 # あとで小数点第1位で切捨てするので、0.0としておく。 for heikin in total # totalの中身をheikinに sum += heikin # sumは上で設定した変数heikinを足していった数値とする。 end # for文を終了 sum / total.length # totalの数でsumを割り、平均を出す end # 関数作りメソッド終了 daten = Array.new # 配列datenを作る number = 0 # 人数をカウントするための変数number while true # Ctrl-dが入力されるまで以下を繰り返すように STDERR.print "一人一人の打点を順番に入力して下さい(終了時はCtrl-d):" point = gets # 変数pointに取り込む。 if point == nil # Ctrl-dが入力されたら、 break # 終了して結果表示へ。 end # if文終了 daten << point.to_i # 配列datenに、入力された値を取り込んでいく number += 1 # numberに1ずつ足し、人数を記録する。 # はじめ、この計算をif-break-endの前に出していたところCtrl-dまでカウントされた。 end # while true終了 sleep 1.5 printf("\n%d人の平均打点は%4.1f 点です\n",number,average(daten)) # 結果表示 print("\n") # 改行文字 sleep 1.3 if average(daten) >= 100 # もし100点以上だったら print("もうメジャー級だね!!\n") elsif average(daten) >= 70 # もし70点以上だったら print("なかなかいいんじゃない?\n") elsif average(daten) >= 40 # もし40点以上だったら print("それじゃうちの野球部には勝てないよ\n") else #それ以下 print("もうだめだめだね...\n") end 実行結果 pan{c110186}% ./def_statistic.rb [~/ruby] 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):200 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):150 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):123 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):138 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):90 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):2 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):140 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):88 一人一人の打点を順番に入力して下さい(終了時はCtrl-d):^D 8人の平均打点は116.4 点です もうメジャー級だね!! 考察 bc -l で確かめてみると pan{c110186}% bc -l [~/ruby] 200+150+123+138+90+2+140+88 931 931/8 116.37500000000000000000 となり小数第2位を四捨五入するので 116.4 となるから実行結果と一致する。 したがってプログラムは正常に作動したといえる。 3.感想 method の考え方を利用しているものは、育成ゲームだと思う。育成ゲーム は、プレーヤーによって育ちかたが変化するからである。 今回の課題は作るのに時間がかかったけれどなんとか良いものができたと 思う。このやり方を上手く使っていければさらに手のこんだプログラムが できると思う。 4.参考文献等 基礎プログラミング II 第6回 目的に応じて使ってみよう 講義ノート 協同学習者 千葉