第 1 回 前期の復習 レポート課題 氏名 : 遠藤優太 学籍番号 : c1110306 語学クラス : 英語5 コース : 政策マネジメントコース shift-cを押そうとしてCtrl-cを押してしまって途中で送られてしまいました。 1.筆記問題 (ktermの操作) ・mv_ファイル名_移動先ディレクトリ → フォルダ移動 ・cat_ファイル名 → ファイルを表示する ・cd → スタート地点に戻る ・cp_ファイル_~/ディレクトリ名 → 指定ファイルを指定ディレクトリにコピー ・作成したファイルを実行するときは ./ファイル名 を打ち実行 ・その前にアクセス権が無いので、 chmod +x ファイル名 を打ってから実行 ・計算を確認する場合は、bc -lを活用 終わる場合はquit (emacsの操作) ・C-x , C-f → ファイルを開く&新規作成 ・C-x , C-s → ファイル保存 ・C-g → 困った時に押す ・C-o → 日本語入力のon/off ・プログラムを書くときは冒頭に #!/usr/koeki/bin/ruby #coding: euc-jp を忘れずに書くこと ・変数に代入する値が文字列の場合、""を使用して表示させる ・\n → printメソッドやprintfメソッドの中で改行させる ・変数 = gets → キーボードからの入力を文字列として変数に代入する ・変数.to_i → 変数の値を整数に変換 ・変数.to_f → 変数の値を実数に変換 ・変数.to_s → 変数の値を文字列に変換 printfメソッドで指定した変数を値を変えて置き換える際に使用 %d → 10進整数の文字列で表示 %b → 2進整数の文字列で表示 %x → 16進整数の文字列で表示 %f → 10進小数の文字列で表示 %s → 文字列で表示 %整数d → 指定している整数分の桁で10進整数の文字列を表示 ・代入演算子 加算(+)、減算(-)、乗算(*)、除算(/)、剰余(%)、べき乗(**) ・理論演算子 == :左辺と右辺が等しい < :左辺が右辺よりも小さい <= :左辺が右辺以下 > :左辺が右辺よりも大きい >= :左辺が右辺以上 && :かつ(論理積) || :または(論理和) ! :否定 not :否定 ・代入演算子 → 左辺の変数にに右辺の変数や文字列や数字を代入 通常代入(=)、加算代入(+=)、 減算代入(-=) 乗算代入(*=)、除算代入(/=)、 剰余代入(%=)、べき乗代入(**=) ・if分 → 条件判断の時に使用 if 条件a aであれば 処理A Aの処理 elsif 条件b bであれば 処理B Bの処理 else それ以外なら 処理E Cの処理 end if文を締める(これがないとプログラムが作動しないので注意) ・while true → 繰り返し while true 繰り返したい処理 if 条件a aであれば break 繰り返しから抜ける elsif 条件b bであれば redo その回の繰り返しを無効にし、その回の先頭からやり直す elsif 条件c cであれば next その回の繰り返しを無効にし、次の繰り返しに突入する end end ・配列 → 変数の中にいくつかの要素を順番に代入していく ・配列にしたい変数はプログラムの始めに 変数 = [] または 変数 = Array.new ・配列の中身の表示の仕方 0番目の要素→変数[0]、一番目の要素→変数[1]…… ・配列の初期値設定 変数 = [10(0番目の要素),20(1番目の要素)] → [10,20] 変数 = Array.new(5(長さ),10(初期値)) → [10,10,10,10,10] ・正規表現 → メタ文字を使ってファイルの中身、変数の中身を検索する if/メタ文字/=~変数やファイル名 メタ文字 → 指定した文字にマッチさせる 空白(\s)、空白以外(\S)、数字(\d)、英数字(\w)など 後方参照 → 正規表現内でとりだしたい部分を()でくくる 一つ目を$1、二つ目を$2…として取り出せる ・openメソッド → プログラムの中で使用し、ファイルを指定することで指定し たファイルを読み込んだり、ファイルに書きこんだりする open("ファイル","モード")do|変数| end モード … r 読み込み専用 w 書きこみ専用(上書き) a 書きこみ専用(追加) (Mewの操作) ・C-c , C-a メールにファイルを添付 ・g,+draft → 保存している書きかけのメールを一覧表示 ・(上記の続き)続きを書きたいメールにカーソルを合わせて E 前期のレポート課題のときに良く活用した 2.プログラム問題 A , Cをしてみた。 A. 今年の10月から卒業するまでの自分の計画を語るプログラムを作成した。 卒業まで全て書くと量があるので、ある程度おおざっぱに計画を書いて行った。 また、月表記にするとデータがゴチャゴチャになると思ったため番号という表記 にした。 実行プログラム life_print.rb #!/usr/koeki/bin/ruby #coding:euc-jp tuki = [] yotei = [] i = 0 open("life_print.dat","r")do|y| while line = y.gets if /(\d+)\s+(\S+)/ =~ line tuki[i] = $1 yotei[i] = $2 i += 1 end end end s = 0 while true printf("%s\n",yotei[s]) s += 1 if s == tuki.length break end end 使用したデータ life_print.dat 番号 計画 1 おそらくゼミを決めているだろう。 2 自分の進路について具体的に考えているだろう。 3 寒い中真面目に授業に参加しているだろう。 4 新年、そろそろ専門的な自学をしているだろう。 5 期末試験が終わり、春休みになっているだろう。 6 春休みだけど勉強しているだろう。 7 3年になる。 8 授業の他に講座が始まっているだろう。 9 ゼミが決まって卒論に向けて取り組んでいるだろう。 10 就活が始まっているだろう。 11 たくさんの会社の説明会に参加しているだろう。 12 希望する会社が決まりそこの対策を立てているだろう。 13 エントリーシートや面接の対策を勉強と同時進行しているだろう。 14 長期休みは毎日勉強しているだろう。 15 4年になる。勝負の一年となる。 16 希望の就職先の試験を受ける。 17 無事決まる。 18 卒論を提出する。 19 卒業単位を無事取り終える。 20 無事卒業。 実行結果 pan{c111030}% ./life_print.rb [~/Ruby] おそらくゼミを決めているだろう。 自分の進路について具体的に考えているだろう。 寒い中真面目に授業に参加しているだろう。 新年、そろそろ専門的な自学をしているだろう。 期末試験が終わり、春休みになっているだろう。 春休みだけど勉強しているだろう。 3年になる。 授業の他に講座が始まっているだろう。 ゼミが決まって卒論に向けて取り組んでいるだろう。 就活が始まっているだろう。 たくさんの会社の説明会に参加しているだろう。 希望する会社が決まりそこの対策を立てているだろう。 エントリーシートや面接の対策を勉強と同時進行しているだろう。 長期休みは毎日勉強しているだろう。 4年になる。勝負の一年となる。 希望の就職先の試験を受ける。 無事決まる。 卒論を提出する。 卒業単位を無事取り終える。 無事卒業。 無事データを表示できた。 しかし月表記にできなかったのが残念だった。 機会があれば挑戦したい。 C. 正直Aとの違いが分からなかったので、 データを mydata_c111030.dat, 読み込んで実行するプログラムを life_open.rb とし 新しいファイル名として作り替えた。 実行するプログラム life_open.rb #!/usr/koeki/bin/ruby #coding:euc-jp tuki = [] yotei = [] i = 0 open("mydata_c111030.dat","r")do|y| while line = y.gets if /(\d+)\s+(\S+)/ =~ line tuki[i] = $1 yotei[i] = $2 i += 1 end end end s = 0 while true printf("%s\n",yotei[s]) s += 1 if s == tuki.length break end end 使用するデータ mydata_c111030.dat 番号 計画 1 おそらくゼミを決めているだろう。 2 自分の進路について具体的に考えているだろう。 3 寒い中真面目に授業に参加しているだろう。 4 新年、そろそろ専門的な自学をしているだろう。 5 期末試験が終わり、春休みになっているだろう。 6 春休みだけど勉強しているだろう。 7 3年になる。 8 授業の他に講座が始まっているだろう。 9 ゼミが決まって卒論に向けて取り組んでいるだろう。 10 就活が始まっているだろう。 11 たくさんの会社の説明会に参加しているだろう。 12 希望する会社が決まりそこの対策を立てているだろう。 13 エントリーシートや面接の対策を勉強と同時進行しているだろう。 14 長期休みは毎日勉強しているだろう。 15 4年になる。勝負の一年となる。 16 希望の就職先の試験を受ける。 17 無事決まる。 18 卒論を提出する。 19 卒業単位を無事取り終える。 20 無事卒業。 実行結果 pan{c111030}% ./life_open.rb [~/Ruby] おそらくゼミを決めているだろう。 自分の進路について具体的に考えているだろう。 寒い中真面目に授業に参加しているだろう。 新年、そろそろ専門的な自学をしているだろう。 期末試験が終わり、春休みになっているだろう。 春休みだけど勉強しているだろう。 3年になる。 授業の他に講座が始まっているだろう。 ゼミが決まって卒論に向けて取り組んでいるだろう。 就活が始まっているだろう。 たくさんの会社の説明会に参加しているだろう。 希望する会社が決まりそこの対策を立てているだろう。 エントリーシートや面接の対策を勉強と同時進行しているだろう。 長期休みは毎日勉強しているだろう。 4年になる。勝負の一年となる。 希望の就職先の試験を受ける。 無事決まる。 卒論を提出する。 卒業単位を無事取り終える。 無事卒業。 こちらも無事データを表示することができた。 構造はAと同じなので同じ感想。 3.感想 筆記問題は復習に時間がかかってしまったが、もう一度学習することができた。 久しぶりにプログラムを作ったので何時もより時間がかかったり、ボタンを押し 間違えるなどアクシデントが起きてしまった。 以後、気を付けたいと思います。 次回からも頑張って自分のやれる範囲を一所懸命頑張ります。 参考文献 http://roy/~madoka/2012/r2/01/rpt/rpt.html http://roy/~madoka/2012/r2/01/lec/resume.html http://roy/~madoka/2012/r2/01/