第9回 基礎プログラミング I レポート課題 氏名:大島 藍 学籍番号:C1090331 語学クラス:中国語 コース(系):福祉 1、筆記問題 A、0x13 + 0x24 = 0x?? 10進数に戻して計算する。まず、13 に右から 16^0 と 16^1 をかけてたす。 すると、 1 * 16^1 + 3 * 16^0 = 19 24も同じようにして、 2 * 16^1 + 4 * 16^0 = 36 10進数なので 19 + 36 = 55 次に 10 進数の55を 16 進数に戻すため、55 を 2 でわっていく。 2 / 55 2 / 27 1 2 / 13 1 2 / 6 1 2 / 3 0 1 1 そして、110111 を 4つにすると、11 0111 になる。次に 10 進数に直して 16 進 数にする。10進数では 11= 3 、 0111 = 7 になり 16 進数では 3 、7 にな る。 よって 0x13 + 0x24 = 0x37 である。 B、0x23 + 0x1e = 0x?? 前の問題と同じように、10進数に戻して計算する。まず、23 に右から 16^0 と 16^1 をかけてたす。e は 16進数だと、14なので14で計算する。 すると 2 * 16^1 + 3 * 16^0 = 35 1 * 16^1 + 14 * 16^0 = 30 10進数なので 35 + 30 = 65 次に 10 進数の65を 16 進数に戻すため、65 を 2でわっていく。 2 / 65 2 / 32 1 2 / 16 0 2 / 8 0 2 / 4 0 2 / 2 0 1 0 そして、1000001 を4つにすると、100 0001 になる。次に 10 進数に戻して、16 進数にする。10 進数では、100 = 4 、0001 = 1 になり 16 進数では、4 、1 になる。 よって 0x23 + 0x1e = 0x41 になる。 C、0xaa - 0x33 = 0x?? 前の問題と同じようにして、 + を - に変える。 10 進数に戻して計算する。a は16進数では 10 なのでまず、10 に右から 16^0 と 16^1 をかけてひく。 すると 10 * 16^1 + 10 * 16^0 = 170 3 * 16^1 + 3 * 16^0 = 51 10進数なので 170 - 51 = 119 次に 10進数の119を 16 進数に戻すため、119 を 2でわっていく。 2 / 119 2 / 59 1 2 / 29 1 2 / 14 1 2 / 7 0 2 / 3 1 1 1 そして、1110111 を4つにする。111 と 0111 にする。今度 10 進数に戻して 16 進数にする。10 進数では、111 = 7 、0111 = 7 になり 16進数では、7 、7 に なる。 よって 0xaa - 0x33 = 0x77 である。 2進数 10進数 16進数 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8 8 1001 9 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F 2進数 10進数 16進数 に変換する時は、上記をみて表記する。 2、プログラム問題 A、 http://roy/~c109033/advertise/ 実用部門にエントリーする。 B、 ・プログラム本体 #!/usr/koeki/bin/ruby name = Array.new #name という配列をつくる pojisyon = Array.new #pojisyon という配列をつくる zaisekisuu = Array.new #zaisekisuu という配列をつくる nanba = Array.new #nanba という配列をつくる i = 0 #配列の番号 open("basuke.dat","r") do |h| #basuke.dat というファイルに書く #hはファイル名 while buy = h.gets #hがなくなっら終了 if/(\S+)\s+(\S+)\s+(\d+)年在籍\s+(\d+)/ =~ buy #文字列 空白 文字列 空白 数字 在籍数 空白 数字 に #マッチするものを buy の中にいれる name[i] = $1 # $1 をname という配列にいれる pojisyon[i] = $2 # $2 をpojisyon という配列にいれる zaisekisuu[i] = $3.to_i # $3 を正数に変換して zaisekisuu # という配列にいれる nanba[i] = $4.to_i # $4 を正数に変換して nanba と # いう配列にいれる printf("%s は %s のポジションで %d 年在籍していて %d のナンバーを背負っ ている。\n",name[i],pojisyon[i],zaisekisuu[i],nanba[i]) end # if に対する end end # while に対する end end # open に対するend ------------------------------------------------------------------------------- ・プログラム本体のデータ 名前 ポジション 在籍数 ナンバー ティム・ダンカン F 13年在籍 21 マヌー・ジノビリー G 11年在籍 20 リチャード・ジェファーソン F 9年在籍 24 トニー・パーカー G 9年在籍 9 ロジャー・メイソン G 8年在籍 8 キース・ポーカンス G 7年在籍 10 マット・ポナー F 7年在籍 15 イアン・マヒーミ C 5年在籍 28 ジェージ・ヒル G 2年在籍 3 マリーク・ヘアストーン G 2年在籍 1 デュワン・プレアー F 1年在籍 45 ギャレット・テンブル G 1年在籍 2 アロンジ・ギー G 1年在籍 23 カーティス・ジュレルス G 1年在籍 5 -------------------------------------------------------------------------------- ・実行結果 pan{c109033}% ./basuke.rb [~/public_html/advertise] ティム・ダンカン は F のポジションで 13 年在籍していて 21 のナンバーを背負っている。 マヌー・ジノビリー は G のポジションで 11 年在籍していて 20 のナンバーを背負っている。 リチャード・ジェファーソン は F のポジションで 9 年在籍していて 24 のナンバーを背負っている。 トニー・パーカー は G のポジションで 9 年在籍していて 9 のナンバーを背負っている。 ロジャー・メイソン は G のポジションで 8 年在籍していて 8 のナンバーを背負っている。 キース・ポーカンス は G のポジションで 7 年在籍していて 10 のナンバーを背負っている。 マット・ポナー は F のポジションで 7 年在籍していて 15 のナンバーを背負っている。 イアン・マヒーミ は C のポジションで 5 年在籍していて 28 のナンバーを背負っている。 ジェージ・ヒル は G のポジションで 2 年在籍していて 3 のナンバーを背負っている。 マリーク・ヘアストーン は G のポジションで 2 年在籍していて 1 のナンバーを背負っている。 デュワン・プレアー は F のポジションで 1 年在籍していて 45 のナンバーを背負っている。 ギャレット・テンブル は G のポジションで 1 年在籍していて 2 のナンバーを背負っている。 アロンジ・ギー は G のポジションで 1 年在籍していて 23 のナンバーを背負っている。 カーティス・ジュレルス は G のポジションで 1 年在籍していて 5 のナンバーを背負っている。 ・考察 プログラム画面とプログラムの実行画面を見ると出力したい内容が、ちゃんと出 力されている。なので、プログラムは正常に作動しているといえる。 ・感想 前の授業のやつを元にプログラムを作成していった。ホームページの見栄えはい いけど、少しシンプルすぎたことが反省点だ。先週の課題で出来なかった色の はりつけができたので良かった。だから、来週の課題も頑張りたいと思った。 ・参考文献 西村 まどか http://roy/~madoka/2009/r1/09/rpt/c108063/puroguramu.desc 西村 まどか http://roy/~madoka/2009/r1/09/09-07-color.html 西村 まどか http://roy/~madoka/2010/r1/08/08_12_appendix_01_safecolor.html 西村 まどか http://roy/~madoka/2010/r1/08/08_06_theme_01_structure.html 西村 まどか http://roy/~madoka/2010/r1/08/08_09_theme_04_tabletag.html 西村 まどか http://roy/~madoka/2010/r1/08/08_11_review_06_colorandfonts.html 広瀬 雄二 72ページ 16進数変換 http://7ujm.net/play/DECtoHEX/TOH.html 共同学習者 青木 千紗 / 横山 広樹 / 久保田 瑛一郎