第 1 回 前期の復習 レポート課題 氏名:川村明帆 学籍番号:c110207a 語学クラス:英語1 コース:地域共創コース 1、筆記問題 「chmod +x プログラム.rb」とKtermに入力すると実行可能なプログラムとなる。 「./プログラム.rb」とKtermに入力するとプログラムが実行される。 「print」は""内のメッセージを表示する。 「printf」は""内のメッセージに変数内の値を入れ込んで表示する。 「while true -- end」は何度も繰り返す時に使う。 「if -- end」は条件をつけ、その場合のみ実行する時に使う。 「\s」は空白文字列、「\S+」は文字列、「\d+」は数文字列を表す。 「to_i」は値の型を整数に変換する。「to_f」は値の型を実数に変換する。 「to_s」は値の型を文字列に変換する。 「STDIN.gets」はキーボードからの読み込みをするときに使う。 「変数.length」とするとその配列の中に代入されている値を返す。 「Esc-mew」でメールを起動して、「w」で新規メールを作成する。また、 「Ctrl-c Ctrl-c」でメールを送信し、Ctrl-c Ctrl-a c リターンを2回で 添付ファイルする。 新規作成やファイルを開くときは「Ctrl-x Ctrl-f」、保存するときは「Ctrl-x Cntrl-s」。 2、プログラム問題(C選択) (i)考えた設定 「3年10月から3年3月までの予定」「4年4月から4年8月までの予定」「4年9月から4年3 月までの予定」のように期間を3つに分けて予定を確認できるようにした。 (ii)作成したプログラム #!/usr/koeki/bin/ruby #coding: euc-jp bangou = Array.new #Array.newで変数が配列であることを宣言する。 naiyou = Array.new i = 0 print("3年10月から3年3月までの予定を確認したければ「1」を入力\n") print("4年4月から4年8月までの予定を確認したければ「2」を入力\n") print("4年9月から4年3月までの予定を確認したければ「3」を入力\n") STDERR.print("入力して下さい:") a = STDIN.gets.chomp #STDIN.getsはキーボードからの読み込みをするときに使う。 b = Regexp.new(a,true) open("mydata_c110207.dat","r") do |yotei| #mydata_c110207.datのファイルを開く。 while line = yotei.gets #whileは何度も繰り返す時に使う。 if b =~ line #ifは条件をつけ、その場合のみ実行する。 if/(\d+)\s+(\S+)/ =~ line #\sは空白、\S+は文字、\d+は数を表す。 bangou[i] = $1.to_i #to_iで値の型を整数に変換する。 naiyou[i] = $2 i += 1 end #2つ目のifに対するend。 end #1つ目のifに対するend。 end #whileに対するend。 end #openに対するend。 j = 0 while j < bangou.length #bangou.lengthとするとその配列の中に代入されている値を返す。 printf("番号:%d\n", bangou[j]) #入力した番号を表示。 printf("予定:%s\n", naiyou[j]) #予定を表示。 j += 1 end #whileに対するend。 (iii)もとにしたプログラムからの変更点 プログラムの最後の入力した番号と予定を表示するところで、番号と予定を別の 行で表示させるようにした。 (iv)プログラムを実行した結果画面 pan{c110207}% ./life_open.rb [~/Ruby] 3年10月から3年3月までの予定を確認したければ「1」を入力 4年4月から4年8月までの予定を確認したければ「2」を入力 4年9月から4年3月までの予定を確認したければ「3」を入力 入力して下さい:1 番号:1 予定:SPIの勉強や企業研究などをする。履修した科目の単位を修得する。 pan{c110207}% ./life_open.rb [~/Ruby] 3年10月から3年3月までの予定を確認したければ「1」を入力 4年4月から4年8月までの予定を確認したければ「2」を入力 4年9月から4年3月までの予定を確認したければ「3」を入力 入力して下さい:2 番号:2 予定:就職活動に専念する。 pan{c110207}% ./life_open.rb [~/Ruby] 3年10月から3年3月までの予定を確認したければ「1」を入力 4年4月から4年8月までの予定を確認したければ「2」を入力 4年9月から4年3月までの予定を確認したければ「3」を入力 入力して下さい:3 番号:3 予定:就職先が決まり、卒業論文を頑張っている。 (v)導き出された結果の考察 予想通りに結果が表示されたので正常に動いていると思います。 3、感想 「if」「while」「to_i」などプログラム作成に必要なものはおろか、保存やメー ルの送信などの初歩的なコマンドも忘れていました。これらを思い出すために西 村先生や神田先生の講義ノートを見て復習しました。また、レポートは舘澤と一 緒に作成しました。このときは「open」や「if」はどうやって使うのかを話しま した。 4、参考文献 使用したページ:基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング)「券売機のしくみ」 URL:http://roy/~madoka/2012/r1/07/r1_07_14_theme_11_vendingmachine.html 作成者:西村先生 使用したページ:基礎プログラミングI情報検索 URL:http://roy/~naoya/ruby/index.html 作成者:神田先生 共同学習者:舘澤駿介