第1回 基礎プログラミング II レポート課題 氏名:伊藤 彩 学籍番号:c1090207 語学クラス:中国語 コース(系):政策 間違えてレポート課題の宛て先に出席課題の内容を送ってしまったので送り直し ます。 1.筆記問題 A.前期で学んだこと ・ログインの仕方 ユーザー名 c109xxx を入力後 Returnキーをタイプする。 次にパスワードを入力後 Returnキーをタイプする。 ・ログアウトの仕方 Ctrl + 3 で console の画面を開き、exit と入力後 Returnキーをタイプする。 ・Ctrl + 1 emacs の画面に移動。メールの作成、保存、送受信はこの画面で出来る。 ・Ctrl + 2 Kterm の画面に移動。 %firefox & でブラウザが開ける。 ・Ctrl + 3 console の画面に移動。%exit でログアウトができる。 ・Ctrl + 4 開いたブラウザの画面に移動。 ・Ctrl + o 日本語入力とアルファベット入力の切り替え。 ・Ctrl + g 困った時に Quit とする。 ・Ctrl + c プログラム実行時に暴走した場合、暴走を止める。 ・Ctrl + x Ctrl + s 作成中のメールやプログラムを保存する。 ・Ctrl + Tab ページの切り替えを行なう。 ・Ctrl + x Ctrl + f 新規ファイルの作成。 ・Ctrl + x 5 2 emacs の画面が増える。 ・Ctrl + x 5 0 emacs の画面が減る。 ・Ctrl + x 2 emacs の画面上で行なうと、画面が分割される。 ・Ctrl + x 1 emacs の画面上で行なうと、分割された画面がもとに戻る。 ・Ctrl + n マウスを使わずにカーソルを下に動かす。 ・Ctrl + p マウスを使わずにカーソルを上に動かす。 ・Ctrl + e マウスを使わずにカーソルをその行の文末(一番右)に動かす。 ・Ctrl + a マウスを使わずにカーソルをその行の文頭(一番左)に動かす。 ・Ctrl + f マウスを使わずにカーソルを文字をたどって右へ動かす。 ・Ctrl + b マウスを使わずにカーソルを文字をたどって左へ動かす。 ・Ctrl + k マウスを使わずに、カーソルのある場所から右側の文を消す。 ・Ctrl + x u 一つ前の状態へ戻す。 ・Ctrl + Space 切り取り、コピーしたい領域の選択を開始する。→キーで範囲を指定(ドラック)できる。 ・Esc w 切り取り、コピーしたい領域の選択を終了する。(ドラック終了) ・Ctrl + w 領域をの選択した部分が切り取られる。 ・Ctrl + y 領域の選択した部分がコピーされる。または切り取った部分が張り付けされる。 Shift + Tab ページの最後に移動する。 プログラム実行の手順 ・Ctrl + 2 でKterm の画面に移動する。 ・cd Ruby で Ruby の中に入る。 ・ls で作成したファイルがあるか確かめる。 ・プログラムを実行可能な状態にするために chmod +x ファイル名 を入力する。 ・./ファイル名 でプログラムを実行する。 エラーが発生した場合、指定された行か、その行の前が間違っていることが多い。 2.プログラム問題 A. a.設定 「畑仕事を手伝ったことについて語るプログラム」を作成する。文章が実行画面 にきちんと表示させることが目的なので print 文を用いて作成すればよいと考 えた。また、プログラムに工夫を加えることで、実行時に文章の表示の仕方が変 わると思い、sleep で文章が表示される秒数を指定するプログラム構成としたい と考えた。 b.作成したプログラム #!/usr/koeki/bin/ruby print("私の夏の思い出は、祖母の家の畑仕事を手伝ったことです。\n\n") #文章を表示させる #\n は改行 sleep 3 #3秒の間をおく print("\t夏休みは地元に帰りました。\n\n") #\t は間隔をあける sleep 2 #2秒の間をおく print("\t祖母の家に遊びにいきました。\n\n") sleep 2 print("\t祖母の家には畑があり、いつも美味しい野菜を私の家に送ってくれます。\n\n") sleep 2 print("\tせっかく会いに来たので、畑仕事を手伝うことにしました。\n\n") sleep 2 print("\t畑には、きゅうり、なす、トマト、とうもろこしなどが育てられています。\n\n") sleep 2 print("\t休みに入ってすぐに来たのに、もう大体の野菜は育っていました。\n\n") sleep 2 print("\tなので、収穫と水やりの仕事をしました。\n\n") sleep 2 print("\t私と祖母でとうもろこしを採りました。\n\n") sleep 2 print("\t茎の方にはアリがたくさんいて、すごく甘いということが食べなくてもわかり\n\tました。\n\n") sleep 2 print("\t今年は、気温の変化が激しかったとかで、いつもより実が小さいと言っていま\n\tした。\n\n") sleep 2 print("\tこの日は暑く、天気も良かったので、日光の下での作業はたいへんでした。\n\n") sleep 2 print("\tいつも美味しい野菜を届けてくれる祖母の苦労に感謝しました。\n\n") sleep 2 print("\t仕事が終わると、祖母が一緒の採ったとうもろこしを茹でてくれました。\n\n") sleep 2 print("\t茹でたてのとうもろこしはとても美味しかったです。\n\n") sleep 2 print("\t帰りには畑で採れた野菜をくれました。\n\n") sleep 2 print("\t畑仕事のたいへんさと楽しさを教えてくれた祖母へ感謝したいと思います。\n\n") sleep 2 print("\tまた手伝いにいきたいです。\n\n") sleep 3 print("おしまい。\n\n") c.もとにしたプログラムからの変更点 基礎プログラミング I 第9回「Ruby であそぼ / 広告ページの作成」の授業で作 成した sleep.rb のファイルをもととし、変更した。 print 文を自分のプログラムに合った内容のものに変更。 sleep の秒数を 3 秒と 2秒のものに変更。 d.実行画面 pan{c109020}% ./summer_a.rb [~/Ruby] 私の夏の思い出は、祖母の家の畑仕事を手伝ったことです。 夏休みは地元に帰りました。 祖母の家に遊びにいきました。 祖母の家には畑があり、いつも美味しい野菜を私の家に送ってくれます。 せっかく会いに来たので、畑仕事を手伝うことにしました。 畑には、きゅうり、なす、トマト、とうもろこしなどが育てられています。 休みに入ってすぐに来たのに、もう大体の野菜は育っていました。 なので、収穫と水やりの仕事をしました。 私と祖母でとうもろこしを採りました。 茎の方にはアリがたくさんいて、すごく甘いということが食べなくてもわかり ました。 今年は、気温の変化が激しかったとかで、いつもより実が小さいと言っていま した。 この日は暑く、天気も良かったので、日光の下での作業はたいへんでした。 いつも美味しい野菜を届けてくれる祖母の苦労に感謝しました。 仕事が終わると、祖母が一緒の採ったとうもろこしを茹でてくれました。 茹でたてのとうもろこしはとても美味しかったです。 帰りには畑で採れた野菜をくれました。 畑仕事のたいへんさと楽しさを教えてくれた祖母へ感謝したいと思います。 また手伝いにいきたいです。 おしまい。 e.結果の考察 実行結果より、正しく文章が表示されたため print 文に誤りはないと考えられ る。また、改行と文章内で間隔を空けたい所もきちんと表示されていたため、\n と \t の指定も正しくされていたといえる。 実行時には、文章が間を空けて表示されたので sleep の使い方も正しいといえ る。 B. a.設定 年齢を入力させて、その年の思い出を表示させるというものなので、if -- end を用いて、年齢と思い出を指定させたプログラムを作成すればよいと考えた。 b.作成したプログラム #!/usr/koeki/bin/ruby toshi = 0 #年齢をしまう変数 kioku = 0 #思い出をしまう変数 print("私の夏の思い出について紹介します。\n") #文章を表示させる print("現在私は20歳です。\n") STDERR.print("\t何歳の夏の思い出について知りたいですか? : ") #年齢の入力を促す toshi = gets.to_i #年齢をしまう変数 if toshi == 6 #もし toshi が 6 だったらを示す kioku = "家族で北海道旅行をした" elsif toshi == 7 #もし toshi が 7 だったらを示す kioku = "毎日海に通った" elsif toshi == 8 #もし toshi が 8 だったらを示す kioku = "家族でバーベキューをした" elsif toshi == 10 #もし toshi が 10 だったらを示す kioku = "親子でディズニーランドに行った" elsif toshi == 12 #もし toshi が 12 だったらを示す kioku = "友達とキャンプに行った" elsif toshi == 15 #もし toshi が 15 だったらを示す kioku = "秋田に遊びに行った" elsif toshi == 16 #もし toshi が 16 だったらを示す kioku = "部活を頑張った" elsif toshi == 18 #もし toshi が 18 だったらを示す kioku = "受験勉強地獄だった" elsif toshi == 19 #もし toshi が 19 だったらを示す kioku = "大阪旅行に行った" elsif toshi == 20 #もし toshi が 20 だったらを示す kioku = "農業体験をした" else kioku = "忘れましたー" #もし上以外の数字を入力された場合に表示する end printf("%d 歳の夏は %sよ!!\n", toshi, kioku) # %d は数値を表す # %s は文字列を表示する c.もとにしたプログラムからの変更点 基礎プログラミング I 第4回 「曜日を調べるプログラム」の授業で作成した calendar.rb をもととして変更した。 print 文を年齢を聞く文に変更。 if 文を増やした。 変数を問題に合った toshi と kioku に変更。 曜日ではなく、その年の思い出を表示させるように文章を変更。 d.実行画面 x. 入力されたのが if で指定した数字であった場合 pan{c109020}% ./summer_b.rb [~/Ruby] 私の夏の思い出について紹介します。 現在私は20歳です。 何歳の夏の思い出について知りたいですか? : 6 6 歳の夏は 家族で北海道旅行をしたよ!! y. 入力されたのが if で指定した数字以外のものであった場合 pan{c109020}% ./summer_b.rb [~/Ruby] 私の夏の思い出について紹介します。 現在私は20歳です。 何歳の夏の思い出について知りたいですか? : 3 3 歳の夏は 忘れましたーよ!! e.結果の考察 print 文が表示され、年齢入力を促す文章もきちんと表示されたことから print文の使い方に誤りはない。 x の実行結果より、プログラム内に if を用いて指定した数字に対する思い出 の文は正しく表示された。また、y の実行結果より、if で指定した数字以外の 数字の入力があった場合、それに対応した文章がきちんと表示された。この 2 つの結果から、 if -- end の使い方にも誤りはないと考えられる。 よってこのプログラムは正しく実行されたといえる。 while -- end を使用して繰り返し行なえるようにすればなお良かったように思 う。 感想 久しぶりだったので、問題を見ただけではどのようなプログラムを作成すればい いか、見いだすのに時間がかかってしまいました。去年の先輩のページを参考に し、自分の夏休みの思いでを表示するには、どのようなプログラムを作成すれば 最もわかりやすいプログラムが出来上がるかということを意識しながら作成しま した。 周りで課題に取り組んでいる友達に質問されたら、自分でも忘れているのではな いかと思っていたことが案外すんなり出てきたので自分でもびっくりしました。 人に教えることを意識して授業や課題に取り組むと、覚えやすいということがわ かりました。 プログラム問題の B では、上にも書いたのですが、実行して考察している時に while -- end を使えば良かったと気付きました。本当はプログラム作成中に気 付くべきでした。せっかく気付けたのでプログラムを改良してみたのですがなぜ かエラーが続き、while を入れることができませんでした。頭も技術もまだにぶっ ているようなので、早く感覚が戻るように、毎回の授業と課題を大切にしていき たいです。 今回の課題で復習したことは忘れずに今後の授業に活かしていきたいです。 参考文献 ・http://roy/~madoka/2010/r1/09/09_08_theme_06_sleep.html 基礎プログラミング I 第9回「Ruby であそぼ / 広告ページの作成」少し間を空 ける(講義ノート) 西村まどか先生 ・http://roy/~madoka/2009/r2/01/rpt/c108061.txt 2009年度 基礎プログラミング II 第01回 前期の復習 レポート講評 良かったレ ポート その5 レポート作者: 不明 ・http://roy/~madoka/2009/r2/01/rpt/c108161.txt 2009年度 基礎プログラミング II 第01回 前期の復習 レポート講評 良かったレ ポート その10 レポート作者: 不明 ・http://roy/~madoka/2009/r2/01/rpt/c108171.txt 2009年度 基礎プログラミング II 第01回 前期の復習 レポート講評 良かったレ ポート その2 レポート作者: 不明 ・http://roy/~madoka/2010/r1/04/04_03_theme_01_branch.html 基礎プログラミング I 第4回「プログラミングの方法」もしもそうならば(講義 ノート) 西村まどか先生 共同学習者 酒井 春香