講評: 筆記の部分がよかったです。それから b のプログラムの 参考文献がきちんと記してありました。 ---- 10 月 3 日 第 1 回レポ−ト 「前期の復習」 学籍番号 : c106XXXX 氏名 : XXXXXXXX 語学クラス : XXXX語 系 : XXXX系 ------------------------------------------------------------------------ 【1】 Canna について・・・Ctrl-i --- 分節を短くする Ctrl-o --- 分節を長くする Ctrl-n * 2 --- カタカナに変換する Emace について・・・Ctrl-x 5 2 --- Emacs の数を分裂させる Ctrl-x 5 0 --- Emacs の数を減らす Ctrl-x Ctrl-f --- 新しいファイルを開く Ctrl-x Ctrl-s --- ファイルを保存する メール について・・・i --- メールの新着を確認する w --- メールの新規作成 A --- メールを返信する (本文引用) a --- メールを返信する (本文引用いない) Ctrl-c Ctrl-i --- 署名が挿入される Ctrl-c Ctrl-q --- 送信しないで終了する Ctrl-c Ctrl-c --- メールを送信する q --- Mewを終了する s all --- 一覧に戻る メールの続きを読む --- 1行次 Enter キー 1画面 スペースバー メールの前の部分に戻る --- 1行前 マイナスキー 1画面 Backspace キー メールの先頭に戻る --- ピリオドキー File について・・・Ctrl-x Ctrl-f --- Emacs でファイルを作る Ctrl-x Ctrl-s --- Emacs でファイルを保存する %以下が ・・・kdir [directory 名] --- directory を作る rmdir [directory 名] --- directory を消す ls -la [directory 名] --- 指定した directory にどんな file があるか確認する ls -la [file 名] --- file があるか確認する rm [file 名] --- file を消す pwd --- どこにいるかを表示する cd [directory 名] --- directory に移動する which command 名 --- 知っている command を探す プログラム について・・・#!/usr/koeki/bin/ruby --- Ruby 言語を使うと宣言する print("") --- print 文という実行文 \n --- 改行 printf("変換指定子",変数) --- printf 文という実行文 変数を使って表示するときに用いる while --- end --- 繰り返しの動作を実行する gets --- 入力されたデータをとりこむ method STDERR.print --- 標準エラー出力で printf を実行する chomp --- 改行文字の有無を調べる to_i --- 文字列を整数へ to_f --- 文字列を小数へ to_s --- 文字列(あるいは数値を)文字列へ if --- end --- if --- end の条件文 【2】 [A] 今年の夏の思い出について語るプログラム summer_a.rb を作る。 1. 考えた設定 print 文と、sleep を組み合わせてプログラム summer_a.rb を作る。 2. 作成したプログラム summer_a.rb について #!/usr/koeki/bin/ruby print("夏の思い出・・・\n\n") # print 文 sleep 2 # 2 杪間をあける print("夏休み中は特に、8 月中がとても忙しかったように思われる。\n\n") sleep 3 # 3 杪間をあける print("8 月前半の 2 週間は、市民参加論と環日本海関係論の\n\n") sleep 3 print("2 つの集中講義を受けた。\n\n") sleep 2 print("講義中の時間がとても長く感じたことを覚えている。\n\n") sleep 3 print("8 月後半からは、毎日のようにバイトが入っていて、\n\n") sleep 3 print("お盆の時期ということもあって、社員も忙しそうだったので、\n\n") sleep 3 print("休みたくても言い出せなかった・・・。\n\n") sleep 2 print("気が付いたら、 9 日間連続出勤をしていて、\n\n") sleep 2 print("ある意味自分の限界を知る良い機会となった。(笑)\n\n") sleep 2 print("お盆ラッシュを終えた後も、結局 7 日間連続出勤を続け、\n\n") sleep 3 print("肉体的にも精神的にも限界が来た頃、\n\n") sleep 2 print("ようやく週 1 度の休みが回って来たが、\n\n") sleep 3 print("何故か、私が休みの日はいつも雨で、\n\n") sleep 2 print("移動手段が自転車くらいしかない私はいつも\n\n") sleep 3 print("家でゴロゴロしていた気がする。(泣)\n\n") sleep 2 print("9 月に入り、同じバイト先の友達が実家から帰って来たため、\n\n") sleep 3 print("その子に変わって、バイト先から 2 週間の休みをもらい、\n\n") sleep 3 print("やっと私にも夏休みが来たと思った。\n\n") sleep 2 print("夏休みに入っているはずなのに、おかしな話だ・・・。\n\n") sleep 2 print("その 2 週間は、丸々実家で過ごした。\n\n") sleep 2 print("普段アパートで自炊しているため、\n\n") sleep 2 print("何もしなくてもご飯が出てくることに、とても感動した。\n\n") sleep 3 print("実家にいるときはとても平和で、高校時代の友達と遊んだりして、\n\n") sleep 3 print("2 週間を有意義に過ごせたと思う。\n\n") sleep 2 print("酒田に戻ってからは、兼ねてからの計画通り、\n\n") sleep 3 print("大学でよく一緒にいる友達と、とても大切な人に会いにいった。\n\n") sleep 3 print("彼女とは 1 ヵ月半振りの再会だった。\n\n") sleep 2 print("お互いの近況報告をしたのち、\n\n") sleep 2 print("カラオケにておおいに盛り上がった。\n\n") sleep 2 print("よく、いつでも会えると思っていても、\n\n") sleep 3 print("実際にはそうはいかないことが多い。\n\n") sleep 2 print("別れ際に、当たり前のようにお互いに \n\n") sleep 2 print("『また会おうね!!』\n\n") sleep 2 print("と言い合ったけど、その言葉に嘘はないし、\n\n") sleep 3 print("本当に会いたいと思っている。\n\n") sleep 2 print("そして、会えることを祈っている。\n\n") sleep 3 print("以上が私の夏休みの思い出である。\n\n") 3. プログラムを実行した結果画面 夏の思いで・・・ 夏休み中は特に、8 月中がとても忙しかったように思われる。 8 月前半の 2 週間は、市民参加論と環日本海関係論の 2 つの集中講義を受けた。 講義中の時間がとても長く感じたことを覚えている。 8 月後半からは、毎日のようにバイトが入っていて、 お盆の時期ということもあって、社員も忙しそうだったので、 休みたくても言い出せなかった・・・。 気が付いたら、 9 日間連続出勤をしていて、 ある意味自分の限界を知る良い機会となった。(笑) お盆ラッシュを終えた後も、結局 7 日間連続出勤を続け、 肉体的にも精神的にも限界が来た頃、 ようやく週 1 度の休みが回って来たが、 何故か、私が休みの日はいつも雨で、 移動手段が自転車くらいしかない私はいつも 家でゴロゴロしていた気がする。(泣) 9 月に入り、同じバイト先の友達が実家から帰って来たため、 その子に変わって、バイト先から 2 週間の休みをもらい、 やっと私にも夏休みが来たと思った。 夏休みに入っているはずなのに、おかしな話だ・・・。 その 2 週間は、丸々実家で過ごした。 普段アパートで自炊しているため、 何もしなくてもご飯が出てくることに、とても感動した。 実家にいるときはとても平和で、高校時代の友達と遊んだりして、 2 週間を有意義に過ごせたと思う。 酒田に戻ってからは、兼ねてからの計画通り、 大学でよく一緒にいる友達と、とても大切な人に会いにいった。 彼女とは 1 ヵ月半振りの再会だった。 お互いの近況報告をしたのち、 カラオケにておおいに盛り上がった。 よく、いつでも会えると思っていても、 実際にはそうはいかないことが多い。 別れ際に、当たり前のようにお互いに 『また会おうね!!』 と言い合ったけど、その言葉に嘘はないし、 本当に会いたいと思っている。 そして、会えることを祈っている。 以上が私の夏休みの思い出である。 4. 工夫したところ print 文のなかにある文章の長さに差があるため、全ての sleep を 2 に 固定してしまうと実行したときに読みにくかった。そこで、最初は文と文の 間に隙間をあけ、さらに、文章が長いところの sleep については、3 にし て、より読みやすいように改良した。 [B]幼少の夏の思い出について語るプログラム summer_b.rb を作る。 何歳の思い出について聞きたいかを尋ねたあと、その年の思い出を語るようにする。 1.考えた設定 if --- end の条件文を使って、年齢を入力するだけでその年の思いで が表示されるようなプログラム summer_b.rb を作る。 2.作成したプログラム summer_b.rb #!/usr/koeki/bin/ruby STDERR.print("0〜20歳までの夏の思い出を語ります。\n\n") sleep 1 while true # while true --- end の条件文 # --- の部分を繰り返す STDERR.print("0〜20までの数字を入力して下さい。\n") STDERR.print("終了は e を押す\n") # STDERR.print 文 # 標準エラー出力で printf を実行する nenrei = gets.chomp # gets # 入力されたデータをとりこむ method # 変数 = gets.chomp # 入力された文字列を切り取る if nenrei == "0" # if --- end の条件文 # 変数 == 条件 # 変数が条件を満たしているときは print(" 0歳 5 月 17 日 生まれる。\n\n") # print 文 sleep 2 # 2 杪間があく elsif nenrei == "1" print(" 1歳 ビニールプール入れてもらった。\n") print(" 沈みそうになったらしい・・・\n\n") sleep 2 elsif nenrei == "2" print(" 2歳 喋り出すのが遅く、この頃ようやく\n") print(" 喋りだす。\n\n") sleep 2 elsif nenrei == "3" print(" 3歳 近くの花火大会に家族で行く。\n") print(" 花火の音に驚いて、大泣きしたらしい・・・\n\n") sleep 2 elsif nenrei == "4" print(" 4歳 海初体験!!\n") print(" 波に引きずられ、全身砂だらけだったらしい・・・\n\n") sleep 2 elsif nenrei == "5" print(" 5歳 幼稚園の夕涼み会にて、\n") print(" 踊りを嫌がり大泣きしたらしい。\n\n") sleep 2 elsif nenrei == "6" print(" 6歳 幼稚園の運動会にて、\n") print(" かけっこで 1 位に・・・。\n\n") sleep 2 elsif nenrei == "7" print(" 7歳 小学校 1 年の夏休み、\n") print(" 宿題の絵日記に大苦戦・・・。\n\n") sleep 2 elsif nenrei == "8" print(" 8歳 小学校 2 年の夏休み、\n") print(" 家族と一緒に家から近くの花火大会を見た。\n\n") sleep 2 elsif nenrei == "9" print(" 9歳 小学校 3 年の夏休み、\n") print(" 母の実家へ泊りに行って、海水浴を楽しんだ。\n\n") sleep 2 elsif nenrei == "10" print(" 10歳 小学校 4 年・・・\n") print(" この頃から学校の部活のソフトボール部に入った。\n\n") sleep 2 elsif nenrei == "11" print(" 11歳 小学校 5 年・・・\n") print(" ソフトボールの大会で、県大会新出した。\n\n") sleep 2 elsif nenrei == "12" print(" 12歳 小学校 6 年・・・\n") print(" 水泳記録会の選手となった。\n\n") sleep 2 elsif nenrei == "13" print(" 13歳 中学校 1 年の夏休み、\n") print(" 小 3 から始めたソフトボールを続け、\n") print("夏休み中毎日練習に励んだ。\n\n") sleep 2 elsif nenrei == "14" print(" 14歳 中学校 2 年・・・\n") print(" 体育祭で優勝した。\n\n") sleep 2 elsif nenrei == "15" print(" 15歳 中学校 3 年・・・\n") print(" ソフトボールで全国大会に出場した。\n\n") sleep 2 elsif nenrei == "16" print(" 16歳 高校 1 年の夏休み、\n") print(" 夏季講習でとても忙しかった。\n\n") sleep 2 elsif nenrei == "17" print(" 17歳 高校 2 年・・・\n") print(" 運動会の学年種目の仮装競技で賞をとった。\n\n") sleep 2 elsif nenrei == "18" print(" 18歳 高校 3 年・・・\n") print(" 夏休みが 1 週間程しかなく、毎日のように課外授業があった。\n\n") sleep 2 elsif nenrei == "19" print(" 19歳 大学 1 年・・・\n") print(" サークルのリーグ戦で個人 2 位となった。\n\n") sleep 2 elsif nenrei == "20" print(" 20歳 大学 2 年の夏休み、\n") print(" ほぼ毎日のようにバイトが入って、忙しかった。\n\n") sleep 2 elsif nenrei == "e" # もし変数 nenrei に文字列 e が入っていれば、 break を実行せよ break # break = プログラムの終了 else print("\n") sleep 1 end end 3.プログラムを実行した結果画面 ( 0 〜 20 までのパターンがあるので、ここでは、 0・5・10・15・20 の 4 パターンの実行結果を表示します。) irsv{c106110}% ./summer_b.rb [~/Ruby] 0〜20歳までの夏の思い出を語ります。 0〜20までの数字を入力して下さい。 終了は e を押す 0 0歳 5 月 17 日 生まれる。 0〜20までの数字を入力して下さい。 終了は e を押す 5 5歳 幼稚園の夕涼み会にて、 踊りを嫌がり大泣きしたらしい。 0〜20までの数字を入力して下さい。 終了は e を押す 10 10歳 小学校 4 年・・・ この頃から学校の部活のソフトボール部に入った。 0〜20までの数字を入力して下さい。 終了は e を押す 15 15歳 中学校 3 年・・・ ソフトボールで全国大会に出場した。 0〜20までの数字を入力して下さい。 終了は e を押す 20 20歳 大学 2 年の夏休み、 ほぼ毎日のようにバイトが入って、忙しかった。 0〜20までの数字を入力して下さい。 終了は e を押す e 4.工夫した点 while --- end の条件文を使って、何度も繰り返すことができるように した。また、break を組み込むことで途中でも終了可能にした。 実行した時の見やすさと、読みやすさを考え、間に sleep を入れ、 各年の思いで話と数字入力の言葉が一気に表示されることを防いだ。 冒頭で、前置として 0 〜 20 の数字を入力するように書いたが、 それ以外を入力してしまったときのために、 print("\n") とあえて 文字を表示せずに空白のままにし、while --- end に対応するように 考え、工夫した。 5.参考文件 前期学んだ 基礎プログラミング I の「 第 3 回 文字の入出力」 の全ての項目を参考にして作成した。 【3】 メールの操作からすでに忘れていて、授業中とても焦った。しかし、出だしから つまずいたかと思いきや、以外にもプログラムに関しては頭で憶えているとい うよりも手が憶えていたといった方が正しいような気がするくらい、スラスラ と作成することができた。そのため、前期よりも自分なりに工夫する事ができ た。次回からも、この調子で頑張りたい。