第 6 回 目的に応じて使ってみよう レポート課題 氏名: 兵藤 理沙 学籍番号: c1101721 語学クラス: 英語6 コース: 政策マネジメント 1、筆記問題 A. alphabet[18]はアルファベットの18番目の文字 s を呼び出すこと。 alphabet[40]はアルファベットの40番目の文字はないので、正しい答えが無いと いう意味の nil と表示される。 2、プログラム問題 A. (1)考えた設定 5人の人が文章を打つのにかかった時間の平均を計算するプログラムを作成しま した。 (2)作成したプログラム #!/usr/koeki/bin/ruby def average(jikann) #このメソッドを作ると定義する goukei = 0.0 #合計を小数点まで求めるので0.0にする for heikinn in jikann # heikinnの中に jikannを入れて行く goukei += heikinn # goukeiにheikinnを足す end # goukei足すheikinnを終了する goukei / jikann.size # / は割り算 # sizeは average(jikann)の括弧内にある数の個数 # 合計時間を入力した時間の個数で割り # 一人の平均のかかった時間を求める end total = Array.new # 空の配列を作る print("終了する時は終了と入力して下さい。\n") while true # breakするまで繰り返す print("かかった時間を入力して下さい。\n") times = gets.chomp # getsは入力された数字をもらう。chompは改行を消す if times =="終了" # 終了と入力されたときに終了する break # breakで繰り返しから抜ける end # ifの時に終了 total << times.to_i # .to_iは整数に変換する # <<はtotalに timesを追加する end # while trueを終了する printf("打つのにかかった平均時間は%4.1f杪です。\n",average(total)) # %4.1の4は空白を4つ作るため、.1は小数点第 1まで表示するため # fは小数点以下を含む数字を扱えるようにするため # average(total)はtotalで入力された時間の合計をもらう # averageはその合計時間の平均を求め%4.1fで表示する (3)変更点 もとにしたプログラムはありません。 (4)実行した結果画面 (a) 48杪、51秒、39秒、37秒、43秒かかった時の平均時間 pan{HYODO Risa}% ./def_statistic.rb [~/Ruby] 終了する時は終了と入力して下さい。 かかった時間を入力して下さい。 48 かかった時間を入力して下さい。 51 かかった時間を入力して下さい。 39 かかった時間を入力して下さい。 37 かかった時間を入力して下さい。 43 かかった時間を入力して下さい。 終了 打つのにかかった平均時間は43.6杪です。 (b) 30杪、35秒、40秒、45秒、50秒かかった時の平均時間 pan{c110172}% ./def_statistic.rb [~/Ruby] 終了する時は終了と入力して下さい。 かかった時間を入力して下さい。 30 かかった時間を入力して下さい。 35 かかった時間を入力して下さい。 40 かかった時間を入力して下さい。 45 かかった時間を入力して下さい。 50 かかった時間を入力して下さい。 終了 打つのにかかった平均時間は40.0杪です。 (5)考察 bc -lを使い確かめ算をしました。 (a) pan{c110172}% bc -l [~/Ruby] 48+51+39+37+43 218 218 / 5 43.60000000000000000000 (b) pan{c110172}% bc -l [~/Ruby] 30+35+40+45+50 200 200 / 5 40.00000000000000000000 どちらも答えが同じなのでプログラムは正しく実行されているといえる。 (6)参考文献 http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/06/ 西村まどか 基礎プログラミングII 第 6 回 「目的に応じて使ってみよう」 http://roy/~naoya/ruby/3.html 神田直弥 基礎プログラミングI 第 3 回 「値の型変換」 初めてのプログラミング Chris Pine著 長尾高弘 訳 64ページ、8章 協力してくれた先輩:横山広樹さん 3、感想 セルフ式のガソリンスタンドで定額や定量の給油をしたときの料金を if文を使っ てできると思います。