第 1 回 前期の復習 レポート課題 氏名: 土門千里 学籍番号: C1111122 語学クラス: 英語5 コース: 政策マネジメント 1. A. 前期で習ったコマンドなどをまとめた。 ●emacs ・ctrl-1 emacs ・ctrl-2 Kterm ・ctrl-3 console ・ctrl-4 firefox ・Esc-x mew メールを立ち上げる ・ctrl-x 1 分割された画面を戻す ・ctrl-x 2 emacs 画面の分割 ・ctrl-x 5 2 新しい emacs のページを開く ・ctrl-x 5 0 ページが 1 つ閉じる ・ctrl-x b 前の画面に戻る ・ctrl-x, ctrl-c emacs の終了 ・ctrl-x, ctrl-f ファイルの検索 & 新規作成 ・ctrl-x, ctrl-s 作成したデータを上書き保存 ・ctrl-x u ctrl-k で消したものを戻せる ・ctrl-a 行の先頭まで移動できる ・ctrl-b 1 マスずつ戻ることが出来る ・ctrl-e 行の一番最後に移動 ・ctrl-f 1 マスずつ移動出来る ・ctrl-k 一行毎に削除 ・ctrl-n 仮名文字に変換 ・ctrl-o 日本語に変換 ・ctrl-p ローマ字に変換 ・ctrl-x i プログラムを貼り付ける ●mew ・a 引用無しの返信 ・A 引用有りの返信 ・d 削除したいメールにカーソルを会わせて打つ ・f メールの転送 ・i メールの確認 ・q emacs のホームに戻る ・u 削除選択の解除 ・w メール新規作成 ・x 選択した削除したいメールを完全に削除する ・ctrl-c, ctrl-a ファイルを添付する ・ctrl-c, ctrl-c 作成したメールを送信する ・ctrl-c, ctrl-i 書名の追加 ・ctrl-c, ctrl-q 作成中のメールの削除 ・ctrl-x, ctrl-s 作成したメールを保存 ・g-draft メールを保存してあるフォルダに移動する ・s all メール一覧に戻る ・shift-e 書き直したいメールにカーソルを合わせて打つ ※添付ファイルの取り込み保存方法 Mの行で . (ピリオド)を打ち、添付ファイルされているものを一覧。 保存したいファイルにカーソルを合わせて、y を打つ。 File:~/ と表示されたら、保存したいフォルダ名を打つ。 ●firefox ・ctrl-b ブックマークが表示 ・ctrl-f-単語 ページ内から入力した文字列を探す ・ctrl-return リンク先が新しいタブで開く ・ctrl-T 新しいタブの作成 ・ctrl-Tab タブが移動 ・ctrl-w ブラウザの終了 ・shift-Tab リンク先が 1 つずつ戻る ●Kterm ・firefox& firefox を立ち上げる ・./ファイル名 ファイルを実行する ・bc -l 計算機能 ・cat [ファイル名] ファイルの内容を確認 ・cd [フォルダ名] フォルダにアクセス ・cd フォルダからログアウト ・chmod +x [ファイル名] ファイルを実行可能状態にする ・cp [ファイル名] [フォルダ名] フォルダにファイルをコピーする ・ls フォルダの中を確認 ・ls -l 実行可能ファイルを確認(-rwxr-xr-x) ・mkdir [フォルダ名] 新規フォルダ作成 ・mv [ファイル名] [フォルダ名] フォルダにファイルを移動する ・rm [ファイル名] ファイルを削除 ●console ・exit コンピュータからログアウトする ◯print 括弧 () の内容が表示される。 例えば、 print("◯◯") と入力すれば、プログラムを実行したときには ◯◯ が表示される。 ◯\n 改行文字。 ◯while - end 条件を満たしている間は、while - end の中にある文章などが反覆し続ける。 ◯while - true 何度も繰り返す場合に使用する。 ◯gets 入力されたデータを取り込む。 ◯chomp 改行文字の有無を調べる。 ◯STDERR.print 標準エラー出力で、printf 文を実行する。 ◯%s 文字列が表示される。 ◯%d 数字が表示される。 ◯open - end データを読み込む。 2. 選んだ問題: C a) 考えた設定 open を使い、自分が知りたい時期の計画予定をデータを参考にして調べて表示 させる。 b-1) 作成したプログラム #!/usr/koeki/bin/ruby # coding: euc-jp number = Array.new # 選択番号 plan = Array.new # 計画内容 print("卒業までの計画を表示します\n") print("何年生次の計画が見たいですか?\n\n") sleep 2 # 2 秒後に下の文が表示される print(" 1. 2年生 後期\n") print(" 2. 3年生 前期\n") print(" 3. 3年生 後期\n") print(" 4. 4年生 前期\n") print(" 5. 4年生 後期\n") sleep 2 # 2 秒後に入力が開始できる STDERR.print("\n以上の数字から選択して下さい: ") #入力されたデータの取りこみ number = STDIN.gets.chomp request = Regexp.new(number, true) print("\n") if number == "1" # もし選んだ数字が 1 であった場合 print("-----------------------\n") # 左の文章が表示される print("2 年生の後期の計画予定\n") print("-----------------------\n") elsif number == "2" # もし選んだ数字が 2 であった場合 print("-----------------------\n") # 左の文章が表示される print("3 年生の前期の計画予定\n") print("-----------------------\n") elsif number == "3" # もし選んだ数字が 3 であった場合 print("-----------------------\n") # 左の数字が表示される print("3 年生の後期の計画予定\n") print("-----------------------\n") elsif number == "4" # もし選んだ数字が 4 であった場合 print("-----------------------\n") # 左の文章が表示される print("4 年生の前期の計画予定\n") print("-----------------------\n") elsif number == "5" # もし選んだ数字が 5 であった場合 print("-----------------------\n") # 左の文章が表示される print("4 年生の後期の計画予定\n") print("-----------------------\n") else # 選択肢にない数字を選んだ場合 print("入力した数字は選択肢にはありません\n") # 左の文章が表示される end # if の終了 open("mydata_c111112.dat", "r") do |life| # mydata_c111112 からデータを読み込む while plan = life.gets if request =~ plan if /(\d+)\s+(\S+)/ =~ plan number = $1.to_i plan = $2 printf("・%s\n", plan) # 計画内容の表示 end # if の終了 end # if の終了 end # while の終了 end # open の終了 print("\n\n") b-2) 作成したデータ 1 自分の所属したいゼミを決定 1 ボランティアに積極的に参加 1 検定を受検 1 資格の勉強 2 2年生の前期にとれなかった講義を受講 2 検定を受検 2 インターンシップに参加 2 資格試験を受ける 3 就職活動を開始 3 卒業要件をなるべく満たす 3 資格試験を受ける 4 卒業要件を満たす 4 就職活動 5 卒業論文の完成 5 卒業 c) プログラム実行結果 (1) 選択肢 1 を選んだ場合 pan{c111112}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 1 ----------------------- 2 年生の後期の計画予定 ----------------------- ・自分の所属したいゼミを決定 ・ボランティアに積極的に参加 ・検定を受検 ・資格の勉強 (2) 選択肢 2 を選んだ場合 pan{DOMON Chisato}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 2 ----------------------- 3 年生の前期の計画予定 ----------------------- ・2年生の前期にとれなかった講義を受講 ・検定を受検 ・インターンシップに参加 ・資格試験を受ける (3) 選択肢 3 を選んだ場合 pan{c111112}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 3 ----------------------- 3 年生の後期の計画予定 ----------------------- ・就職活動を開始 ・卒業要件をなるべく満たす ・資格試験を受ける (4) 選択肢 4 を選んだ場合 pan{c111112}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 4 ----------------------- 4 年生の前期の計画予定 ----------------------- ・卒業要件を満たす ・就職活動 (5) 選択肢 5 を選んだ場合 pan{c111112}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 5 ----------------------- 4 年生の後期の計画予定 ----------------------- ・卒業論文の完成 ・卒業 6) 選択肢にはない数字を選んだ場合 pan{c111112}% ./life_open.rb [~/Ruby] 卒業までの計画を表示します 何年生次の計画が見たいですか? 1. 2年生 後期 2. 3年生 前期 3. 3年生 後期 4. 4年生 前期 5. 4年生 後期 以上の数字から選択して下さい: 6 入力した数字は選択肢にはありません d) 考察 (1) 選択肢 1 を選んだ場合 選択肢 1 を選んだ結果表示されたデータと、もとにしたデータの内容が一致し たため、正しく表示されたといえる。 また、選択肢 1 を選んだ場合に表示される文章も表示されたため、正しくプロ グラムが動いているといえる。 (2) 選択肢 2 を選んだ場合 選択肢 2 を選んで表示されたデータと、もとにしたデータの内容が一致したた め、正しく表示されたといえる。 また、選択肢 2 を選んだ場合に表示される文章も表示されたため、正しくプロ グラムが動いているといえる。 (3) 選択肢 3 を選んだ場合 選択肢 3 を選んだ結果表示されたデータと、もとにしたデータの内容が一致し たため、正しく表示されたといえる。 また、選択肢 3 を選んだ場合に表示される文章も表示されたため、正しくプロ グラムが動いているといえる。 (4) 選択肢 4 を選んだ場合 選択肢 4 を選んだ結果表示されたデータと、もとにしたデータの内容が一致し たため、正しく表示されたといえる。 また、選択肢 4 を選んだ場合に表示される文章も表示されたため、正しくプロ グラムが動いているといえる。 (5) 選択肢 5 を選んだ場合 選択肢 5 を選んだ結果表示されたデータと、もとにしたデータの内容が一致し たため、正しく表示されたといえる。 また、選択肢 5 を選んだ場合に表示される文章も表示されたため、正しくプロ グラムが動いていると言える。 6) 選択肢にはない数字を選んだ場合 選択肢にはない数字を選んだ場合に表示される文章が表示されたため、正しくプ ログラムが動いていると言える。 3. 感想 レポート課題を作成するにあたって、今回はプログラム問題で open や if など を使用したが、なかなか上手くプログラムを動かすことが出来なかった。作って いるうちに思い出したりしたこともあったが、前期でかなり苦労して覚えた知識 なども、少しの間、使わなかったことにより結構忘れてしまっているのだと感じ た。これからも使うことがあると思うので、なるべく早いうちに使い方などを思 い出したり、分からないところは調べるなどして復習しようと思う。特に、if や open はかなり忘れてしまっていたこともあったので、前期に作ったレポー トなどを参考にして復習したい。 また、クラスが変わったため不安なこともあるが、前期よりも気を引き締めて講 義に臨みたいと思う。後期では、前期の復習をしつつ、また新たな知識を身につ けるように努力したい。 4. 参考文献 神田直弥 「mew利用方法」 http://roy/~naoya/mew.htm 西村まどか 基礎プログラミング I 第 5 回 (配列の構造)より 「データとプログラムの分離」 http://roy/~madoka/2012/r1/05/r1_05_11_theme_09_arystdin.html 西村まどか 基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング)より 「データを読み込むようにするには」 http://roy/~madoka/2012/r1/07/r1_07_10_theme_08_fileread.html 西村まどか 基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング)より 「券売機のしくみ」 http://roy/~madoka/2012/r1/07/r1_07_14_theme_11_vendingmachine.html 共同学習者: 浅沼佑香さん、 村上茉奈美さん