第 1 回 前期の復習 レポート課題 氏名:浅沼佑香 学籍番号:C1110039 語学クラス:英語1 コース:社会福祉コース 1.A.・Ctrl+1→emacs画面が出る ・Ctrl+2→kterm画面が出る ・Ctrl+3→console画面が出る ・Ctrl+4→firefox画面が出る ・Ctrl+x 5 2→emacs画面が2つになる ・Ctrl+x 5 0→emacs画面がもとに戻る(1つになる) ・Ctrl+x Ctrl+fのあとにファイル名を打つ→ファイルができる ・Ctrl+x iのあとにファイル名を打つ→ファイルのデータ貼ることができる ・Tabキーを何度も叩き、リンク先を囲み、Ctrl Returnを押す→Tabが上に 表示される ・Ctrl+Tを押したあとにCtrl Tabを押す→新しいページが開く ・Shift Tabを何度か押す→リンクが一つ前に戻る ・Ctrl+O→日本語に変わる ・Ctrl+1→フォーカスが画面にいく 〜データファイル・プログラム(emacs)での操作〜 ・Ctrl+nを数回押す→カーソルが1行ずつ下にいく ・Ctrl+bを数回押す→カーソルが1行ずつ上にいく ・Ctrl+eを押す→行の最後にいく ・Ctrl+aを押す→行の最初にいく ・Ctrl+fを押す→その行で1マスずつ移動 ・Ctrl+dを押す→その行で1マスずつ戻る ・Ctrl+kを押す→その行の全体が消える ・Ctrl+x u を押す→改行の動作に戻る ・Ctrl Space→領域を選択 ・Esc+w→選択を複製 ・Ctrl+y→貼り付け ・if/パターン/=~変数→変数がパターンに一致する場合 ・\S+→文字列 ・\s+→空白 ・\d+→数値 ・( )→( )にある文字を優先して探す ・$1→文字列1が優先 ・while 変数 = gets→変数にデータを1行ずつgetsする ・=~→AはBに含まれる ・/ /i→大文字小文字は問わないで検索 ・STDIN→データ処理の方法をキーボードから入力により行う ・Regexp.new→正規表現したい文字列にオプションをつける ・r→読み込みモード ・w→書込みモード ・a→追加モード 〜名前を登録する場合〜 ・Ctrl Space→登録開始 ・Ctrl+Eを押して文字列の最後まで移動 ・M+x canna-touroku-regionと打ってから、Ctrl+Oを押して、平仮名で入力 〜kterm上での操作(検索する場合)〜 ・%./プログラム.rb→プログラム実行 ・.(period)→任意の一文字の候補をとりだす ・?(question mark)→直前の文字を検索 ・*(asterisk)→出現は何回でも良い場合 ・+(plus)→直前の文字が出現しなければならず、その出現は何回でも良い 場合 ・^(caret)→先頭の文字列を調べる ・$(dollar)→末尾の文字列を調べる ・|(vertical lineまたはパイプ)→「または」の意味 ・( )(parenthesis)→( )内で括られた条件を先に探す ・[ ](braket)→[ ]で括られた文字を探す ・[文字1+文字2]→文字1から文字2の範囲の1文字を全てとりだす ・[^(文字1)-(文字2)]→文字1から文字2の範囲以外から1文字とりだす ・mkdir ディレクトリ−名→新しいディレクトリ−をつくる ・pkill→動かなくなったときに使う <ここまでの参考文献> ・基礎プログラミングI 第5回 配列の構造 西村まどか 「プログラムにデータを噛ませるには」 http://roy/~madoka/2012/r1/05/r1_05_12_theme_10_stdin.html 「データの分解」 http://roy/~madoka/2012/r1/05/r1_05_13_theme_11_decomposition.html ・基礎プログラミングI 第6回 正規表現と検索 西村まどか 「うろ覚えの検索」 http://roy/~madoka/2012/r1/06/r1_06_03_theme_01_patternmatching.html 「何回か繰り返されている文字を探したい」 http://roy/~madoka/2012/r1/06/r1_06_04_theme_02_repetation.html 「いくつかある候補を探したい場合」 http://roy/~madoka/2012/r1/06/r1_06_05_theme_03_or.html 「1文字違い」 http://roy/~madoka/2012/r1/06/r1_06_06_theme_04_onecharacter.html ・基礎プログラミングI 第7回 正規表現とRuby言語でのプログラミング 西村 まどか 「データ取り出しプログラム」 http://roy/~madoka/2012/r1/07/r1_07_02_theme_01_regexp_egrep.html 「キーボードから検索文字を入力したい」 http://roy/~madoka/2012/r1/07/r1_07_05_theme_03_regexp_stdin.html 「自動印刷を行うには」 http://roy/~madoka/2012/r1/07/r1_07_16_theme_13_filewrite.html ・基礎プログラミングI 第8回 電子チケットを作ろう 西村 まどか 「HTML文書を自動で作るには」 http://roy/~madoka/2012/r1/08/r1_08_07_theme_01_preperation.html ・その他 メモしたノートをもとに書いた 2.Cを選択した。 2年後期から自分の卒業までの計画を学年・学期別に分けて、計画を調べるこ とができるプログラムを前期で習った「正規表現とRuby言語でのプログラミ ング」を参考にデータ(mydata_c111003.dat)とプログラム(life_open.rb)をそ れぞれ作成した。結果は下の通りである。 <データ(mydata_c111003.dat)> a 2 後期 講義の予習と復習をしっかりやる a 2 後期 ゼミの選択をする a 2 後期 漢字検定2級を受ける a 2 後期 アルバイトを頑張る b 3 前期 社会福祉士の国家資格の勉強をする b 3 前期 単位を落とさないようにする b 3 前期 実習に行く c 3 後期 ニュース時事能力検定を受ける c 3 後期 就活を始める d 4 前期 卒業単位をクリアする d 4 前期 社会福祉士の国家資格の講座を受ける d 4 前期 実習に行く d 4 前期 就職先を決める e 4 後期 卒業論文を完成させる e 4 後期 社会福祉士の国家試験を受ける e 4 後期 卒業 <プログラム(life_open.rb)> #!/usr/koeki/bin/ruby #coding: euc-jp sentaku = Array.new #セメスター gakunenn = Array.new #学年 gakki = Array.new #学期 yotei = Array.new #予定 print("\n2年の後期から4年の後期までの予定を表示します。\n") #文を表示 sleep 2 #2秒空ける print("\n選択しから選んで下さい。\n") #文を表示 sleep 2 #2秒空ける print("a.2年後期") #文を表示 print("b.3年前期") #文を表示 print("c.3年後期") #文を表示 print("d.4年前期") #文を表示 print("e.4年後期\n") #文を表示 sleep 2 #2秒空ける STDERR.print("\nどの予定が知りたいですか?: ") #文を表示 pattern = STDIN.gets.chomp #変数(pattern)に入力された数字をしまう request = Regexp.new(pattern, true) #変数(request)に上のものを正規表現にして代入する open("mydata_c111003.dat","r") do |life| #open文にデータを読み込ませる i = 0 #予定を数える while mydata_c111003 = life.gets #mydata_c111003にデータを代入 if request =~ mydata_c111003 #もしデータの中にrequestと同じものがあるとする if /(\S+)\s+(\d+)\s+(\S+)\s+(\S+)/ =~ mydata_c111003 #データは文字/空白/数字/空白/文字/空白/文字の順である sentaku[1] = $1 #1行目 gakunenn[i] = $2 #2行目 gakki[i] = $3 #3行目 yotei[1] = $4 #4行目 printf("\n%d年%sの予定は %s\n", $2, $3, $4) #検索結果を表示 i += 1 #1つ増える end #if文が終わり end #if文が終わり end #while文が終わり end #open文が終わり <実行結果> 〜aを検索した場合〜 pan{c111003}% ./life_open.rb [~/Ruby] 2年の後期から4年の後期までの予定を表示します。 選択しから選んで下さい。 a.2年後期b.3年前期c.3年後期d.4年前期e.4年後期 どの予定が知りたいですか?: a 2年後期の予定は 講義の予習と復習をしっかりやる 2年後期の予定は ゼミの選択をする 2年後期の予定は 漢字検定2級を受ける 2年後期の予定は アルバイトを頑張る 〜bを検索した場合〜 pan{c111003}% ./life_open.rb [~/Ruby] 2年の後期から4年の後期までの予定を表示します。 選択しから選んで下さい。 a.2年後期b.3年前期c.3年後期d.4年前期e.4年後期 どの予定が知りたいですか?: b 3年前期の予定は 社会福祉士の国家資格の勉強をする 3年前期の予定は 単位を落とさないようにする 3年前期の予定は 実習に行く 〜cを検索した場合〜 pan{c111003}% ./life_open.rb [~/Ruby] 2年の後期から4年の後期までの予定を表示します。 選択しから選んで下さい。 a.2年後期b.3年前期c.3年後期d.4年前期e.4年後期 どの予定が知りたいですか?: c 3年後期の予定は ニュース時事能力検定を受ける 3年後期の予定は 就活を始める 〜dを検索した場合〜 pan{c111003}% ./life_open.rb [~/Ruby] 2年の後期から4年の後期までの予定を表示します。 選択しから選んで下さい。 a.2年後期b.3年前期c.3年後期d.4年前期e.4年後期 どの予定が知りたいですか?: d 4年前期の予定は 卒業単位をクリアする 4年前期の予定は 社会福祉士の国家資格の講座を受ける 4年前期の予定は 実習に行く 4年前期の予定は 就職先を決める 〜eを検索した場合〜 pan{c111003}% ./life_open.rb [~/Ruby] 2年の後期から4年の後期までの予定を表示します。 選択しから選んで下さい。 a.2年後期b.3年前期c.3年後期d.4年前期e.4年後期 どの予定が知りたいですか?: e 4年後期の予定は 卒業論文を完成させる 4年後期の予定は 社会福祉士の国家試験を受ける 4年後期の予定は 卒業 <考察> 調べたいところだけ検索出来た。なのでプログラムは正常だといえる。今度は、 1つずつ予定が出てくるプログラムにしたい。 <ここまでの参考文献> ・基礎プログラミングI 第7回 正規表現とRuby言語でのプログラミング 「データを読み込むようにするには」 西村まどか http://roy/~madoka/2012/r1/07/r1_07_10_theme_08_fileread.html 3.ログインはすぐに出来た。しかし、kterm上でfirefoxやRubyをどうやって立ち 上がらせればよいか、emacs上でどうファイルをつくるのかを忘れてしまい、 すぐに友達にやり方を聞いたり、教え合ったりして操作をおこなった。2ヵ月 以上もパソコンにふれていないと、すぐに操作を忘れてしまうことを知った。 レポートを書く際は、どうやってプログラムを作成すれば忘れてしまい、前期 で学習した西村先生のページをもとに作成した。ページを見てみると、段々前 期で習った内容がよみがえってきた。なので今後も、忘れそうになった場合は、 西村先生のページや友達にきいて、しっかり復習したい。 4.参考文献は各問の一番下に表示 共同学習者 伊藤詩野 / 村上茉奈美 / 佐藤祐子 / 土門千里