後期もこの調子で頑張りましょう。 ---- 10 月 3 日 第 1 回レポート 「前期の復習」 学籍番号: c106XXXX 氏名: XXXXXXXX 語学クラス: XXXX語選択XX 系: XXXX系 1.前期で学んだ項目 ・while - end :条件に合う限り繰り返す ・while true - end :正しい間ずっと繰り返す ・break :繰り返しから抜ける ・open("ファイル名","r") do |変数| - end :ファイルを読みこむ r の部分を w にすると新しく書込みをすることができる。 ・to_i :文字列を整数に切り替える ・to_f :文字列を小数に切り替える ・to_s :文字列または数値を文字列に切り替える 2.A a.考えた設定 今年の夏の思い出を語るプログラム b.作成したプログラム (summer_a.rb) #!/usr/koeki/bin/ruby print("〜 今年の夏の思い出 〜\n\n") sleep 1 print("8月の最初は、集中講義でした。\n") print("2つとったので大変でした。\n\n") sleep 1 print("9月の最初は、旅行に行きました。\n") print("古着屋で買い物をしました。\n\n") sleep 1 print("9月の後半は、地元の友達と遊びました。\n") print("去年の夏以来に会うメンバーだったので、かなり盛り上がりました。\n\n") print("以上が今年の夏の思い出です。\n") c.もとにしたプログラムからの変更点 もとにしたプログラムは特になし。 d.実行結果 irsv{c106179}% ./summer_a.rb [~/Ruby] 〜 今年の夏の思い出 〜 8月の最初は、集中講義でした。 2つとったので大変でした。 9月の最初は、旅行に行きました。 古着屋で買い物をしました。 9月の後半は、地元の友達と遊びました。 去年の夏以来に会うメンバーだったので、かなり盛り上がりました。 以上が今年の夏の思い出です。 e.考察 予想通りの結果が得られた。 f.参考文献 特になし。 B a.考えた設定 幼少の夏休みの思い出について語るプログラム。 b.作成したプログラム (summer_b.rb) #!/usr/koeki/bin/ruby print("夏の思い出について語ります。いつの思い出を聞きますか?\n\n") print("1.保育園 2.小学校 3.中学校 4.高校\n\n") while true STDERR.print("数字を入力して下さい。(やめる場合は0を入力): ") suuji = gets.chomp.to_i if suuji == 1 then print("保育園時代は…\n\n") sleep 1 print("友達や家族と海に行きました。\n\n") elsif suuji == 2 then print("小学校時代は…\n\n") sleep 1 print("家族で旅行に行きました。\n\n") elsif suuji == 3 then print("中学校時代は…\n\n") sleep 1 print("部活動をしていました。\n\n") elsif suuji == 4 then print("高校時代は…\n\n") sleep 1 ("友達と地元の花火大会に行きました。\n\n") elsif suuji == 0 break else print("※選択肢にあるものを選んで下さい!\n\n") sleep 1 end end c.もとにしたプログラムからの変更点 前期に作成した calory.rb をもとにした。 else print("※選択肢にあるものを選んで下さい!\n\n") 選択肢以外のものを選ぶと最初に戻るようにした。 d.結果画面 irsv{c106179}% ./summer_b.rb [~/Ruby] 夏の思い出について語ります。いつの思い出を聞きますか? 1.保育園 2.小学校 3.中学校 4.高校 数字を入力して下さい。(やめる場合は0を入力): 1 保育園時代は… 友達や家族と海に行きました。 数字を入力して下さい。(やめる場合は0を入力): 9 ※選択肢にあるものを選んで下さい! 数字を入力して下さい。(やめる場合は0を入力): 0 e.考察 予想通りの結果が得られた。 f.参考HP 西村先生のHP 第3回 文字の入力 http://roy/~madoka/2007/r1/03/ C a.考えた設定 履歴書のように学歴などを表示し、現在の年齢も表示するプログラム。 b.作成したデータ (application.dat) 1987 12 20 秋田県 生まれ 2003 4 1 秋田県 仁賀保高等学校入学 2006 3 31 秋田県 仁賀保高等学校卒業 2006 4 1 山形県 東北公益文科大学入学 2010 3 31 山形県 東北公益文科大学卒業見込み 作成したプログラム (application.rb) #!/usr/koeki/bin/ruby seireki = [] month = [] day = [] kenmei = [] gakureki = [] a = 0 b = 0 open("application.dat","r") do |data| while rireki = data.gets if /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)/ =~ rireki seireki[a] = $1.to_i month[a] = $2.to_i day[a] = $3.to_i kenmei[a] = $4 gakureki[a]= $5 a += 1 end end end while a > b printf("\t西暦 %4d 年 %2d月 %2d日\t%s\t%s\n",seireki[b], month[b], day[b], kenmei[b], gakureki[b]) b += 1 end printf("\n私は昭和 %d 年 生まれで、現在 %d 歳です。\n", seireki[0] - 1925, 2006 - seireki[0]) c.もとにしたプログラムからの変更点 前期で作成した regexp.rb および 今回の授業で作成した review.rb をもとにした。 printf("\n私は昭和 %d 年 生まれで、現在 %d 歳です。\n", seireki[0] - 1925, 2006 - seireki[0]) 自分の誕生日を年号に変換した点と現在の年齢を表示させた。 d.実行結果 irsv{c106179}% ./application.rb [~/Ruby] 西暦 1987 年 12月 20日 秋田県 生まれ 西暦 2003 年 4月 1日 秋田県 仁賀保高等学校入学 西暦 2006 年 3月 31日 秋田県 仁賀保高等学校卒業 西暦 2006 年 4月 1日 山形県 東北公益文科大学入学 西暦 2010 年 3月 31日 山形県 東北公益文科大学卒業見込み 私は昭和 62 年 生まれで、現在 19 歳です。 e.考察 irsv{c106179}% bc -l [~/Ruby] 1925 + 62 1987 2006 - 19 1987 quit f.参考HP 西村先生のHP データから情報を切り出すには http://roy/~madoka/2007/r1/07/ 第 01 回: 前期の復習 http://roy/~madoka/2007/r2/01/index.html 3.感想 2のAはprint文とsleepのみの基本的なプログラムなので、作成するのに時間 はかからなかった。 データを取り出すプログラムの作成の仕方を忘れていたため、2のCのプログラム はよく復習しながら作成した。 西村先生のHPや以前レポートで作成したプログラムなどを見ることによって、今 回の課題を完成させることができた。