第7回 専門演習紹介 レポート課題 阿部誠吾 c1110068 英語3 政策マネジメント 1.最高傑作 a.仕様書 プログラム名 most.rb 企画意図 このプログラムを作ったのは後期の課題で分からなかった所を使いたかったから である。また、趣味であるダーツを使ったプログラムを作ってみたかったという 理由である。 使い方 まず、プログラムを起動する。その時に何も入力せずに始めると説明が出るので その通りに使っていただきたい。数値を入力して起動すると合計、平均が出る。 平均の数値によってコメントが変わる。 連絡先 東北公益大学 公益学部 2年 c1110068 阿部 誠吾 メールアドレス c111006@g.koeki-u.ac.jp b.プログラム I.考えた設定 第6回で学んだことで課題の時に出来なかったことももとに配列を使ったプログ ラムを考えた。 II.作成プログラム most.rb #!/usr/koeki/bin/ruby #coding:euc-jp if ARGV[0] == nil #起動時に何も入力してなかったら STDERR.print("ダーツの得点を計算します。\n") #文を表示する STDERR.print("下の例のように入力して下さい。\n") #利用法が間違っていたら表示するためのSDERR sleep 1 #1秒たったら表示 STDERR.print("例 ./most.rb 30 3 60 \n") #文を表示する exit #強制終了 end #ifのend ten = ARGV #配列そのもの kaisu1 = ARGV.length.to_i #配列の個数(整数表示) kaisu2 = ARGV.length.to_f #配列の個数(小数点まで表示) a = ARGV[0].to_i #配列の1個目がa b = ARGV[1].to_i #配列の2個目がb c = ARGV[2].to_i #配列の3個目がc d = ARGV[3].to_i #配列の4個目がd e = ARGV[4].to_i #配列の5個目がe f = ARGV[5].to_i #配列の6個目がf g = ARGV[6].to_i #配列の7個目がg h = ARGV[7].to_i #配列の8個目がh i = ARGV[8].to_i #配列の9個目がi j = ARGV[9].to_i #配列の10個目がj k = ARGV[10].to_i #配列の11個目がk l = ARGV[11].to_i #配列の12個目がl m = ARGV[12].to_i #配列の13個目がm n = ARGV[13].to_i #配列の14個目がn goukei = a + b + c + d + e + f + g + h + i + j + k + l + m + n #入力した数の合計 def heikin(goukei,kaisu2) #平均を出すための mothod goukei / kaisu2 #合計と回数を割る 平均を出したいので小数表示の kaisu2 end #defのend printf("あなたの投げた矢の得点は %s です。\n",ten) #tenを含めた文を表示 printf("全部で %s 回投げました。\n",kaisu1) #kaisu1を含めた文を表示 printf("合計得点は %d 点 !!\n",goukei) #goukeiを含めた文を表示 printf("一投の平均点は %3.2f 点です。\n",heikin(goukei,kaisu2)) #平均を出す def 部分を含めた文を表示 if heikin(goukei,kaisu2) >= 38 #もし平均が38以下だったら print("良い調子ですね!\n") #文を表示 print("自己ベスト狙いましょう!!\n") #文を表示 else #それ以外なら print("たくさん練習して下さいね!\n") #文を表示 print("平均40点目指しましょう!!\n") #文を表示 end #ifのend III.もとにしたプログラムからの変更点 第6回の課題で課された配列が出来なかったので自分なりの解釈で作ってみた。 Iv.プログラムを実行した結果画面 起動する時に何も入力していない場合 pan{c111006}% ./most.rb [~/public_html/adv2] ダーツの得点を計算します。 下の例のように入力して下さい 例 ./most.rb 30 3 60 起動する時に数値を入力した場合(点数が高い時) pan{c111006}% ./most.rb 51 57 50 [~/public_html/adv2] あなたの投げた矢の得点は ["51", "57", "50"] です。 全部で 3 回投げました。 合計得点は 158 点 !! 一投の平均点は 52.67 点です。 良い調子ですね! 自己ベスト狙いましょう!! 起動する時に数値を入力した場合(点数が低い時) pan{c111006}% ./most.rb 30 24 50 [~/public_html/adv2] あなたの投げた矢の得点は ["30", "24", "50"] です。 全部で 3 回投げました。 合計得点は 104 点 !! 一投の平均点は 34.67 点です。 たくさん練習して下さいね! 平均40点目指しましょう!! v.導き出された結果の考察 まず計算が合っているか確認する。 起動する時に数値を入力した場合(点数が高い時) pan{c111006}% bc -l [~/public_html/adv2] 51+57+50 158 158/3 52.66666666666666666666 quit 起動する時に数値を入力した場合(点数が低い時) pan{c111006}% bc -l [~/public_html/adv2] 30+24+50 104 104/3 34.66666666666666666666 quit 計算は合っていた。 表示もされたので自分なりに理解したつもりだが、作っていて他のやり方がある と感じた。配列の設定がこんなにめんどくさい訳がないので知らない知識がきっ とあると信じたい。 vI.参考文献 西村まどか 第6回 「目的に応じて使ってみよう」 コマンドライン入力と method をあわせてみよう http://roy/~madoka/2012/r2/06/r2_06_14_theme_11_commandline.html 広瀬雄二 第3回 繰り返し処理 コマンドラインとの情報のやりとり http://roy/~yuuji/2012/pf2/03/argv.html c.プレゼンテーション 作ったもの pre.odp 「シンプルに簡潔に」をテーマにした。 原稿 1ページ目 私は、ダーツをモデルとしたプログラムを作りました。 コマンドライン入力を利用して合計と平均点を表示させる設定にしたものです。 2ページ目 このプログラムを作成した意図は、復習というのが一点と、ダーツが趣味だった ということが理由です。第6回の課題でコマンドライン入力を使ったプログラム が作れなかったので復習の意味を込めて作成しました。 3ページ目 使い方は、単純です。ただ起動してもらってもかまいませんが、起動時に数値を 入力してから起動すると正しく使えます。 4ページ目 結果として合計得点と平均得点が表示されます。平均得点に応じてコメントが表 示されます。 5ページ目 売り込みポイントは操作が単純なことです。数値を入力してもらうだけなので難 しさを感じさせません。 6ページ目 今後の課題としてもっと複雑な計算もいれたプログラムを作れるようにできると いいと感じました。 7ページ目 みなさんもいっしょにダーツしてみましょう。 d.広告ページ 作ったもの http://roy/~c111006/adv2/index.html 「シンプルが一番」をテーマにした。 2.感想 配列を理解していなくてプログラムを作成するまで時間がかかってしまった。で も作ってみると意外とできるなというのが実感出来たので良かったと思う。 3.共同学習者 工藤智也 佐藤航輝 武田広幸