第9回 基礎プログラミング I レポート課題 氏名:宮川史礼 学籍番号:C1071948 語学クラス:英語1 コース(系):社会系 1.筆記問題 A 0x13 + 0x24 = 0x?? まず、このままでの計算はできないので、10進数に変えて計算する。 左から順当に16^1、16^0を掛ける。 1*16^1 + 3*16^0 = ?? この計算すると答えを出すことができる。 0x24も同様に計算していく。 2*16^1 + 4*16^0 = ?? 計算の結果と確認 1*16^1+3*16^0 19 2*16^1+4*16^0 36 19+36 55 そしてこれを2で割っていく 2)55 2)27 1 2)13 1 2) 6 1 2) 3 0 2) 1 1 110111 右から 4 つ区切って 2 進数に直す 11 0111 これを 10 進数に直した後 16 進数に直す 11 は 1 * 2 + 1 * 1 = 3 で 0111 は 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 7 これを 16 進数に直すと 3 は 3 になり 7 は 7 答えは 0x13 + 0x24 = 0x37 B 0x23 + 0x1e = 0x?? これも、前の問題を解いた方法で解いていく。 2*16^1 + 3*16^0 = ?? 次に1eだが、16進数のeは、10進数では 14になるので 1*16^1 + 14*16^0 = ?? となり、これを計算していく。 計算 2*16^1+3*16^0 35 1*16^1+14*16^0 30 35+30 65 そのつぎに65を2で割っていく 2)65 2)32 1 2)16 0 2)8 0 2)4 0 2)2 0 2)1 0 1000001これを右から4つ区切り2進数に直す。 100 0001 これを 10 進数に直した後 16 進数に直す。 100は、1 * 4 + 0 * 2 + 0 * 1 = 4で、 0001は0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 1 となり16進数に直すと4は4、1は1となる。 C 0xaa - 0x33 = 0x?? 最初に、2進数aは10進数のときには10になるので、aがふたつだから、0xaa=1010。 計算 10*16^1+10*16^0 170 3*16^1+3*16^0 51 170-51 119 つぎに119を2で割っていく 2)119 2)59 1 2)29 1 2)14 1 2)7 0 2)3 1 2)1 1 1110111 これを右から4つ区切りにして 111 0111 これを 10 進数に直した後 16 進数に直す。 111 は 1 * 4 + 1 * 2 + 1 * 1 = 7 0111 は 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 7 となり、16進数に直すと、どちらも7になる。 2.プログラム問題 A. 広告ホームページURL http://roy/~c107194/advertise/ これは実用部門にエントリーします。 B. プログラム内容 #!/usr/koeki/bin/ruby i = 0 city = ["米沢","甲府","小田原","仙台","近江八幡","大阪","熊本""静岡","広島","津","会津若松","姫路"] person = ["上杉謙信","武田信玄","北条氏康","伊逹政宗","織田信長","豊臣秀吉","加藤清正","徳川家康","毛利元就","藤堂高虎","蒲生氏郷","池田輝政"] place = ["伝国の杜","ワイナリー","小田原城","松島","琵琶湖","大阪城","熊本城","富士山","原爆ドーム","伊勢神宮","磐梯山","姫路城"] food = ["米沢牛","ほうとう","小田原提灯","レゲエパンチ(カクテル)","鮒寿司","たこ焼き","馬刺","お好み焼き","赤福","喜多方ラーメン","玉椿"] jinkou = [9,19,19,102,8,266,73,71,116,28,12,53] print("日本各地の、特に有名な戦国武将に関わりのある地域とその土地の名所名物 についての紹介をします。: \n") while i < city.length printf("%d: \n", i+1 ) printf("%sゆかりの戦国武将は%sで、観光名所は%s。特産品ないし有名なものは %sです。\n", city[i],person[i],place[i],food[i]) printf("人口は%d万人です。\n",jinkou[i]) i += 1 end print("検索終了\n") 実行結果 an{c107194}% ./kessaku.rb [~/public_html/advertise] 日本各地の、特に有名な戦国武将に関わりのある地域とその土地の名所名物 についての紹介をします。: 1: 米沢ゆかりの戦国武将は上杉謙信で、観光名所は伝国の杜。特産品ないし有名なものは 米沢牛です。 人口は9万人です。 2: 甲府ゆかりの戦国武将は武田信玄で、観光名所はワイナリー。特産品ないし有名なものは ほうとうです。 人口は19万人です。 3: 小田原ゆかりの戦国武将は北条氏康で、観光名所は小田原城。特産品ないし有名なものは 小田原提灯です。 4: 仙台ゆかりの戦国武将は伊逹政宗で、観光名所は松島。特産品ないし有名なものは レゲエパンチ(カクテル)です。 人口は102万人です。 5: 近江八幡ゆかりの戦国武将は織田信長で、観光名所は琵琶湖。特産品ないし有名なものは 鮒寿司です。 人口は8万人です。 6: 大阪ゆかりの戦国武将は豊臣秀吉で、観光名所は大阪城。特産品ないし有名なものは たこ焼きです。 人口は266万人です。 7: 熊本静岡ゆかりの戦国武将は加藤清正で、観光名所は熊本城。特産品ないし有名なものは 馬刺です。 人口は73万人です。 8: 広島ゆかりの戦国武将は徳川家康で、観光名所は富士山。特産品ないし有名なものは お好み焼きです。 人口は71万人です。 9: 津ゆかりの戦国武将は毛利元就で、観光名所は原爆ドーム。特産品ないし有名なものは 赤福です。 人口は116万人です。 10: 会津若松ゆかりの戦国武将は藤堂高虎で、観光名所は伊勢神宮。特産品ないし有名なものは 喜多方ラーメンです。 人口は28万人です。 11: 姫路ゆかりの戦国武将は蒲生氏郷で、観光名所は磐梯山。特産品ないし有名なものは 玉椿です。 人口は12万人です。 検索終了 pan{c107194}% [~/public_html/advertise] 考察 前回(第5回)の課題を下敷きに、更に手を加えた形の内容に仕上がったし、実行 の段にも、上手く機能したので問題は無く動いているのが確認できた。 感想 今回は少々、本腰を入れて取り組む前の数時間をだいぶだらだらとこなしてしまっ て、最終的に課題の決着が付くまでにずいぶん時間が懸かった。油断したという か、気が緩んでいた。ちなみに、また、例によって、筆記問題の方がやたらと時 間がかかってしまった気がする。プログラム問題の方については、特に出来栄え の良かったものを、いくらか品数を増やして改良するということをメインにした ので、そこでスムーズにはかどったと思う。 参考文献 基礎プログラミング I 第5回 配列の構造 「行先検索ソフト」 http://roy/~madoka/2010/r1/05/05_10_theme_08_ary_train.html 共同学習者または協力してくれたTA 横山広樹 久保田瑛一郎 工藤智也