5 月 16 日のレポートについて 語学クラス:XXXX語クラス 系 :XXXX系 学籍番号 :c106XXXX 氏名 :XXXXXXXX 1. printf("%c%c%c%c%cちゃんはかわいいなあ\n" ,0x45 ,0x6d ,0x69 ,0x6c ,0x79) ---------------------------- 上の ---- の部分を ASCII コード で解読すると・・・ 0x45 = E ,0x6d = m ,0x69 = i ,0x6c = l ,0x79 = y よって、---- の部分には Emily (エミリー) が入る。 printf("http://www.%c%c%c.or.jp/%c%c%c%c%c/%c%c%c%c%c/\n", 0x6e,0x68,0x6b,0x61,0x6e,0x69,0x6d,0x65,0x65,0x6d,0x69,0x6c,0x79) ---------------------------------------------------------------- 同じように上の ---- の部分を ASCII コード で読解すると・・・ 0x6e = n ,0x68 = h ,0x6b = k ,0x61 = a ,0x6e = n ,0x69 = i , 0x6d = m ,0x65 = e ,0x65 = e ,0x6d = m ,0x69 = i ,0x6c = l ,0x79 = y よって、---- の部分には nhkanimeemily (NHKアニメエミリー) が入る。 ルビ緒ロボットの恋の相手は、NHKアニメの「風の少女エミリー」の 主役キャラクターである「エミリー・バード・スター」である。 2-A. 作成したプログラム form_a.rb #!/usr/koeki/bin/ruby naha = Array.new # 配列を新規に作る method i = 0 # 手段を与えるラベル naha[0] = ["路線バス","琉球村","織物","舞踊"] naha[1] = ["路線バス","沖縄工芸村","一輪挿し制作","アートフラワー制作"] naha[2] = ["路線バス","琉球ガラス村","とんぼ玉制作","表札つくり"] naha[3] = ["路線バス","リーフリゾートかりゆし","グラスボート","シュノーケル"] # 配列の数を 4 つにした。 print("那覇空港から観光地へ行って何を体験するかを探します:\n") while i < 4 printf("手段 %d \n",i+1) printf("那覇空港からは %s に乗り、%s で %s 体験と %s 体験をします。\n", naha[i][0],naha[i][1],naha[i][2],naha[i][3]) ---------- # 配列の添字の数を 4 つにしたため、上の ---- の部分を増やした。 i += 1 end print("手段検索終了\n") form_a.rb を実行した結果 rsv{c106110}% ./form_a.rb [~/Ruby] 那覇空港から観光地へ行って何を体験するかを探します: 手段 1 那覇空港からは 路線バス に乗り、琉球村 で 織物 体験と 舞踊 体験をします。 手段 2 那覇空港からは 路線バス に乗り、沖縄工芸村 で 一輪挿し制作 体験と アートフラワー制作 体験をします。 手段 3 那覇空港からは 路線バス に乗り、琉球ガラス村 で とんぼ玉制作 体験と 表札つくり 体験をします。 手段 4 那覇空港からは 路線バス に乗り、リーフリゾートかりゆし で グラスボート 体験と シュノーケル 体験をします。 手段検索終了 〜参考にしたプログラム〜 今日の授業でやった「行先検索ソフトの」 train.rb を参考にした。 2-B. 作成したデータ word.dat 路線バス 琉球村 織物 舞踊 路線バス 沖縄工芸村 一輪挿し制作 アートフラワー制作 路線バス 琉球ガラス村 表札つくり とんぼ玉制作 路線バス リーフリゾートかりゆし グラスボート シュノーケル 作成したプログラム form_b.rb #!/usr/koeki/bin/ruby combi = Array.new n = 0 print("那覇空港から観光地へ行って何をするかを探します:\n") while word_data = gets if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ word_data ----------------------------- # 変数がパターン (上の ---- の部分) に一致するならば # () は、() 内に含まれる文字列を優先して探す事を意味する # \S+ は文字列の連続を意味する # \s+ は空白文字の連続を意味する combi[0] = $1 combi[1] = $2 # $1 は優先された文字列 1 を引き取るという意味 combi[2] = $3 # $2 は優先された文字列 2 を引き取るという意味 combi[3] = $4 # &3 は優先された文字列 3 を引き取るという意味 end printf("手段 %d \n",n+1) printf("那覇空港からは %s に乗り、%s で %s 体験と %s 体験をします。 \n", combi[0],combi[1],combi[2],combi[3]) -------- # 配列の添字の数を 4 つにしたため、上の ---- の部分を増やした n += 1 end print("手段検索終了\n") form_b.rb を実行した結果 irsv{c106110}% ./form_b.rb word.dat [~/Ruby] 那覇空港から観光地へ行って何をするかを探します: 手段 1 那覇空港からは 路線バス に乗り、琉球村 で 織物 体験と 舞踊 体験をします。 手段 2 那覇空港からは 路線バス に乗り、沖縄工芸村 で 一輪挿し制作 体験と アートフラワー制作 体験をします。 手段 3 那覇空港からは 路線バス に乗り、琉球ガラス村 で 表札つくり 体験と とんぼ玉制作 体験をします。 手段 4 那覇空港からは 路線バス に乗り、リーフリゾートかりゆし で グラスボート 体験と シュノーケル 体験をします。 手段検索終了 〜参考にしたプログラム〜 今日の授業で「やったデータとプログラムを別にするには」の train.dat と、 train_b.rb を参考にした。 3.感想 今回のレポートは、今までのレポートの中で一番楽しんでできました。楽しめた ということは、きっと授業の内容がよく理解できたからだと思います。 次回もこの調子で頑張りたいです。 ☆★授業時に失敗を通して学んだこと★☆ プログラミングを Ruby に読みこむときに、 chomod +x (プログラム名).rb の ---- ---- で示した +x を、-x と入力すると実行できないようにきりかえを 行なうことができる。再度実行できるようにするためには、通常通り +x と入力すれば良い。