確認しました。この調子で頑張りましょう。 ---- 10 月 3 日 第 1 回レポート 「前期の復習」 学籍番号 :C106XXXX 氏名 :XXXXXXXX 語学クラス :XXXX語 XX 系 :XXXX系 1. 前期で学んだ項目について、まとめよ。本日復習した以外にも思い出すことがあれば、それについても述べよ。 前期では、プログラミング作成の基礎を学びました。 while-end で繰り返しの動作を実行させるやり方。 \nの働き。 また、条件に応じて処理を行なうことが出来る ifやelsif。 while trueで永遠に繰り返しが行なわれるやり方や、 break で繰り返しから抜 ける方法。 配列を使うプログラミング。 正規表現で、容易に検索できる方法。 open を使い、ファイルからデータの読込が出来る方法。 sleep を使い、プログラムが起動する間隔を指定できる方法。 また、今まで2進数の計算などをやったことも聞いたこともなかったので、とて も勉強になりました。 2. 以下の問題について順番にできるところまで解け。 A a. 考えた設定 作成したプログラムを具体的に説明する。 私の夏休みのスケジュールをプログラムにしました。 b. 作成したプログラムコードそのもの #!/usr/koeki/bin/ruby print("私の夏\n") print("8月1日から4日まで、環日本海関係論の講義でした。\n") print("8月7日は、高校時代の仲よし3人組と久し振りの再会。\n") print("8月8日から11日まで、市民参加論の講義でした。集中終了!\n") print("8月10日は、高校の同窓会。楽しい時間を過ごしました。\n") print("8月13日は、地域の盆踊。たくさん飲みました。\n") print("8月14日から17日までは、待ちに待った..お泊まり!\n") print("8月18日からは、本格的に豆のバイトが開始しました。\n") print("8月27日、妹が神奈川県へ。家族で山形駅までお見送りに行きました。\n") print("9月12日、豆のバイト終了!つかれました。\n") print("9月13と14日は、法事。初めての経験でした。\n") print("あとは、秘密。\n") print("今年の夏は友達と遊んだり、バイトをしたりと、とても充実した夏休みでした!\n") print("来年の夏も、充実させるぞ!!\n") c. もとにしたプログラムからの変更点 前期に学んだ、print を使用してプログラムを作りました。 d. プログラムを実行した結果画面 irsv{c106145}% ./summer_a.rb 私の夏 8月1日から4日まで、環日本海関係論の講義でした。 8月7日は、高校時代の仲よし3人組と久し振りの再会。 8月8日から11日まで、市民参加論の講義でした。集中終了! 8月10日は、高校の同窓会。楽しい時間を過ごしました。 8月13日は、地域の盆踊。たくさん飲みました。 8月14日から17日までは、待ちに待った..お泊まり! 8月18日からは、本格的に豆のバイトが開始しました。 8月27日、妹が神奈川県へ。家族で山形駅までお見送りに行きました。 9月12日、豆のバイト終了!つかれました。 9月13と14日は、法事。初めての経験でした。 あとは、秘密。 今年の夏は友達と遊んだり、バイトをしたりと、とても充実した夏休みでした! 来年の夏も、充実させるぞ!! e. 導き出された結果の考察 (ここで計算結果が合っているか調べる) ktermで実行したら、emacsでプログラムを作った通りに動きました。 f. 参考文献 (参照した本、ホームページなど) 西村先生のHP http://roy/~madoka/2007/r1/ より B a. 考えた設定 作成したプログラムを具体的に説明する。 私の幼少の頃の夏休みの思い出で、印象に残っていることをプログラムにしまし た。 b. 作成したプログラムコードそのもの #!/usr/koeki/bin/ruby STDERR.print("幼少の頃の夏の思い出を語ります。\n") STDERR.print("いつの頃の、夏の思い出を聞きたいですか?\n") sleep 2 STDERR.print("1、保育園 2、小学校 3、中学校 4、高校\n") while true memory = gets.chomp.to_i if memory == 1 then print("正直...\n") sleep 2 print("覚えてないです。\n") break elsif memory == 2 then print("家族でバーベキューをしました。\n") print("父が凄く張り切っていたのが、印象的でした。\n") sleep 2 print("また、夏休みの宿題に奮闘していました。\n") print("いつもギリギリでやっていたので、毎年徹夜でした。\n") sleep 2 print("それから、小学校の高学年になると駅伝の練習に参加させてもらいました。\n") print("この当時の駅伝の練習が、中学で陸上部にはいるきっかけになりました。\n") break elsif memory == 3 then print("初めて、家族旅行に行きました。\n") print("場所は...\n") sleep 2 print("群馬県\n") print("温泉がたくさんありました。\n") sleep 2 print("たくさん温泉に入って、日ごろの疲れを癒すことが出来ました。\n") sleep 2 print("それから、陸上の練習。\n") sleep 2 print("当時は夏になると、一日中走っていました。\n") print("中学の夏の思い出といえば...\n") sleep 2 print("走っていたことが、一番印象的です。\n") break elsif memory == 4 then print("初めて\n") sleep 3 print("高校一年生の夏に、修学旅行で海外に行きました。\n") sleep 2 print("場所は\n") sleep 2 print("ロサンゼルス\n") print("初めての海外で、価値観や考え方などに変化が生まれました。\n") print("海外では、本当にたくさんのことを学びました。\n") sleep 2 print("この年の夏の思い出は、一生忘れないと思います。\n") break end end c. もとにしたプログラムからの変更点 calory.rb で作成したプログラムで printf や print を幼少の頃の思い出の内 容と合うように変更した。 d. プログラムを実行した結果画面 ●1、保育園を選択した結果画面 幼少の頃の夏の思い出を語ります。 いつの頃の、夏の思い出を聞きたいですか? 1、保育園 2、小学校 3、中学校 4、高校 1 正直... 覚えてないです。 ●2、小学校を選択した結果画面 幼少の頃の夏の思い出を語ります。 いつの頃の、夏の思い出を聞きたいですか? 1、保育園 2、小学校 3、中学校 4、高校 2 家族でバーベキューをしました。 父が凄く張り切っていたのが、印象的でした。 また、夏休みの宿題に奮闘していました。 いつもギリギリでやっていたので、毎年徹夜でした。 それから、小学校の高学年になると駅伝の練習に参加させてもらいました。 この当時の駅伝の練習が、中学で陸上部にはいるきっかけになりました。 ●3、中学校を選択した結果画面 幼少の頃の夏の思い出を語ります。 いつの頃の、夏の思い出を聞きたいですか? 1、保育園 2、小学校 3、中学校 4、高校 3 初めて、家族旅行に行きました。 場所は... 群馬県 温泉がたくさんありました。 たくさん温泉に入って、日ごろの疲れを癒すことが出来ました。 それから、陸上の練習。 当時は夏になると、一日中走っていました。 中学の夏の思い出といえば... 走っていたことが、一番印象的です。 ●4、高校を選択した結果画面 幼少の頃の夏の思い出を語ります。 いつの頃の、夏の思い出を聞きたいですか? 1、保育園 2、小学校 3、中学校 4、高校 4 初めて 高校一年生の夏に、修学旅行で海外に行きました。 場所は ロサンゼルス 初めての海外で、価値観や考え方などに変化が生まれました。 海外では、本当にたくさんのことを学びました。 この年の夏の思い出は、一生忘れないと思います。 e. 導き出された結果の考察 (ここで計算結果が合っているか調べる) ktermで実行したら、emacsでプログラムを作った通りに動きました。 f. 参考文献 (参照した本、ホームページなど) 西村先生のHP カロリー計算プログラム http://roy/~madoka/2007/r1/03/03-10-caloryprog.html より 3. 自分の略歴データ application.dat を利用し (増やしたければ項目をさらに増やしてもよい)、それを用いて履歴書を出力するプログラム。データから年齢や年号を計算するようなプログラムにせよ。 application.rb (B) a. 考えた設定 作成したプログラムを具体的に説明する。 application.datをもとに、私の履歴書と現在の年齢を表示させるプログラムを 作った。 b. 作成したプログラムコードそのもの #!/usr/koeki/bin/ruby year = [] month = [] day = [] prefe = [] school= [] n = 0 i = 0 open("application.dat","r")do |resume| while rireki = resume.gets if /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)/ =~ rireki year[n]= $1.to_i month[n]= $2.to_i day[n]= $3.to_i prefe[n]= $4 school[n]= $5 n += 1 end end end while n >i printf("\t%d年%d月%d日\t%s\t%s\n",year[i],month[i],day[i],prefe[i],school[i]) i += 1 end 2007-year[0] printf("私は現在%d歳です。\n",2007-year[0]) c. もとにしたプログラムからの変更点 前期に学んだ データを読み込むようにするには を参考に open を使ったプログ ラムと、今日学んだ西暦に変換するプログラムを履歴書用のプログラムに変更し た。 d. プログラムを実行した結果画面 irsv{c106145}% ./application.rb [~/Ruby] 1987年8月15日 群馬県 生まれ 2006年3月31日 山形県 羽黒高等学校卒業 2006年4月1日 山形県 東北公益文科大学入学 2010年3月31日 山形県 東北公益文科大学卒業見込 私は現在20歳です。 e. 導き出された結果の考察 (ここで計算結果が合っているか調べる) ktermで実行したら、emacsでプログラムを作った通りに動きました。 年齢も表示されたので、よかったです。 f. 参考文献 (参照した本、ホームページ) 西村先生のHP 文字列を入力するには http://roy/~madoka/2007/r2/01/01-06-review_input.html より データを読み込むようにするには http://roy/~madoka/2007/r1/07/07-10-readdata.html より 3. 感想。忘れていたところや、よく復習したところについて述べ、どこの何を 参考に解決したか、などを記せ。 今日のレポートで、前期に学んで内容を少し思い出すことが出来ました。 プログラムを作成する方法を休みの間に忘れてしまいましたが、カロリー計算 プログラムを参考に、幼少の頃の思い出をプログラムにすることが出来ました。 前期に学んだ内容を思いだし、後期では前期以上のプログラムを作れるようにな りたいです。