5月16日のレポートについて 語学クラス: 英語XX 系 : XXXX系 学籍番号 : c106XXXX 氏名 : XXXXXXXX 1、printf("%c%c%c%c%cちゃんはかわいいなあ\n",0x45,0x6d,0x69,0x6c,0x79) 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 コード表より、それぞれ重ね合わせて読み取る。 ☆1つ目の"printf" について(過程) "0x45 は E ,0x6d は m ,0x69 は i ,0x6c は l ,0x79 は y" と読み取れた。 よって、 printf("Emily"ちゃんはかわいいなあ\n",0x45,0x6d,0x69,0x6c,0x79) " Emily "となる。 ☆2つ目の"printf" について(過程) "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" と読み取れた。 よって、 printf("http://www.nhkanimeemily/\n", 0x6e,0x68,0x6b,0x61,0x6e,0x69,0x6d,0x65,0x65,0x6d,0x69,0x6c,0x79) " nhkanimeemily "となる。 2、(A) 問題 ◯作成したプログラム #!/usr/koeki/bin/ruby season = Array.new a = 0 season[0] = ["春","花","苺","花見"] season[1] = ["夏","花火","西瓜","海"] season[2] = ["秋","紅葉","柿","紅葉狩り"] season[3] = ["冬","樹氷","蜜柑","スキー場"] print("季節の代表的なものをピックアップします:\n") while a < 4 printf("季節 %s \n", season[a][0]) printf("%s は %s が綺麗で、%s が美味しい時期で、%s に行きたくなります \n", season[a][0],season[a][1],season[a][2],season[a][3]) a += 1 end print("調査完了\n") #変数を season と設定する。 #Array.new は配列を新規に作れる method. #初期値の設定を ゼロ に設定する。 #4〜7行目は"季節""綺麗なもの""美味しい食べ物""行きたくなる場所"をそれぞ れ考え設定した。2次元配列。[" "]は、配列の中には行いた情報を呼び出す。 #print(" ")はそれを表示させる。 #while は繰り返し実行を続ける。 #a < 4 なので、4まで実行になる。 #printf("%s")で文字の変換を行なってくれる。 #end で繰り返しを中止してくれる。 #form_a.rb として Ctrl-x,Ctrl-s で保存!! ◯結果画面 季節の代表的なものをピックアップします: 季節 春 春 は 花 が綺麗で、苺 が美味しい時期で、花見 に行きたくなります 季節 夏 夏 は 花火 が綺麗で、西瓜 が美味しい時期で、海 に行きたくなります 季節 秋 秋 は 紅葉 が綺麗で、柿 が美味しい時期で、紅葉狩り に行きたくなります 季節 冬 冬 は 樹氷 が綺麗で、蜜柑 が美味しい時期で、スキー場 に行きたくなります 調査完了 #プログラムを保存し、kterm を開き、実行をうかける。 ◯もとにしたプログラムからの変更点 季節ごとのキーワードを入力し、プログラムを設定した。 ◯参考文献 http://roy/~madoka/2007/r1/05/ 西村まどか先生の授業用HP"第 5 回 配列とデータ処理"より (B) 問題 ◯データの貼り付け 春 花 苺 花見 夏 花火 西瓜 海 秋 紅葉 柿 紅葉狩り 冬 樹氷 蜜柑 スキー場 #季節ごとのワードのファイルを作成した。 #このデータがないとプログラムの結果が表示せれずでてこないので注意する。 #word.dat として Ctrl-x,Ctrl-s で保存!! ◯プログラムの貼り付け #!/usr/koeki/bin/ruby season = Array.new #a = 0 print("季節の代表的なものをピックアップします:\n") while word_data = gets if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~word_data season[0] = $1 season[1] = $2 season[2] = $3 season[3] = $4 end #print("%d\n",a+1) printf("季節 %s \n" , season[0]) printf("%s は %s が綺麗で、%s が美味しい時期で、%s に行きたくなります \n", season[0],season[1],season[2],season[3]) # a += 1 end print("調査完了\n") #変数をseason と設定する。 #ここでは必要ないので # をつけ読みこませない。 #print(" ")はそれを表示させる。 #初めに作成しておいた word.dat を読みこませる。 #while は繰り返し実行を続ける。 #season[0] = $1 season[1] = $2 season[2] = $3 season[3] = $4 は、新しいデータの配列を読みこむ。 #printf("%s")で文字の変換を行なってくれる。 #if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~word_data は変数が一致するかどうか を調べる。文字列の一致を調べるため。 #(\S+) は大文字のエスで、文字列の連続を示す。 #\s+ は小文字のエスで、空白文字の連続を示す。 #( ) は ( )の中に含まれる文字列を優先して探しだしてくれるものである。 #( ) の中で優先された文字列は $1、$2、……として順番に名前がつけられてい く。 #end で繰り返しを中止してくれる。 #form_b.rb として Ctrl-x,Ctrl-s で保存!! ◯結果画面 季節の代表的なものをピックアップします: 季節 春 春 は 花 が綺麗で、苺 が美味しい時期で、花見 に行きたくなります 季節 夏 夏 は 花火 が綺麗で、西瓜 が美味しい時期で、海 に行きたくなります 季節 秋 秋 は 紅葉 が綺麗で、柿 が美味しい時期で、紅葉狩り に行きたくなります 季節 冬 冬 は 樹氷 が綺麗で、蜜柑 が美味しい時期で、スキー場 に行きたくなります 調査完了 #プログラムを実行させた。 # ./form_b.rb word.dat で表示できる。 #上記のような結果画面がでてくる。 ◯参考文献 http://roy/~madoka/2007/r1/05/ 西村まどか先生の授業用HP"第 5 回 配列とデータ処理"より 3、感想 今回のプログラムは、スムーズに作成することができました。文字コードがあ るといったことを初めて知りました。今回のプログラムで工夫した点は、プロ グラム作成時に、日本語が綺麗にまとまるように、ポイントをおさえて書けた 所です。ATMなどの機械のシステムが似ているのかなあと感じました。来週も 頑張ります。 ----Next_Part(Wed_May_16_17_49_39_2007_565)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="form_b.rb" #!/usr/koeki/bin/ruby season = Array.new #a = 0 print("季節の代表的なものをピックアップします:\n") while word_data = gets if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~word_data season[0] = $1 season[1] = $2 season[2] = $3 season[3] = $4 end #print("%d\n",a+1) printf("季節 %s \n" , season[0]) printf("%s は %s が綺麗で、%s が美味しい時期で、%s に行きたくなります \n", season[0],season[1],season[2],season[3]) # a += 1 end print("調査完了\n") ----Next_Part(Wed_May_16_17_49_39_2007_565)-- Content-Type: Application/Ms-Tnef Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="word.dat" vdUJstYJ5/UJsta4qwqyxiAJstay0CAJwL6xuwmzpAq9qSAJucjN1SAJs8EJucjN1bztpOoKxd8g Cbz5ybkgCcyqtLsJpbmlraG8vuwK ----Next_Part(Wed_May_16_17_49_39_2007_565)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="form_a.rb" #!/usr/koeki/bin/ruby season = Array.new a = 0 season[0] = ["春","花","苺","花見"] season[1] = ["夏","花火","西瓜","海"] season[2] = ["秋","紅葉","柿","紅葉狩り"] season[3] = ["冬","樹氷","蜜柑","スキー場"] print("季節の代表的なものをピックアップします:\n") while a < 4 printf("季節 %s \n", season[a][0]) printf("%s は %s が綺麗で、%s が美味しい時期で、%s に行きたくなります \n", season[a][0],season[a][1],season[a][2],season[a][3]) a += 1 end print("調査完了\n") ----Next_Part(Wed_May_16_17_49_39_2007_565)----