第2回 基礎プログラミング II レポート課題 氏名:小関文紀 学籍番号:c1090638 語学クラス:中国語 1 コース(系):地域共創コース 1A ゲームを hash 配列 game とした。 game の key と value はそれぞれゲーム機種とメーカーにした。 その1: key 「PS3」に対し value は「sony」 その2: key 「PS2」に対し value は「sony」 その3: key 「PS」に対し value は「sony」 その4: key 「PSP」に対し value は「sony」 その5: key 「xbox360」に対し value は「Microsoft」 その6: key 「xbox」に対し value は「Microsoft」 その7: key 「Wii」に対し value は「任天堂」 その8: key 「ゲームキューブ」に対し value は「任天堂」 その9: key 「64」に対し value は「任天堂」 その10: key 「スーパーファミコン」に対し value は「任天堂」 その11: key 「DS」に対し value は「任天堂」 その12: key 「セガサターン」に対し value は「セガ」 その13: key 「ドリームキャスト」に対し value は「セガ」 その14: key 「ワンダースワン」に対し value は「バンダイ」」 これに対応する Hash の表し方は game["PS3"] = "sony" game["PS2"] = "sony" game["PS"] = "sony" game["PSP"] = "sony" game["xbox360"] = "Microsoft" game["xbox"] = "Microsoft" game["Wii"] = "任天堂" game["ゲームキューブ"] = "任天堂" game["64"] = "任天堂" game["スーパーファミコン"] = "任天堂" game["DS"] = "任天堂" game["セガサターン"] = "セガ" game["ドリームキャスト"] = "セガ" game["ワンダースワン"] = "バンダイ" また、もう一つの表し方は {"PS3" => "sony","PS2" => "sony","PS" => "sony","PS" => "sony","PSP" =>"sony","xbox360" => "Microsoft","xbox" => "Microsoft","Wii" => "任天堂 ","ゲームキューブ" => "任天堂","64" => "任天堂","スーパーファミコン" => "任天堂","DS" => "任天堂","セガサターン" => "セガ","ドリームキャスト" => "セガ","ワンダースワン" => "バンダイ"} 1B a 0d2010を16進数で表す場合 2010 / 16 = 125 余り 10 125 / 16 = 7 余り 13 7 / 16 = 0 余り 7 この余りを16進数に直すと7da よって、0d2010 = 0x7da b 0d2010を2進数で表す場合 2010 / 2 = 1005 余り 0 1005 / 2 = 502 余り 1 502 / 2 = 251 余り 0 251 / 2 = 125 余り 1 125 / 2 = 62 余り 1 62 / 2 = 31 余り 0 31 / 2 = 15 余り 1 15 / 2 = 7 余り 1 7 / 2 = 3 余り 1 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 この余りをしたから順に並べて行くと11111011010 よって、0d2010 = 0b11111011010 0b11111011010を16進数で表す場合 下から4桁づつ区切り、16進数に置き換える。 それをコード表に当てはめると 1010 = 0xa 1101 = 0xd 0111 = 0x7 よって0b11111011010 = 0x7da ということが証明された 参考文献 基礎プログラミング I 第5回 「配列の構造」 ASCIIコード表 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 2 A 筆記問題で考えた対を使い、ゲーム機種とその機種を出しているメーカーを kterm上に表示するプログラム #!/usr/koeki/bin/ruby $KCODE = "e" # 言語を日本語にする game = Hash.new # 変数をgameとして、Hashを使う game["PS3"] = "sony" # PS3ならばsony game["PS2"] = "sony" # PS2ならばsony game["PS"] = "sony" # PSならばsony game["PSP"] = "sony" # PSPならばsony game["xbox360"] = "Microsoft" # xbox360ならばMicrosoft game["xbox"] = "Microsoft" # xboxならばMicrosoft game["Wii"] = "任天堂" # Wiiならば任天堂 game["ゲームキューブ"] = "任天堂" # ゲームキューブならば任天堂 game["64"] = "任天堂" # 64ならば任天堂 game["スーパーファミコン"] = "任天堂" # スーパーファミコンならば任天堂 game["DS"] = "任天堂" # DSならば任天堂 game["セガサターン"] = "セガ" # セガサターンならばセガ game["ドリームキャスト"] = "セガ" # ドリームキャストならばセガ game["ワンダースワン"] = "バンダイ" # ワンダースワンならばバンダイ print"\n☆ゲーム機種を出しているメーカー☆\n\n" for name, maker in game printf("%s \t %s\n\n",name, maker) end 実行結果 pan{c109063}% ./hash_game.rb [~/Ruby] ☆ゲーム機種を出しているメーカー☆ Wii 任天堂 xbox Microsoft PSP sony ゲームキューブ 任天堂 PS sony DS 任天堂 スーパーファミコン 任天堂 xbox360 Microsoft PS2 sony セガサターン セガ PS3 sony ワンダースワン バンダイ 64 任天堂 ドリームキャスト セガ 考察 結果をkterm上に表示することができたので、プログラムは正常に機能したとい える。 B ゲームの機種を入力すると出しているメーカーが分かるプログラム。 作成したプログラム #!/usr/koeki/bin/ruby $KCODE = "e" # 言語を日本語にする game = Hash.new # 変数をgameとして、Hashを使う game["PS3"] = "sony" # PS3ならばsony game["PS2"] = "sony" # PS2ならばsony game["PS"] = "sony" # PSならばsony game["PSP"] = "sony" # PSPならばsony game["xbox360"] = "Microsoft" # xbox360ならばMicrosoft game["xbox"] = "Microsoft" # xboxならばMicrosoft game["Wii"] = "任天堂" # Wiiならば任天堂 game["ゲームキューブ"] = "任天堂" # ゲームキューブならば任天堂 game["64"] = "任天堂" # 64ならば任天堂 game["スーパーファミコン"] = "任天堂" # スーパーファミコンならば任天堂 game["DS"] = "任天堂" # DSならば任天堂 game["セガサターン"] = "セガ" # セガサターンならばセガ game["ドリームキャスト"] = "セガ" # ドリームキャストならばセガ game["ワンダースワン"] = "バンダイ" # ワンダースワンならばバンダイ print"\nゲームの機種を出しているメーカーを表示します\n\n" print"調べたい機種を入力してください:" name = gets.chomp if game.key?(name) == false printf("\n%sは%s\n\n",name, game[name]) elsif game.key?(name) printf("\n「%sは%sが出している機種です。」\n\n",name,game[name]) exit end 実行結果 pan{c109063}% ./hash_search.rb [~/Ruby] ゲームの機種を出しているメーカーを表示します 調べたい機種を入力してください:PS3 「PS3はsonyが出している機種です。」 pan{c109063}% ./hash_search.rb [~/Ruby] ゲームの機種を出しているメーカーを表示します 調べたい機種を入力してください:PS2 「PS2はsonyが出している機種です。」 pan{c109063}% ./hash_search.rb [~/Ruby] ゲームの機種を出しているメーカーを表示します 調べたい機種を入力してください:PS 「PSはsonyが出している機種です。」 pan{c109063}% ./hash_search.rb [~/Ruby] ゲームの機種を出しているメーカーを表示します 調べたい機種を入力してください:PSP 「PSPはsonyが出している機種です。」 考察 検索したものがヒットし、メーカーが表示されたのでこのプログラムも正常に機 能していると言える。 3 家電製品(エアコンやテレビなど)のリモコンが該当すると思う。 今回は全く新しい分野と言うこともあり、取っ付きやすく感じた。しかし、難易 度はそれなりに高いものだった。そのため、かなりの時間を費やしてしまったの で、次回からはもっとスムーズに、また丁寧さも重視したレポートを書きたい。 共同学習者 後藤輝久 花木剛志