第 1 回 前期の復習 レポート課題 氏名:樋口千穂 学籍番号:c1111240 語学クラス:中国語3 コース:政策マネジメント 1.筆記問題 A.前期で学んだ項目のまとめ ☆ウィンドウの切り替え☆ Ctrl + 1 で emacs のウィンドウを表示 Ctrl + 2 で kterm のウィンドウを表示 Ctrl + 3 で console のウィンドウを表示 Ctrl + 4 で firefox のウィンドウを表示 kterm で firefox& と入力すると firefox が起動 console で exit と入力すると終了 ls ファイルやディレクトリを探すことができる。 cd 自分のホームディレクトリに出たり入ったりできる。 Ctrl + o 日本語入力 Ctrl + p(n) カタカナ入力 ☆Emacs の使い方☆ ファイルを開く Ctrl-x Ctrl-f ファイルを保存 Ctrl-x Ctrl-s Emacs を分裂させる Ctrl-x 5 2 Emacs の数を減らす Ctrl-x 5 0 ☆添付メールの送信方法☆ ・Emacs の画面で Esc-x mew と入力し mew を立ち上げる。 ・w で新規メール作成 ・Ctrl + c Ctrl + a と入力してから c を押し、添付したいファイル名を入力し て添付する。 ・Ctrl + c Ctrl + c と入力してから y を押し、送信する。 ・正しく送信できたかを確認するために i を押し 自分の学籍番号(下一桁を省 いたもの) + dayo と入力して inbox をみる。 ☆作成したプログラムを貼り付ける時☆ Ctrl + x i と入力し貼り付けたいプログラム名を入力する。 ☆作成したプログラムを実行するには☆ (kterm で) chmod +x 変換したいファイル名 を入力し ./ ファイル名でプログラムを実行させる kterm で困ったら Ctrl + c emacs で困ったら Ctrl + g ☆プログラムについて☆ プログラムの1行目には、#!/usr/koeki/bin/ruby と入力する。 \n 改行文字 \t 空白文字 ☆print と printf の使いわけ☆ print 文章をそのまま表示 printf 変化させて表示(計算等した結果を) %d 10進整数の文字列で表示 %f 10進小数の文字列で表示 %s 文字列で表示 変数の値を整数に変換 to_i 変数の値を小数へ変換 to_f 変数の値を文字列へ変換 to_s # コメント文 # 以下をコンピュータは読み取ることができないため、メモとして使用する ☆算術演算子☆ 加算(+)、減算(-)、乗算(*)、除算(/)、剰余(%)、べき乗(**) ・if文 条件判断 if 条件a aであれば 処理A Aの処理 elsif 条件b bであれば 処理B Bの処理 else それ以外なら 処理C Cの処理 end if文を終わる ・while true 繰り返し(繰り返し条件を満たすまで同じ処理を反復させる) while true 繰り返したい処理 if 条件a aであれば break 繰り返しから抜ける elsif 条件b bであれば end end ・openメソッド(ファイルを指定することで指定したファイルを読み込んだり、 ファイルに書きこんだりする。) open("ファイル","モード")do|変数| end モードとは … r :読み込み専用 w :書き込み専用(上書き) 2.プログラム問題 選択した問題 : C ◯life_open.rb◯ ◯設定◯ 2012.10 〜 2015.03 までで知りたい年月を入力すると、その月の自分の計画を データから読み込んで表示するプログラム。 ◯作成したプログラム◯ #!/usr/koeki/bin/ruby # coding: euc-jp hizuke = Array.new # 日付 plan = Array.new # 計画 print("2012.10から2015.03までの自分の計画を語ります。\n\n") print("※ 年 .月 の形で知りたい時期を打ち込んで下さい ※\n") print("※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※\n\n") #プログラムの説明と注意事項 STDERR.print("何年何月の計画を見ますか?\n") #年月を入力してもらう。 pattern = STDIN.gets.chomp # 与えられた数字を1行ずつ読み込む request = Regexp.new(pattern,true) # 前で読み込んだものを正規表現に変える open("mydata_c111124.dat","r") do |life| # mydate_c111124.datを読み取り、lifeという名前に置き換える i = 0 # 配列番号 while pl = life.gets # 繰り返して life の中身がなくなったら終わる if request =~ pl # request がplなら if /(\S+)\s+(\S+)/ =~ pl hizuke[i] = $1 # 1番目のSにhizukeを読み込む plan[i] = $2 # 2番目のSにplanを読み込む printf("%s : %s \n", hizuke[i], plan[i]) i += 1 # 次のものを読み込むために +1 をする end # if を終わる end # if を終わる end # while を終わる end # open を終わる ◯作成したデータ◯ #日付 #計画 2012.10 後期も始まり課題に追われる。アルバイトを辞める。 2012.11 新しいアルバイトを始める。 2012.12 ディズニーシーに行く。 2013.01 初売りに行ってたくさん服を買う。 2013.02 春休み前の試験を乗り切る。中国語検定3級を受ける。 2013.03 友達とたくさん遊ぶ。アルバイトも頑張る。 2013.04 無事に3年生になる。 2013.05 公務員試験の勉強をする日々を送る。 2013.06 講義を毎日真面目に受ける。 2013.07 試験に向けて更に勉強漬けの日々を送る。 2013.08 夏休み。海に行く。 2013.09 就活に向けて髪の毛を黒染する。 2013.10 講義があまりないため、メディアセンターで自学。 2013.11 就活モード一色。 2013.12 自分の進路に向けて努力中。 2014.01 息抜きで買い物。ほどほどに遊ぶ。 2014.02 就活又は公務員試験の勉強。 2014.03 就活又は公務員試験の勉強。 2014.04 無事に4年生になる。 2014.05 就活又は公務員試験の勉強。 2014.06 内定をもらう又は公務員試験の勉強。 2014.07 内定をもらう亦は公務員試験の勉強。 2014.08 夏休み。ほどほどに遊んで息抜き。 2014.09 進路決定。 2014.10 ゼミでしか学校に来ない。 2014.11 卒論に取り組む。友達と遊ぶ。 2014.12 卒論に取り組む。 2015.01 卒論に取り組む。 2015.02 卒業旅行で海外に行く。 2015.03 無事に卒業。 ◯もとにしたプログラム◯ regexp_stdin.rb ◯実行結果◯ pan{c111124}% ./life_open.rb [~/Ruby] 2012.10から2015.03までの自分の計画を語ります。 ※ 年 .月 の形で知りたい時期を打ち込んで下さい ※ ※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※ 何年何月の計画を見ますか? 2013.02 2013.02 : 春休み前の試験を乗り切る。中国語検定3級を受ける。 pan{c111124}% ./life_open.rb [~/Ruby] 2012.10から2015.03までの自分の計画を語ります。 ※ 年 .月 の形で知りたい時期を打ち込んで下さい ※ ※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※ 何年何月の計画を見ますか? 2014.05 2014.05 : 就活又は公務員試験の勉強。 pan{c111124}% ./life_open.rb [~/Ruby] 2012.10から2015.03までの自分の計画を語ります。 ※ 年 .月 の形で知りたい時期を打ち込んで下さい ※ ※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※ 何年何月の計画を見ますか? 2015.03 2015.03 : 無事に卒業。 ◯考察◯ 注意通りに年月を入力するとプログラムは正常に起動し、年月と計画がデータ通 りに表示されたので、このプログラムは正しいといえる。 ☆注意通りに入力しなかった場合☆ ( 03と入力した場合) 予想 : 0 と 3 の数字が入った年月の計画全てが表示される。 実行してみると pan{c111124}% ./life_open.rb [~/Ruby] 2012.10から2015.03までの自分の計画を語ります。 ※ 年 .月 の形で知りたい時期を打ち込んで下さい ※ ※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※ 何年何月の計画を見ますか? 03 2013.03 : 友達とたくさん遊ぶ。アルバイトも頑張る。 2014.03 : 就活又は公務員試験の勉強。 2015.03 : 無事に卒業。 と表示された。 予想通りに0 と 3 の数字が入った年月の計画全てが表示されるという事が分かっ た。 ( 2012.1 と入力した場合) 予想 : エラーになる。 実行してみると pan{c111124}% ./life_open.rb [~/Ruby] 2012.10から2015.03までの自分の計画を語ります。 ※ 年 .月 の形で知りたい時期を打ち込んで下さい ※ ※ また、月が一桁の場合は、01、02、03のように初めに 0 を付けてください ※ 何年何月の計画を見ますか? 2012.1 2012.10 : 後期も始まり課題に追われる。アルバイトを辞める。 2012.11 : 新しいアルバイトを始める。 2012.12 : ディズニーシーに行く。 と表示された。 予想とは異なり 1がつく月全てが表示されるということが分かった。 よって注意通りに入力しないと正しく表示されないという事が証明できた。 3.感想 休みを挟んだことで忘れてしまっている操作がたくさんあったが、自分の前期 のノートや講義ノートをみながら操作を思い出すことができたので良かった。 Emacs の操作自体はだいたい覚えていたがプログラム内の型変換メソッドや書式 制御文字などがあやふやだった為、筆記問題を通して復習することができたので 良かった。今回の課題は前期で作成したプログラムを参考にして作ることができ たので良かったが、次回からはもっと難しくなると思うので友人と協力し合いな がら時間をかけて取り組んでいきたいと思う。 4.参考文献 webサイト:http://roy/~madoka/2012/r2/01/r2_01_01_theme_01_application.html 西村まどか、基礎プログラミング II 第 1 回 (前期の復習) 「応募書類を 作ってみよう」 webサイト:http://roy/~madoka/2012/r1/07/r1_07_12_theme_09_candidate.html 西村まどか、基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログ ラミング) 「候補駅を選べるようにするには」 webサイト:http://roy/~madoka/2012/r1/09/r1_09_01_review_01_fileopen.html 西村まどか、基礎プログラミング I 第 9 回 (Ruby であそぼ / 広告ページの作 成) 「ファイルの入出力に関して」 5.共同学習者 千葉すずな