書き間違いがあったので再送します。 第 9 回 Ruby であそぼ / 広告ページの作成 レポート課題 1.筆記問題 A a.0x32 + 0x24 16進数の足算は、10進数の足算と同じ要領で行えば良い。 しかし、繰り上がりは16毎に行うと言うことに注意せねばならない。 32 + 24 ------- 56 よって、答えは0x56である。 b.0x15+0x2d この場合も、上記と同じように計算を行う。 1桁目に繰り上がりがあるので要注意。 15 + 2d #16進数において、d=13 ------- 42 1桁目は、 5 + d =5 + 13 =18 =16 + 2 となるので、2桁目に1が繰り上がる。 そのため、答えは0x42となる。 c.0xed - 0x12 引算も、足算と同様に10進数の計算と同じように進めていけば良い。 ed #0xe=0d14、0xd=13 - 12 ------ db 1桁目 13 - 2 = 11 0d11 = 0xb 2桁目 14 - 1 = 13 0d13 = 0xd となるので、答えは0xdbである。 B. 7を掛けて、積が29以下になる数に2を足せば求められると思う。 7*1=7 7+2=9 7*2=14 14*2=16 7*3=21 21+2=23 7*4=28 28+2=30 7*5=35 ←31からはみ出すのでアウト よって答えは 9、16、23、30 の4つである。 2.プログラム問題 実用部門にエントリーします。 私の広告ページのURLです、 roy/~c111037/ 考えた設定 三国志の登場人物25名の姓名を漢字、平仮名、ピン音のいずれかで入力する事に より、その人物の字や原籍などの情報を引き出すことが出来る。 キャッチフレーズは、「1発で知る三国志の登場人物」である。 作成したプログラム #!/usr/koeki/bin/ruby #!coding:euc-jp print("検索したい人物の姓名を入力お願いします。\n") #print文で説明を表示 させた。 print("漢字・平仮名・ピン音のどれかで検索できます!!\n") STDERR.print("誰を探しますか?: \n")#STDERRを用いて入力を促す print("例)漢字の場合→岡田遼、平仮名→おかだはるか、ピン音→gang1tian2liao2\n") #入力の例をprint文で表示 pattern = STDIN.gets.chomp #pattern という変数に先ほどの STDERR で入力さ れた文字列を代入する。 request = Regexp.new(pattern,true) #変数 request にpattern を 代入させる。正規表現を使う。これにより、検索 が可能となる。 open("data_c111037.dat","r") do |eiyuu| #open で data_c111037 を開き、 "r" でそのデータを読み込ませる。||で挟まれた eiyuu には、一時的にデータ が代入されている。 while hero = eiyuu.gets # 変数 hero に data_c111037.dat が代入され、ルー プ処理発動。 if request =~hero #hero と request が一致している場合に if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~hero #文字列、空白、文字列、空白…の組み合わせが hero と一致していたら print("☆★検索結果★☆\n")#print文で""に括られた文字列を表示 print("\t\n") #\t で空白を入れる。 printf("姓名: %s\n",$1) #1列目の文字列を代入して表示する。 printf("読み仮名: %s\n",$2) #2列目の文字列を表示させる。 printf("ピン音表記: %s\n",$3) #3列目の文字列を代入、表示。 printf("字: %s\n",$4) #4列目の文字列を代入して表示させる。 printf("生年: %s\n",$5)#5列目の文字列を代入し表示する。 printf("没年: %s\n",$6)#6列目の文字列を代入して表示させる。 printf("享年: %s\n",$7)#7列目を代入、表示する。 printf("原籍: %s\n",$8)#8列目を代入し、表示させる。 print("\t\n") #/t を用いて 空白を入れる。 end #if文の終了 end #if文の終了 end #while文のループ処理を終了させる end #open を終了させる print("知りたい情報は手に入れられましたか?\n") print("他の人物も探してみて下さいね♪\n") 利用したデータ 第8回の課題で作成した data_c111037.dat に要素を追加した。 #姓名 #姓名(読み) #姓名(ピン音) #字 #生年 #没年 #享年 #原籍 曹操 そうそう cao2cao1 孟徳 155年 220年 65歳 豫州沛国しょう県 孫権 そんけん sun1quan2 仲謀 182年 252年 70歳 呉郡富春県 劉備 りゅうび liu2bei4 玄徳 161年 223年 62歳 たく郡たく県 張遼 ちょうりょう zhang1liao2 文遠 169年 222年 53歳 雁門郡馬邑県 諸葛亮 しょかつりょう zhu1ge3liang4 孔明 181年 234年 53歳 瑯邪郡陽県 馬良 ばりょう ma3liang2 季常 187年 222年 35歳 襄陽郡宜城県 周瑜 しゅうゆ zhou1yu2 公瑾 175年 210年 35歳 揚州廬江郡 趙雲 ちょううん zhao4yun2 子龍 不明 229年 不明 冀州常山郡真定県 馬超 ばちょう ma3chao1 孟起 176年 222年 46歳 扶風郡茂陵県 陸遜/議 りくそん/ぎ lu4xun4/yi4 伯言 183年 245年 62歳 揚州呉郡呉県 司馬懿 しばい si1ma3yi4 仲逹 179年 251年 72歳 河内郡温県 楽進 がくしん le4jin4 文謙 不明 218年 不明 えん州陽平郡衛国 黄蓋 こうがい huang2gai4 公覆 不明 215年 不明 荊州零陵郡 関羽 かんう guan1yu3 長生→雲長 不明 219年 不明 河東郡解 諸葛瑾 しょかつきん zhu1ge3jin3 子瑜 174年 241年 67歳 瑯邪郡陽県 徐晃 じょこう xu2huang3 公明 不明 227年 不明 河東郡楊県 魯粛 ろしゅく lu3su4 子敬 172年 217年 45歳 徐州臨淮郡東城県 夏侯惇 かこうとん xia4hou2dun1 元譲 不明 220年 不明 豫州沛国しょう県 呂布 りょふ lu3bu4 奉先 不明 198年 不明 五原郡九原県 張飛 ちょうひ zhang1fei1 益徳 不明 221年 不明 幽州たく郡 鍾会 しょうかい zhong1hui1 子季 225年 264年 39歳 穎川郡長社県 姜維 きょうい jiang1wei2 伯約 202年 264年 62歳 天水郡冀県 凌統 りょうとう ling2tong3 公績 189年 217年 28歳 呉郡余杭 蔡ヨウ さいよう cai4yong1 伯カイ 132年 192年 60歳 陳留郡圉県 実行した結果 その1(漢字入力) pan{c111037}% ./hero.rb [~/public_html/adv] 検索したい人物の姓名を入力お願いします。 漢字・平仮名・ピン音のどれかで検索できます!! 誰を探しますか?: 例)漢字の場合→岡田遼、平仮名→おかだはるか、ピン音→gang1tian2liao2 周瑜 ☆★検索結果★☆ 姓名: 周瑜 読み仮名: しゅうゆ ピン音表記: zhou1yu2 字: 公瑾 生年: 175年 没年: 210年 享年: 35歳 原籍: 揚州廬江郡 知りたい情報は手に入れられましたか? 他の人物も探してみて下さいね♪ その2(ピン音入力) pan{OKADA Haruka}% ./hero.rb [~/public_html/adv] 検索したい人物の姓名を入力お願いします。 漢字・平仮名・ピン音のどれかで検索できます!! 誰を探しますか?: 例)漢字の場合→岡田遼、平仮名→おかだはるか、ピン音→gang1tian2liao2 cao2cao1 ☆★検索結果★☆ 姓名: 曹操 読み仮名: そうそう ピン音表記: cao2cao1 字: 孟徳 生年: 155年 没年: 220年 享年: 65歳 原籍: 豫州沛国しょう県 知りたい情報は手に入れられましたか? 他の人物も探してみて下さいね♪ その3(平仮名で入力) pan{c111037}% ./hero.rb [~/public_html/adv] 検索したい人物の姓名を入力お願いします。 漢字・平仮名・ピン音のどれかで検索できます!! 誰を探しますか?: 例)漢字の場合→岡田遼、平仮名→おかだはるか、ピン音→gang1tian2liao2 しょかつりょう ☆★検索結果★☆ 姓名: 諸葛亮 読み仮名: しょかつりょう ピン音表記: zhu1ge3liang4 字: 孔明 生年: 181年 没年: 234年 享年: 53歳 原籍: 瑯邪郡陽県 知りたい情報は手に入れられましたか? 他の人物も探してみて下さいね♪ 参考にしたプログラムからの変更 第7回で作成した regexp_readdata.rb を参考にした。 変更した点は、変数、文字列の数である。 考察 無事に、漢字・平仮名・ピン音で検索をかけて結果を出すことが出来た。 まさかと思い、生年を入力して実行させたらやはり結果が出た。そちらも番外編 として、張り付けておく。 データの絶対数が足りないと思うので、今後データをもっと充実させていきたい。 目標は全登場人物の登録である。 pan{c111037}% ./hero.rb [~/public_html/adv] 検索したい人物の姓名を入力お願いします。 漢字・平仮名・ピン音のどれかで検索できます!! 誰を探しますか?: 例)漢字の場合→岡田遼、平仮名→おかだはるか、ピン音→gang1tian2liao2 176 ☆★検索結果★☆ 姓名: 馬超 読み仮名: ばちょう ピン音表記: ma3chao1 字: 孟起 生年: 176年 没年: 222年 享年: 46歳 原籍: 扶風郡茂陵県 知りたい情報は手に入れられましたか? 他の人物も探してみて下さいね♪ 感想 取り掛かった当初はとても困難な課題だと思っていたが、少しずつ問題を解消さ せていくうちに、楽しくなっていた。 焦らずに、少しずつでも確実な作業を行うのが肝要なのだと思った。 参考文献 西村先生のホームページ 制作者:西村まどか先生 基礎プログラミング I 第 9 回 (Ruby であそぼ / 広告ページの作成) 「ファイルの入出力に関して http://roy/~madoka/2012/r1/09/r1_09_01_review_01_fileopen.html 基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング) 「データを読み込むようにするには」 http://roy/~madoka/2012/r1/07/r1_07_10_theme_08_fileread.html 2010年度の先輩のレポート 制作者:西村まどか先生 oy/~madoka/2010/r1/09/rpt/c109014.txt http://roy/~madoka/2010/r1/09/rpt/c109046.txt 中国の伝統色 華色大辞典 Chinese Traditional Colors 制作者:不明 http://www.nicopon.com/iro/china/ HTMLタグボード-HTMLタグ一覧、CSSリファレンスなど- 制作者:不明 http://www.dspt.net/ Wikipedia 呂布 http://ja.wikipedia.org/wiki/%E5%91%82%E5%B8%83 張飛 http://ja.wikipedia.org/wiki/%E5%BC%B5%E9%A3%9B 鐘会 http://ja.wikipedia.org/wiki/%E9%90%98%E4%BC%9A 姜維 http://ja.wikipedia.org/wiki/%E5%A7%9C%E7%B6%AD 凌統 http://ja.wikipedia.org/wiki/%E5%87%8C%E7%B5%B1 蔡ヨウ http://ja.wikipedia.org/wiki/%E8%94%A1%E3%83%A8%E3%82%A6 共同学習者 高橋真優 長谷川真亜子 渡邉千尋 氏名:岡田遼 学籍番号:c110370 語学クラス:中国語3 コース:政策マネジメント