第 2 回 なになにといえばこれこれ レポート課題 氏名:水口天地 学籍番号:c1101862 語学クラス:英語2 コース(系):地域共創 1.筆記問題 A. プロ野球選手の所属チームを hash 配列 player とた。 player の key と value はそれぞれ選手名とその所属チームにとった。 その 1: key 「ダルビッシュ有」に対して value は「日本ハムファイターズ」 その 2: key 「青木宣親」 に対して value は「ヤクルトスワローズ」 その 3: key 「田中将大」 に対して value は「東北楽天ゴールデンイーグルス」 その 4: key 「坂本隼人」に対して value は「読売ジャイアンツ」 その 5: key 「イチロー」に対して value は「シアトルマリナーズ」 これに対する Hash の表し方は、 azi["ダルビッシュ有"] = "日本ハムファイターズ" azi["青木宣親"] = "ヤクルトスワローズ" azi[田中将大""] = "東北楽天ゴールデンイーグルス" azi["坂本隼人"] = "読売ジャイアンツ" azi["イチロー"] = "シアトルマリナーズ" また、もう一つの表し方は、 { "ダルビッシュ有" => "日本ハムファイターズ", "青木宣親" => "ヤクルトスワローズ", "田中将大" => "東北楽天ゴールデンイーグルス", "坂本隼人" => "読売ジャイアンツ", "イチロー" => "シアトルマリナーズ" } B.計算問題 a. 0d 2010 = 0x ?? 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] よって 0d 2010 = 0b 11111011010 これを右から4桁ずつ区切ると 「0111」 「1101」 「1010」 対応表より 0111 = 7 1101 = d 1010 = a したがって 0d2010 = 0x7da b. 0d 2010 = 0b ?? a より 0d 2010 = 0b 11111011010 よってこれを右から4桁ずつ区切ると 「0111」 「1101」 「1010」 「0111」 「1101」 「1010」 0 * 2^3 = 0 1 * 2^3 = 8 1 * 2^3 = 8 1 * 2^2 = 4 1 * 2^2 = 4 0 * 2^2 = 0 1 * 2^1 = 2 0 * 2^1 = 0 1 * 2^1 = 2 1 * 2^0 = 1 1 * 2^0 = 1 0 * 2^0 = 0 0 + 4 + 2 + 1 =7 8 + 4 + 0 + 1 = 13 8 + 0 + 2 + 0 = 10 したがって 0d2010 = 0xda 2.プログラム問題 ○作成したプログラム○ #!/usr/koeki/bin/ruby $KCODE = 'e' # 文字化け防止 player = Hash.new # 配列を player にする player["ダルビッシュ有"] = "日本ハムファイターズ" player["青木宣親"] = "ヤクルトスワローズ" player["田中将大"] = "東北楽天ゴールデンイーグルス" player["坂本隼人"] = "読売ジャイアンツ" player["イチロー"] = "シアトルマリナーズ" print("[ダルビッシュ有・青木宣親・田中将大・坂本隼人・イチロー]\n") STDERR.print("所属チームを知りたい選手を入力: ") choice = gets.chomp # 入力された文字を choice として取り込む if player.key?(choice) == true # 文字列 choice があり、true であれば調べる printf("\n%sは %sの選手です。\n", choice, player[choice]) else printf("\n%sは、googleで検索して下さい。\n", choice) end ○実行結果○ pan{c110186}% ./hash_choice.rb [~/ruby] [ダルビッシュ有・青木宣親・田中将大・坂本隼人・イチロー] 所属チームを知りたい選手を入力: ダルビッシュ有 ダルビッシュ有は 日本ハムファイターズの選手です。 pan{c110186}% ./hash_choice.rb [~/ruby] [ダルビッシュ有・青木宣親・田中将大・坂本隼人・イチロー] 所属チームを知りたい選手を入力: イチロー イチローは シアトルマリナーズの選手です。 pan{c110186}% ./hash_choice.rb [~/ruby] [ダルビッシュ有・青木宣親・田中将大・坂本隼人・イチロー] 所属チームを知りたい選手を入力: ハンカチ王子 ハンカチ王子は、googleで検索して下さい。 ○考察○ プログラムに存在するデータを入力すると選手名と対になっている所属チーム が表示された。データにない文字を入力すると「googleで検索して下さい。」と 表示される。このことから設定通りにプログラムを作成できたといえる。 ○感想○ 授業ではプログラムを作ることで精一杯で、今回の課題がちゃんと作成できる かどうかとても不安だった。しかし、何度も作業しているうちに、なんとなくプ ログラムで使用されているものの意味が少し分かるようになった。 こういったプログラムはユーザー登録などに使われていると思った。 もっとプログラムの意味が理解できるように、復習してまた頑張っていきたい。 ○参考文献○ 西村まどか 基礎プログラミングII 第2回 なになにといえばこれこれ