第1回 基礎プログラミング II レポート課題 氏名: xxxxxxxx 学籍番号: C109xxx 語学クラス: 英語3 コース(系): 地域共創 1.筆記問題 A. ○画面の切り替え Ctrl 1 … emacs Ctrl 2 … Kterm Ctrl 3 … console Ctrl 4 … firefox Ctrl x 5 2 … 画面を一つ増やす。 Ctrl x 5 0 … 画面を一つ減らす。 Kterm上で「firefox&」で、学生専用サーバへ行ける。 ○ディレクトリの作成 Kterm上で、「mkdir ディレクトリ名」を入力する。 ※ディレクトリはWindowsで言うフォルダにあたるので、 プログラムの前に作成しておく。 ○プログラムの作成 (1)emacs上で、「Ctrl x Ctrl f」。 (2)プログラム名を入力する。プログラム名の前にディレクトリ名を入力し ておけば、そのディレクトリにプログラムが作成される。 (3)「Ctrl x、Ctrl s」で保存。ある程度打ち込んだら、一度保存しておい た方がいい。 ・プログラム本文の最初には「#!/usr/koeki/bin/ruby」を入力する ・作業中に困った場合は「Ctrl g」 ○作成したプログラムの実行 (1)Kterm上で「cd ディレクトリ名」を入力する。これで入力したディレク トリに操作変更される。 (2)Kterm上で「chmod +x プログラム名」を入力する。 (3)「ls」でディレクトリの中にあるプログラムが全て表示される。プログ ラム名の右に「*」があればOK。 (4)「./プログラム名」で実行できる。 ◯計算 Kterm上で「bc -l」、戻る時は「Ctrl d」か「quit」を入力。 レポート課題の考察では計算が合っているかを確認しなければ ならないので、重要なこと。 ◯trrを出す(大画面) 何もない画面を左クリックし、「Emacs24」を押す。 ◯メール Emacsで「Esc x mew」を入力する。 ・新着確認 … i ・新規作成 … w ・未送信メール … g ・編集 … Shift e ・メール送信 … 「Ctrl c Ctrl c」の後、送信は「y」、中止は「n」。 ・ファイル添付 … 「Ctrl c Ctrl a」の後、「c」を押してファイル名を 入力。 本文には必要なことを書いて送信しなければいけない。 氏名、学籍番号、語学クラスなどは必要事項。添付ファイルがある場合は、 何のファイルなのかをファイル名と一緒に記載する。 2.プログラム問題 A. ●プログラム本体● #!/usr/koeki/bin/ruby print("夏休みの思い出(アルバイトなど)\n\n") sleep 1 print("8月7日、友人と鶴岡で一日遊んだ。\n\n") sleep 1 print("8月9日、お盆が近くなってバイトが忙しくなる。\n\n") sleep 1 print("8月10日バイト、昔の知り合いとばったり会う。\n\n") sleep 1 print("8月11日バイト、客の数が凄まじく増えた。\n\n") sleep 1 print("8月12日バイト、1時間以上も喋り続けて脱水症になりかけた。\n\n") sleep 1 print("8月13日、久々の休みを満喫。\n\n") sleep 1 print("8月31日、バイトの給料で折り畳みチャリを買う。\n\n") sleep 1 print("9月4日、友人と山形まで遊びに行った。\n\n") sleep 1 print("9月21日、明日から後期が始まることに、はじめて気付く。\n\n") sleep 2 print("以上、\n") sleep 0.5 print("遊びとバイトばっかりの夏休みでしたー!\n\n") sleep 1 print(`banner "E N D"`) ◯考えた設定 「夏休みのアルバイトやその他について」 ◯実行結果 pan{c109014}% ./summer_a.rb [~/Ruby] 夏休みの思い出(アルバイトなど) 8月7日、友人と鶴岡で一日遊んだ。 8月9日、お盆が近くなってバイトが忙しくなる。 8月10日バイト、昔の知り合いとばったり会う。 8月11日バイト、客の数が凄まじく増えた。 8月12日バイト、1時間以上も喋り続けて脱水症になりかけた。 8月13日、久々の休みを満喫。 8月31日、バイトの給料で折り畳みチャリを買う。 9月4日、友人と山形まで遊びに行った。 9月21日、明日から後期が始まることに、はじめて気付く。 以上、 遊びとバイトばっかりの夏休みでしたー! ####### # # ###### # ## # # # # # # # # # ##### # # # # # # # # # # # # # ## # # ####### # # ###### ◯考察 とりあえず実行できることは確認出来た。 文と文が上下くっついていると見づらいと感じたので、\nを一つずつ増やして 見やすくした。 また、print文だけだとなんか物足りないと思ったので、バナーを使ってみた。 B. ●プログラム本体● #!/usr/koeki/bin/ruby print("\n") print("自分の夏の思い出を語りたいと思います。") print("\n") STDERR.print("何歳の話が聞きたいですか? : ") # 聞きたい年齢を入力 age = gets.to_i if age == 0 #もしageが0の場合 hanasi = "眠ってばかりだったらしいわー" elsif age == 7 #その他で、もしageが7の場合 hanasi = "放課後は毎日遊んでいた気がするわー" elsif age == 9 hanasi = "スポ少の野球に入って頑張っていたなぁ" elsif age == 13 hanasi = "野球部に入ったので、ほとんど友達と遊べなかったなぁ…" elsif age == 16 hanasi = "この頃はかなり勉強がんばっていたなぁ" elsif age == 17 hanasi = "とにかく毎日遊んでいたかも" elsif age == 18 hanasi = "試験勉強と部活が忙しかったー" elsif age == 19 hanasi = "バイト三昧で忙しい毎日だったなぁ" else hanasi = "覚えていませーん" #それ以外 end print("\n") printf("%d 歳の夏\n", age) sleep 1 printf("「%s。」 \n", hanasi) ◯実行結果 -------------------------------------------- pan{c109014}% ./summer_b.rb [~/Ruby] 自分の夏の思い出を語りたいと思います。 何歳の話が聞きたいですか? : 7 7 歳の夏 「放課後は毎日遊んでいた気がするわー。」 -------------------------------------------- pan{c109014}% ./summer_b.rb [~/Ruby] 自分の夏の思い出を語りたいと思います。 何歳の話が聞きたいですか? : 16 16 歳の夏 「この頃はかなり勉強がんばっていたなぁ。」 -------------------------------------------- pan{c109014}% ./summer_b.rb [~/Ruby] 自分の夏の思い出を語りたいと思います。 何歳の話が聞きたいですか? : 17 17 歳の夏 「とにかく毎日遊んでいたかも。」 -------------------------------------------- pan{c109014}% ./summer_b.rb [~/Ruby] 自分の夏の思い出を語りたいと思います。 何歳の話が聞きたいですか? : 1 1 歳の夏 「覚えていませーん。」 -------------------------------------------- ◯考察 プログラム本体で指定されていた通り、「7」と入力すれば elsif age == 7 hanasi = "放課後は毎日遊んでいた気がするわー" の結果が表示された。 また、それ以外の数字を入力すれば else hanasi = "覚えていませーん" の結果が表示された。 よって、このプログラムは正しく実行できていた。 C. ●プログラム本体● #!/usr/koeki/bin/ruby print("昔の夏の思い出を語りたいと思います。\n") STDERR.print("何歳?(00歳から19歳まで) : ") tosi = STDIN.gets.chomp #入力したものを文字列にする request = Regexp.new(tosi, true, "e") sleep 1.5 open("summer_c.dat", "r") do |hanasi| while summer = hanasi.gets if request =~ summer if /(\S+)\s+(\S+)/=~ summer printf("\n\n %s 歳の思い出\n %s\n", $1, $2) end end end end sleep 1 print("\n「あー、こんなこともあったなぁ…。」\n") ●データ本体● 00 眠ってばっかりだったらしい。 01 眠ってばっかりだったらしい。 02 言葉を話し出したらしい。 03 家を引っ越した。 04 保育園に入った? 05 遊ぶ毎日。 06 毎日、放課後は友達と遊んでいた。 07 自転車の練習を何回もやっていた。 08 スポ少の野球に入って、頑張っていた。 09 覚えていない。 10 家でネコを飼い始めた。 11 覚えていない。 12 中学は野球部に入って、休みのほとんどを部活に取られた! 13 部活、部活、部活の毎日! 14 とにかく遊びまくった! 15 色々と面倒なことがたくさん起きた休みだった。 16 部活に没頭していた毎日。 17 試験勉強と部活が忙しかったー。 18 暇!! 19 バイトと遊びばっかりで、意外と忙しかった。 ◯実行結果 -------------------------------------------- pan{c109014}% ./summer_c.rb [~/Ruby] 昔の夏の思い出を語りたいと思います。 何歳?(00歳から19歳まで) : 00 00 歳の思い出 眠ってばっかりだったらしい。 「あー、こんなこともあったなぁ…。」 -------------------------------------------- pan{c109014}% ./summer_c.rb [~/Ruby] 昔の夏の思い出を語りたいと思います。 何歳?(00歳から19歳まで) : 19 19 歳の思い出 バイトと遊びばっかりで、意外と忙しかった。 「あー、こんなこともあったなぁ…。」 -------------------------------------------- ◯考察 データから取りだして、それを表示できていた。 00 眠ってばっかりだったらしい。 19 バイトと遊びばっかりで、意外と忙しかった。 よって、このプログラムは正しく実行できていた。 ◯参考ファイル「std_regexp.rb」 3.感想 講義でやった基本的なことを意外にたくさん忘れていたので、今回のレポート 課題は良い機会でした。今のうちに前期の復習をやっておきたいと思います。 今回は後期の基礎プロの第1回目で出だしを良くしていきたいと思い、頑張っ てC問題まで取り組んでみました。やはり大変な作業ですが、自分のためになる ので次回も取り組んでいきたいです。とにかく遅れないように頑張っていきたい と思います。 4.参考文献 ◯Rubyプログラミング基礎講座 著:広瀬雄二 9ページ…ファイルの操作 共同学習者 ・佐藤裕康 ・藤井駿