第1回 基礎プログラミング II レポート課題 氏名:遠藤裕貴 学籍番号:c1090294 語学クラス:中国語 コース(系):政策マネ 1.筆記問題 -前期のまとめ- ・Ctrl+1でemacsを開く。 ・Ctrl+2でktermを開く。 ・Ctrl+3でconsoleを開く。 ・Ctrl+4でfirefoxなどのページを開く。 -emacsの場合- ・Ctrl+x+fでファイルを開く。又は、新規作成。 ・Ctrl+x+sで保存できる。 ・間違った場合Ctrl+Gでquit ・Ctrl+x iで作ったプログラムをコピーできる。 ・ktermのドラックした場所をCtrl+yでコピー出来る。 ・Ctrl+kで1行消える。 ・Ctrl+eで行の最後に移動 ・Ctrl+aで行の最初に移動 ・Ctrl+fで1つずつ右へ移動 ・Ctrl+bで1つずつ左へ移動 ・Ctrl+x 5 2で同じページをもう1個作ることができる。 ・Ctrl+x 5 0でページを消すことが出来る。 -ktermの場合- ・cdでホームディレクトリ−に戻れる。 ・例えば、cd Ruby で Ruby に行ける 。 ・計算などの確認はbc -lで行なう。終わる時はquit。 ・firefox&でfirefoxのページが開ける。 ・chmod +x ファイル で保存されているファイルに印がつく。 ・./ファイル でファイル実行ができる。 ・mv ファイル1 ディレクトリでファイルの移動ができる。 ・gimp&でロゴを作るページが開ける。 ・tgif&で画像を作るページが開ける。 ・ooo3 &でOpenOfficeのページが開ける。 -consoleの場合- ・exitで終わることができる。 2.プログラム問題 A ・実行結果 pan{c109029}% ./summer_a.rb [~/Ruby] 夏休みの思い出〜SUMMER VACATION〜 初日から酒屋のアルバイトが始まった。 10連勤したあと一日休暇で、次の日からまた7連勤だったのでへろへろだった。 そのお陰で給料がよかった。 9月3日に高校のクラス会があった。 みんなと会うのが久しぶりだったので楽しみだった。 一次会が飲み屋で飲んだ。 二次会は朝までカラオケだった。 小学校からの幼なじみが3時間以上もトイレから出てこなかったのでびびった。 9月6日から7日にかけては栃木県に遊びにいった。 初日は那須ハイランドパークに行き、つくのが早過ぎて時間潰しに困った。 回るジェットコースターが非常におもしろかった。 二日目はアウトレットパークにいった。 そのあと帰り道だったのでアクアマリン福島にいった。 けっこう遠かったので運転疲れた。 でも楽しかったです。 以上が遠藤くんの夏の思い出だす。 pan{c109029}% [~/Rub ・プログラム本体 #!/usr/koeki/bin/ruby print("夏休みの思い出〜SUMMER VACATION〜\n\n\n")#改行2行 sleep 2 print("初日から酒屋のアルバイトが始まった。\n\n") sleep 2 print("10連勤したあと一日休暇で、次の日からまた7連勤だったのでへろへろだった。\n\n") sleep 2 print("そのお陰で給料がよかった。\n\n") sleep 2 print("9月3日に高校のクラス会があった。\n\n") sleep 2 print("みんなと会うのが久しぶりだったので楽しみだった。\n\n") sleep 2 print("一次会が飲み屋で飲んだ。\n\n") sleep 2 print("二次会は朝までカラオケだった。\n\n") sleep 2 print("小学校からの幼なじみが3時間以上もトイレから出てこなかったのでびびった。\n\n") sleep 2 print("9月6日から7日にかけては栃木県に遊びにいった。\n\n") sleep 2 print("初日は那須ハイランドパークに行き、つくのが早過ぎて時間潰しに困った。\n\n") sleep 2 print("回るジェットコースターが非常におもしろかった。\n\n") sleep 2 print("二日目はアウトレットパークにいった。\n\n") sleep 2 print("そのあと帰り道だったのでアクアマリン福島にいった。\n\n") sleep 2 print("けっこう遠かったので運転疲れた。\n\n") sleep 2 print("でも楽しかったです。\n\n") sleep 2 print("以上が遠藤くんの夏の思い出だす。\n\n") C. 考えた設定 10,12,14,16,18,20歳の夏の思いでについて年齢を入力すると、年齢、西暦、夏 の思いでを検索できるプログラムを作成した。 ・summer_c.dat #年齢 #西暦 #夏の思い出 10歳 2000 家族でキャンプに行った。 12歳 2002 東京ディズニーランドに行った。 14歳 2004 サッカー大会で準優勝。 16歳 2006 サッカー遠征で鹿島に行った。 18歳 2008 受験勉強。 20歳 2010 アルバイトを頑張った。 ・プログラム本体 #!/usr/koeki/bin/ruby STDERR.print "検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい\n) : " pattern = STDIN.gets.chomp request = Regexp.new(pattern, true, "e") open("summer_c.dat","r") do |age| while summer = age.gets if request =~ summer if /(\S+)\s+(\S+)\s+(\S+)/ =~ summer printf("年齢: %s\n 西暦: %s\n 夏の思い出: %s\n\n", $1, $2, $3,$4) end end end end ・実行結果 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 10歳 年齢: 10歳 西暦: 2000 夏の思い出: 家族でキャンプに行った。 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 12歳 年齢: 12歳 西暦: 2002 夏の思い出: 東京ディズニーランドに行った。 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 14歳 年齢: 14歳 西暦: 2004 夏の思い出: サッカー大会で準優勝。 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 16歳 年齢: 16歳 西暦: 2006 夏の思い出: サッカー遠征で鹿島に行った。 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 18歳 年齢: 18歳 西暦: 2008 夏の思い出: 受験勉強。 pan{c109029}% ./summer_c.rb [~/Ruby] 検索パターン (10、12、14、16、18、20歳から年齢を歳まで入力して下さい ) : 20歳 年齢: 20歳 西暦: 2010 夏の思い出: アルバイトを頑張った。 ・結果の考察 全てにおいて年齢を入力すると西暦、年齢、夏の思い出が表示されるので正しい と言える。数字だけ入力すると10の場合20歳のも表示されるので、歳まで入力し なければならないと分かった。 ・感想 夏休み明けだったが、基本的な操作はしっかりと覚えていたので良かった。分か らない部分は友達と協力しながら行なうことができた。後期も課題をしっかり出 して授業も休まず単位を取れるように頑張って行きたいと思う。 ・参考文献 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング http://roy/~madoka/2010/r1/07/07_02_theme_01_egrep.html 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング http://roy/~madoka/2010/r1/07/07_03_theme_02_japanese.html 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング http://roy/~madoka/2010/r1/07/07_04_theme_03_stdin.html 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング http://roy/~madoka/2010/r1/07/07_07_theme_06_tab.html 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング http://roy/~madoka/2010/r1/07/07_09_theme_08_fileread.html ・共同学習者 木内雄 ・添付ファイル summer_a.rb summer_c.rb summer_c.dat