第 7 回 ゼミ紹介 レポート課題 氏名:齋藤陽香 学籍番号:c1100880 語学クラス:英語6 コース:政策マネジメント 1. A-a.仕様書 ◎ 仕様書 ◎ ・プログラム名 lucky.rb ・企画意図 おみくじが好きなので自分で作成しました★ ・取扱説明書 → 保存方法 プログラムを保存したディレクトリに移動し、プログラムを実行しま す。例えばカレントディレクトリにあるrubyというディレクトリにプ ログラムを保存した場合は
pan{c10xxxx}% cd ruby

でrubyディレクトリに移動し

pan{c10xxxx}% ruby five.rb

で実行できます。

→ 遊び方 直感で色を選択し、入力します。するとおみくじの結果が出てきます。 さて、あなたの運勢はいかがなものでしょう…? ・ 連絡先 齋藤陽香 c110088@f.koeki-u.ac.jp A-b.プログラム(lucky.rb) i.考えた設定 おみくじ ii.作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 文字コード(日本語)を設定 def sum(number,plus) # 関数を設定 sum という式 number + plus # number に plus を加算 end # def の end item = Hash.new # hash 配列 を item とする srand # 乱数 plus = rand(6) # plus を 0 から 5 までの乱数にする total = 0 # tatal を 0 とする number = 0 # nember を 0 とする while true # 繰り返し print"直感で色を選んで下さい。(数字を入力)\n" # 表示 item[1] = "ゴールド" # 配列の表示 item[2] = "シルバー" item[3] = "あか" item[4] = "あお" item[5] = "みどり" item[6] = "きいろ" for suji,color in item.sort # item をすべて表示 # アルファベットを alphabet ,色を color # とする printf(" %s … %s \n",suji,color) # 文章の表示(配列の挿入) end # for-in の end number = gets.to_i # number の入力を求める total = sum(number,plus) # total に 関数の sum を 持ってくる print"--------------------------------------------------------------\n" # 表示 if number == 0 # 条件 number = 0 のとき print"結果を出せません。\n" # 処理 表示 elsif number <= 6 # number が 6 以下のとき if total == 2 # 条件 1 score = 2 のとき print"大凶 : 焦らないこと。体調に気をつけるべし。\n" # 処理 1 表示 break # 繰り返しをやめる elsif total == 3 # 条件 2 score = 3 のとき print"凶 : 人間関係に注意。自己中心的にならないよう気を付けるべし。\n" # 処理 2 表示 break # 繰り返しをやめる elsif total == 10 # 条件 3 total = 10 のとき print"凶 : 人間関係に注意。自己中心的にならないよう気を付けるべし。\n" # 処理 3 表示 break # 繰り返しをやめる elsif total == 4 # 条件 3 score = 4 のとき print"小吉 : 困っている人に手助けをすると良いことがあるだろう。\n" # 処理 3 表示 break # 繰り返しをやめる elsif total == 9 # 条件 4 total = 9 print"小吉 : 困っている人に手助けをすると良いことがあるだろう。\n" # 処理 4 表示 break # 繰り返しをやめる elsif total == 6 # 条件 5 score = 6 のとき print"中吉 : 運がついているからといって調子に乗らないこと。そうすれば何事も上手くいくだろう。\n" # 処理 5 表示 break # 繰り返しをやめる elsif total == 7 # 条件 6 total = 7 のとき print"中吉 : 運がついているからといって調子に乗らないこと。そうすれば何事も上手くいくだろう。\n" # 処理 6 表示 break # 繰り返しをやめる elsif total == 5 # 条件 7 score = 5 のとき print"吉 : 感謝の気持ちを忘れなければ何事も上手く進む。\n" # 処理 7 表示 break # 繰り返しをやめる elsif total == 8 # 条件 8 score = 8 のとき print"吉 : 感謝の気持ちを忘れなければ何事も上手く進む。\n" # 処理 8 表示 break # 繰り返しをやめる elsif total == 1 # 条件 9 total = 1 のとき print"大吉 : すべてが順調に進む。新しいことに挑戦すべし。\n" # 処理 9 表示 break # 繰り返しをやめる elsif total == 11 # 条件 10 total = 11 のとき print"大吉 : すべてが順調に進む。新しいことに挑戦すべし。\n" # 処理 10 表示 break # 繰り返しをやめる else # 上の条件以外のとき print"結果を出せません。\n" # 表示 end # if の end elsif number > 6 # number > 6 のとき print"結果を出せません。\n" # 表示 end # if の end print"--------------------------------------------------------------\n" # 表示 end # while-true の end print"--------------------------------------------------------------\n" # 表示 #p plus #p total iii.もとにしたプログラムと変更点 課題で提出した hash_for.rb を参考にした。 defメソッド で関数を設けた。def で設けた式に乱数を加え、その計算結果によっ て結果を表示させる。 hash_for.rb をもとにプログラムを作成したが、前期で学習した項目や後期で学 んだことなどいままで学習してきた内容を組み込んで完成させた。 iv.実行結果 ◯その1 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 4 -------------------------------------------------------------- 小吉 : 困っている人に手助けをすると良いことがあるだろう。 -------------------------------------------------------------- ◯その2 pan{c110088}% ./lucky.rb [~/Ruby] 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 1 -------------------------------------------------------------- 大吉 : すべてが順調に進む。新しいことに挑戦すべし。 -------------------------------------------------------------- ◯その3 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 3 -------------------------------------------------------------- 中吉 : 運がついているからといって調子に乗らないこと。そうすれば何事も上手くいくだろう。 -------------------------------------------------------------- ◯その4 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 0 -------------------------------------------------------------- 結果を出せません。 -------------------------------------------------------------- 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 9 -------------------------------------------------------------- 結果を出せません。 -------------------------------------------------------------- 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 5 -------------------------------------------------------------- 中吉 : 運がついているからといって調子に乗らないこと。そうすれば何事も上手くいくだろう。 -------------------------------------------------------------- ※おみくじの結果は大吉から大凶まであるが膨大な量になるため、レポートでの 実行結果はその4まで記述する。 v.考察 提出したプログラムではコメント扱いにしているが、プログラムの正確さを確認 するため、 p total 、p plus で乱数、入力を求めた数と乱数の合計を表示してみる。 すると、以下の通りになる。 pan{c110088}% ./lucky.rb [~/Ruby] 直感で色を選んで下さい。(数字を入力) 1 … ゴールド 2 … シルバー 3 … あか 4 … あお 5 … みどり 6 … きいろ 4 -------------------------------------------------------------- 吉 : 感謝の気持ちを忘れなければ何事も上手く進む。 -------------------------------------------------------------- 4 ← 乱数 8 ← 合計 次に確かめ算をする。 pan{SAITO Haruka}% bc -l [~/Ruby] 4+4 8 quit プログラムでの合計と確かめ算での合計が一致している。 total が 8 となり、プログラムで設けた条件に対する処理が実行され、表示さ れている。 数字の入力で kterm に表示された数字以外を入力されると結果を出さず、もう 一度入力を求めるように設定した。実際に表示された数字以外を入力すると結果 が出せないといってくる。 よって、このプログラムは正しいといえる。 vi.参考文献 ・神田先生 2011年度前期授業用ページ (4) 05/16の授業内容:制御構造[1] http://roy/~naoya/ruby/4.html (11) 07/04の授業内容:楽しいプログラムを作ろう http://roy/~naoya/ruby/11.html ・共同学習者 畠山貴衣、伊藤桜子 A-c. 時間の問題より、制作することができなかった。 A-d.広告ホームページアドレス http://roy/~c110088/advertise2/ 2. 今回の課題は自由なプログラムの作成とHTMLの作成ということだった。プログラ ムの作成は今まで学んだ項目を使い、再確認すると共に完成させた。 while、if、hash、def など様々なメソッドや自分で設定するメソッドなど沢山 の項目を学習してきたことを実感した。悩みながらも楽しんでプログラムを作成すること が出来た。 HTMLは自分のセンスを存分に発揮出来た。組み込んだプログラムが保存するとす ぐにインターネットのページに反映されるのがやりがいに感じ、楽しかった。 3. 参考文献(HTML作成の際に使用) ・神田先生 2011年度前期授業用ページ (10) 06/27の授業内容:プログラムの公開 http://roy/~naoya/ruby/10.html ・roy Webページの書き方 http://roy/web/index.html ----------------------------------- 東北公益文科大学 公益学部 公益学科 2年 齋藤陽香 c110088@f.koeki-u.ac.jp