第1回 前期の復習 レポート課題 氏名:畠山貴衣 学籍番号:c1101709 語学クラス:英語6 コース(系):政策マネジメントコース [1]筆記問題 A 1)UNIXの基本操作 ・ウィンドウは、ショートカットキーを用いることで切り替えが出来る。 Ctrl+1 : Emacsが前面に出て、フォーカスも合う。 Ctrl+2 : Ktermが前面に出て、フォーカスも合う。 Ctrl+3 : Consoleが前面に出て、フォーカスも合う。 Ctrl+4 : Firefoxが前面に出て、フォーカスも合う。 2)Emacsの操作 新規作成 : Ctrl+x Ctrl+f ファイルを開く : Ctrl+x Ctrl+f ファイルの保存 : Ctrl+x Ctrl+s 日本語入力の切り替え : Ctrl+o やり直したいとき : Ctrl+g コピー : マウスで反転 ペースト : 張りたい場所でマウスの真ん中を押す。 Emacsの増加 : Ctrl+x+5+2 3)Ktermの操作 cd : フォルダの移動 ls : フォルダ内のプログラム一覧 chmod +x プログラム名 : 新規プログラムの実行 ls -l : 実行できるか確認できる。 bc -l : Kterm上で計算できる。 ./プログラム名 : プログラムの実行 4)printfの書式制御文字 %d : 整数に置き換える。 %f : 少数に置き換える。 %s : 文字列に置き換える。 5)値の型変メソッド to_i : 値の型を整数に変換する。少数部分は切り捨て to_f : 値の型を実数に変換する。少数を扱うことが出来るようになる。 to_s : 値の型を文字列に変換する。 6)メール ・mewのログインした常態でwを押すとメールの新規作成が出来る。 ・Ctrl+c Ctrl+i : 署名の添付 Ctrl+c Ctrl+a : ファイルの添付 [2]プログラム Cのプログラムを作りました。 AとBのプログラムも作成したので、一緒に添付します。 ------------------------------------------------------------- ●プログラムA (プログラム) 設定:公翔祭を中心とした今年の夏の出来事 #!/usr/koeki/bin/ruby print("今年の夏休み〜主に公翔祭の活動〜\n") sleep(1) print("8月13日 : 夏休み開始\n") sleep(1) print("8月14日 : 帰省\n") sleep(1) print("8月16日 : 地元で成人式をする\n") sleep(1) print("8月17日 : 高校のクラス会\n") sleep(1) print("8月19日 : 地元の祭に参加\n") sleep(1) print("8月21日 : 酒田に帰って来る\n") sleep(1) print("8月22日 : パンフレット案作成\n") sleep(1) print("8月26日 : スポンサーリスト再作成\n") sleep(1) print("9月12日 : 集中会議開始\n") sleep(1) print("9月15日 : スポンサー回りのためのアポ取り\n") sleep(1) print("9月16日 : 集中会議終了\n") sleep(1) print("9月21日 : 夏休み終了\n") sleep(1) (実行結果) pan{c110170}% ./summer_a.rb [~/Ruby] 今年の夏休み〜主に公翔祭の活動〜 8月13日 : 夏休み開始 8月14日 : 帰省 8月16日 : 地元で成人式をする 8月17日 : 高校のクラス会 8月19日 : 地元の祭に参加 8月21日 : 酒田に帰って来る 8月22日 : パンフレット案作成 8月26日 : スポンサーリスト再作成 9月12日 : 集中会議開始 9月15日 : スポンサー回りのためのアポ取り 9月16日 : 集中会議終了 9月21日 : 夏休み終了 (考察) 出来事が1秒毎に表示されたため、プログラムは正常に動いている。 タイトルも分りやすくし、何の事について書かれているか分るようにした。ま た、書き方も統一することで、少しでも見やすいように心掛けた。 ------------------------------------------------------------ ●プログラムB (プログラム) #!/usr/koeki/bin/ruby while true print("\n") print("〜私の夏の思い出〜\n") sleep(1) print("0歳から20歳までの夏の思い出を紹介します。\n") sleep(1) print("\n") print("思い出を見たい歳を入力して下さい。\n") print("(0から20まで)\n") print("終了時は 50 と入力\n") toshi = gets.to_i if toshi == 0 print("生まれて4ヵ月目。泣いてた記憶しかございません。\n") elsif toshi == 1 print("初めて水浴びしました。\n") elsif toshi == 2 print("おばあちゃんの背中に乗って買い物してました。\n") elsif toshi == 3 print("おでこでヨーグルトを食べる業を身に付けました。\n") elsif toshi == 4 print("初めて海に行きました。\n") elsif toshi == 5 print("近所のおばあちゃん家に遊びに行ってました。\n") elsif toshi == 6 print("いとこの人達と毎晩花火\n") elsif toshi == 7 print("友達とプールに通う。真黒に日焼け。\n") elsif toshi == 8 print("去年の日焼けがまだくっきり。\n") elsif toshi == 9 print("がりがり君アイスにハマる。\n") elsif toshi == 10 print("陸上部の練習にあけくれて真黒。\n") elsif toshi == 11 print("バスケ部に変更して更に休み無し。\n") elsif toshi == 12 print("小学最後の大会終えて遊びまくる。\n") elsif toshi == 13 print("中学でもバスケにあけくれる。\n") elsif toshi == 14 print("自分達の代になり、さらにバスケひとすじに。\n") elsif toshi == 15 print("引退してとりあえず勉強…\n") elsif toshi == 16 print("高校1年。部活やばかった。。。\n") elsif toshi == 17 print("夏合宿。アキレス腱切れかかり、1ヵ月部活おやすみ。\n") elsif toshi == 18 print("今度は勉強の夏合宿。暑かった。\n") elsif toshi == 19 print("免許取るのに必死だった夏。\n") elsif toshi == 20 print("成人式があった。楽しかったなあ。。\n") elsif toshi == 50 print("また来てね\n") break elsif print("0から20で選択してね。\n") print("\n") redo end end (実行結果) pan{c110170}% ./summer_b.rb [~/Ruby] 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了時は 50 と入力 5 近所のおばあちゃん家に遊びに行ってました。 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了時は 50 と入力 20 成人式があった。楽しかったなあ。。 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了時は 50 と入力 22 0から20で選択してね。 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了時は 50 と入力 50 また来てね (考察) 0から20までの数字を入力すると、プログラムが正常に動き、それ以外を入力す ると1番始めに戻る。また、50と打つと、プログラムを終了させることが出来る。 このプログラムはwhile trueとifを主に用いているため、誰が見ても理解しや すい作りになっている。しかし、単純なプログラムだけで構成せれているため、 プログラムの量が多くなり、スッキリしないものになってしまった。 -------------------------------------------------------------- ●プログラムC (プログラム) #!/usr/koeki/bin/ruby memo = [] i = 0 open("summer_c.dat","r") do |memory| while line = memory.gets if /\s+(\S+)\s/ =~ line memo[i] = $1 i += 1 end end end while true print("--------------------------\n") print("〜私の夏の思い出〜\n") sleep(1) print("0歳から20歳までの夏の思い出を紹介します。\n") sleep(1) print("\n") print("思い出を見たい歳を入力して下さい。\n") print("(0から20まで)\n") print("終了したいときは 50 と入力!\n") toshi = gets.to_i if toshi == 50 print("See You Again!\n") break elsif printf("%s\n",memo[toshi]) redo end end (問題文) 0 生まれてまだ4ヵ月。 1 初めて水浴びしました。 2 おばあちゃんの背中に乗っていろんなところに行きました。 3 ヨーグルトをおでこで食べる業を身に付ける。 4 初めての海。 5 近所のおばあちゃん家を歩き回る。 6 いとこ達と毎晩花火。 7 地区のプールに通いつめる。真黒。 8 去年の日焼けが残りつつもまたプール通い。 9 がりがり君アイスにハマる。 10 陸上部の練習に明け暮れ、真黒。 11 バスケ部に移動して、更にいそがしくなる。 12 最後の大会を終えて遊びまくる。 13 鬼コーチのもとバスケにあけくれる。 14 バスケ一筋。勉強全くせず。 15 引退して溜った勉強をひたすらやる。 16 部活のメニューがパワーアップ。 17 夏合宿。アキレス腱切れかかる事件。 18 今度は受験まっしぐら。泣きたくなる。 19 免許取るのに全勢力を注ぐ。 20 成人して浮かれまくる。 (実行結果) pan{c110170}% ./summer_c.rb [~/Ruby] -------------------------- 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了したいときは 50 と入力! 2 おばあちゃんの背中に乗っていろんなところに行きました。 -------------------------- 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了したいときは 50 と入力! 19 免許取るのに全勢力を注ぐ。 -------------------------- 〜私の夏の思い出〜 0歳から20歳までの夏の思い出を紹介します。 思い出を見たい歳を入力して下さい。 (0から20まで) 終了したいときは 50 と入力! 50 See You Again! (考察) 別フォルダのの文章をきちんと読みこめていることが確認できた。 終了も問題なく出来たので、プログラムは正常に働いていることが分った。 しかし、終了は"quit"等、文字を入力して読み取りたかったが、何度挑戦して も出来なかったので、数字のまま提出します。 また、while trueで繰り返すとき1行開けたかったが、\nを何処にいれても空か なかったため、線で区切って見やすいように工夫しました。 [3]感想 夏休み全くEMACSに触っていなかったので、画面の切り替えも忘れていたが、今 回の講義で、メールの書き方やEMACSの基本操作等思い出すことが出来ました。 また、Ctrl+x+5+2 など、初めて知ったことのあったので、更に操作しやすく 感じました。 プログラムを作るときも、正規表現の使い方を忘れていたため、思うように 進みませんでしたが、桜子さんと去年のページを見ながら噛み砕いて理解す るように心掛けながら出来たのが良かったと思います。 どうしても出来なかったところもあったが、それでもプログラムCまで完成 させる事が出来たので良かったと思います。 28日に誤って作成中のメールを送信してしまいましたが、完成させたので今 回送り直します。 [4]参考文献 ・神田先生の昨年のページ : http://roy/~naoya/ruby/index.html 協同学習者 : 伊藤桜子 ----------------------------------- 東北公益文科大学  公益学部 公益学科 2年 畠山貴衣  c110170@f.koeki-u.ac.jp