第9回 基礎プログラミング I レポート課題 氏名:遠藤裕貴 学籍番号:c1090294 語学クラス:中国語 コース(系):政策マネ 1.筆記問題 A. 0x13 + 0x24 = 0x?? 2桁ある数字をそれぞれ分ける。 0x13 = 1、3 0x24 = 2、4 対応表よりそれらを10進数へ変換する。 1 = 1 3 = 3 2 = 2 4 = 4 そして、位ごとに足し算する。 1 + 2 = 3 3 + 4 = 7 出た答えは10進数なので、対応表より16進数へ変換する。 3 = 3 7 = 7 3は十のくらい、7は一のくらいなので順番に並べると 37 よって答えは 0x37 B. 0x23 + 0x1e = 0x?? 2桁ある数字をそれぞれ分ける。 0x23 = 2、3 0x1e = 1、e 対応表よりそれらを10進数へ変換する。 2 = 2 3 = 3 1 = 1 e = 14 そして、位ごとに足し算。 2 + 1 = 3 3 + 14 = 17 出た答えは10進数なので、対応表より16進数へ変換する。 3 = 3 17は対応表を参考に出来ないので、2進数に変換してから16進数へ変換する。 17/2 = 8 余り1 8/2 = 4 余り0 4/2 = 2 余り0 2/2 = 1 余り0 1/2 = 0 余り1 下から順番に並べると 10001 となるので、右から4桁ずつ区切ると、 1/0001 となる。それを変換表より16進数に当てはめる。 1 = 1 0001 = 1 位を間違えずに計算する。 3 + 1 =4 、 1 よって答えは 0x41 C. 0xaa - 0x33 = 0x?? 2桁ある数字をそれぞれ分ける。 0xaa = a 、a 0x33 = 3、 3 対応表より10進数に変換する。 a = 10 a = 10 3 = 3 3 = 3 これらを位ごとに引き算する。 10 - 3 = 7 10 - 3 = 7 出た答えは10進数なので、対応表より16進数へ変換する。 7 = 7 7 = 7 位を間違えないように並べる。 よって答えは 0x77 2.プログラム問題 広告ページURL http://roy/~c109029/advertise/index.html ・プログラム本体 #!/usr/koeki/bin/ruby print("これから文字を並び変えて正しい言葉にしてね。\n") print("あなたは何問解けるかな??\n") sleep 2 #2秒間の間を空ける print("まずは第1問。\n\n")#\n\n で2行文改行する。 print("せきせんゆう\n\n\n") x = gets.chomp #gets.chompでユーザが入力した文字を取ってくる。 if x == "ゆうせんせき" print("正解!!楽勝だね。\n\n") else print("不正解。しっかり頭使おうよ!。\n\n") print("また挑戦してね") exit end #ifに対するend print("続いて第2問。\n\n") print("さいんえがく\n\n\n") y = gets.chomp if y == "がくえんさい" print("正解!!どんどん行こう。\n\n") else print("不正解。残念でした〜\n\n") print("また挑戦してね") exit end print("続いて第3問。\n\n") print("よけいういた\n\n\n") z= gets.chomp if z == "たいようけい" print("正解!!いいよ〜。\n\n") else print("不正解。しっかりしなよ\n\n") print("また挑戦してね") exit end print("続いて第4問。\n\n") print("どくろそうこう\n\n\n") a = gets.chomp if a == "こうそくどうろ" print("正解!!その調子!!\n\n") else print("不正解。頑張ろー\n\n") print("また挑戦してね") exit end print("続いて第5問\n\n") print("こううんそば\n\n\n") b = gets.chomp if b == "ばんそうこう" print("正解!!\n\n") else print("不正解。頑張って!!\n\n") print("また挑戦してね") exit end print("続いて第6問\n\n") print("めしがそうなん\n\n\n") c = gets.chomp if c == "ながしそうめん" print("正解!!やるね〜\n\n") else print("不正解。おしい!!\n\n") print("また挑戦してね") exit end print("続いて第7問\n\n") print("かんからめし\n\n\n") d = gets.chomp if d == "かんしかめら" print("正解!!やるね〜\n\n") else print("不正解。また頑張ろう!!\n\n") end print("続いて第8問\n\n") print("じんけんていか\n\n\n") e = gets.chomp if e == "かんじけんてい" print("正解!!やるね〜\n\n") else print("不正解。!!\n\n") print("また挑戦してね") exit end print("続いて第9問\n\n") print("おんないいます\n\n\n") f = gets.chomp if f == "まいなすいおん" print("正解!!やるね〜\n\n") else print("不正解。!!\n\n") end print("続いて第10問\n\n") print("けんこうたいせい\n\n\n") g = gets.chomp if g == "せいけんこうたい" print("正解!!おめでとう\n\n") else print("不正解。おしい!!\n\n") print("また挑戦してね") exit end print("おつかれさま。これで終わりだよ。\n") print("また挑戦してね。\n") ・実行結果 全問正解した場合 pan{c109029}% ./atamataisou.rb [~/public_html/advertise] これから文字を並び変えて正しい言葉にしてね。 あなたは何問解けるかな?? まずは第1問。 せきせんゆう ゆうせんせき 正解!!楽勝だね。 続いて第2問。 さいんえがく がくえんさい 正解!!どんどん行こう。 続いて第3問。 よけいういた たいようけい 正解!!いいよ〜。 続いて第4問。 どくろそうこう こうそくどうろ 正解!!その調子!! 続いて第5問 こううんそば ばんそうこう 正解!! 続いて第6問 めしがそうなん ながしそうめん 正解!!やるね〜 続いて第7問 かんからめし かんしかめら 正解!!やるね〜 続いて第8問 じんけんていか かんじけんてい 正解!!やるね〜 続いて第9問 おんないいます まいなすいおん 正解!!やるね〜 続いて第10問 けんこうたいせい せいけんこうたい 正解!!おめでとう おつかれさま。これで終わりだよ。 また挑戦してね。 途中で間違えた場合 pan{c109029}% ./atamataisou.rb [~/public_html/advertise] これから文字を並び変えて正しい言葉にしてね。 あなたは何問解けるかな?? まずは第1問。 せきせんゆう あ 不正解。しっかり頭使おうよ!。 また挑戦してね% ・考察 負けた場合、その場で終了するようにした。 ・感想 楽しめるを作れたので良かった。ホームページの色に拘り、イグアナをイメー ジしてデザインした。実行できたときにはとても感動した。 ・参考文献 基礎プログラミング I 第9回 Ruby であそぼ / 広告ページの作成 基礎プログラミング I 第8回 電子チケットを作ろう 「色をつけよう」 http://roy/~madoka/2010/r1/08/08_11_review_06_colorandfonts.html 基礎プログラミング I 第8回 電子チケットを作ろう 「CSS の色見本」 http://roy/~madoka/2010/r1/08/08_12_appendix_01_safecolor.html 著者:西村まどか 2進数、16進数と10進数 http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html ・共同研究者 木内雄、 横山氏