第9回 基礎プログラミング I レポート課題 氏名:小松 由里 学籍番号:c109067 語学クラス:中国語1 コース(系):環境サイエンス 1、筆記問題 A、0x13 + 0x24 = 0x?? 0x は 16 進数なので、ASCII コード表を参考に10進数に変換する。 1 = 1 3 = 3 2 = 2 4 = 4 10の位・1の位でそれぞれ足す。 10の位… 1 + 2 = 3 1の位… 3 + 4 = 7 合わせると 37 になる。 よって、0x13 + 0x24 = 0x37 となる。 B、0x23 + 0x1e = 0x?? 0x は 16 進数なので、ASCII コード表を参考に10進数に変換する。 2 = 2 3 = 3 1 = 1 e = 14 10の位・1の位でそれぞれ足す。 10の位… 2 + 1 = 3 1の位… 3 + 14 = 17 17は10進数に合わないので、2進数になおす。 17 / 2 = 8…余り1 8 / 2 = 4…余り0 4 / 2 = 2…余り0 2 / 2 = 1…余り0 1 / 2 = 0…余り1 下から数字を読み上げると、10001 となる。 そして右端から数字を 4桁ずつ区切ると、1、0001 になる。 10進数に当てはめると、 1 = 1 0001 = 1 になる。 位ごとに足し算をすると、10の位… 3 + 1 = 4 数字を位ごとで並べると 41 となる。 よって、0x23 + 0x1e = 0x41 となる。 C、0xaa - 0x33 = 0x?? 0x は 16 進数なので、ASCII コード表を参考に10進数に変換する。 a = 10 a = 10 3 = 3 3 = 3 10の位・1の位それぞれの位で引算をする。 10 - 3 = 7 10 - 3 = 7 数字を位ごとで並べると 77 となる。 よって、0xaa - 0x33 = 0x77 となる。 2、プログラム問題 A、 ホームページ http://roy/~c109067/advertise/ 実用部門にエントリーします。 B、 a、考えた設定 曲名で検索してもらうプログラムを考えた。アルバムを番号で選択し、選択した アルバムに編集されている曲一覧から更に番号で選び、検索できるプログラムを 作成した。 b、作成したプログラム(ringo.rb) #!/usr/koeki/bin/ruby n = Array.new # 曲名 y = Array.new # 読み仮名 a = Array.new # アルバム名 r = Array.new # リリース年 i = 0 # 配列番号 print(`banner "siinaringo"`) # バナーで SIINARINGO と表示させる print("検索\n") print("『三文ゴシップ』なら 01 、『私と放電』なら 02 、『加爾基 精液 栗ノ花』な ら 03\n") STDERR.print("番号:") ringo = STDIN.gets.chomp # 与えられた 番号 を1行ずつ読み込む。 kensaku = Regexp.new(ringo, true, "e") # 前の行で読み込んだものを正規表現に変える。 # true…大文字・小文字を区別しない。 # e…日本語で検索する場合に使用する。 open("ringo.dat","r") do |ri| # ringo.dat を読み取り、ri という名前に置き換える while ringo = ri.gets # 繰り返し、ri の中身がなくなったら終わる。 if kensaku =~ ringo if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)年/ =~ ringo n[i] = $1 y[i] = $2 a[i] = $3 r[i] = $4 printf("%d : %s\n",i,n[i]) end end i += 1 # 次のものを読み込むために +1 をする end end print(" ----------- 椎名 林檎 --------- \n") STDERR.print("知りたい番号を入力して下さい\n") w = gets.chomp.to_i # ユーザーが打ち込んだものを整数に変換 # して w に入れる printf("曲名 : %s \n",n[w]) print("\n") printf("読み : %s \n",y[w]) print("\n") printf("アルバム : %s \n",a[w]) print("\n") printf("リリース年 : %d 年 \n",r[w]) c、もとにしたプログラム banner.rb を参考にした。打ち込む文字を変更した。 regexp_select.rb を参考にした。変数を変更した。 d、プログラム実行画面 pan{c109067}% ./ringo.rb [~/public_html/advertise] #### # # # # ## ##### # # # #### #### # # # ## # # # # # # ## # # # # # #### # # # # # # # # # # # # # # # # # # # # # # ###### ##### # # # # # ### # # # # # # # ## # # # # # # ## # # # # #### # # # # # # # # # # # #### #### 検索 『三文ゴシップ』なら 01 、『私と放電』なら 02 、『加爾基 精液 栗ノ花』な ら 03 番号:01 1 : 流行 2 : 労働者 3 : 密偵物語 4 : 0地点から 5 : カリソメ乙女 6 : 都合のいい身体 7 : 旬 8 : 二人ぼっち時間 9 : マヤカシ優男 10 : 尖った手口 11 : 色恋沙汰 12 : 凡才肌 13 : 余興 ----------- 椎名 林檎 --------- 知りたい番号を入力して下さい 1 曲名 : 流行 読み : (りゅうこう) アルバム : 三文ゴシップ リリース年 : 2009 年 e、考察 #### # # # # ## ##### # # # #### #### # # # ## # # # # # # ## # # # # # #### # # # # # # # # # # # # # # # # # # # # # # ###### ##### # # # # # ### # # # # # # # ## # # # # # # ## # # # # #### # # # # # # # # # # # #### #### 検索 『三文ゴシップ』なら 01 、『私と放電』なら 02 、『加爾基 精液 栗ノ花』な ら 03 番号:01 1 : 流行 2 : 労働者 3 : 密偵物語 4 : 0地点から 5 : カリソメ乙女 6 : 都合のいい身体 7 : 旬 8 : 二人ぼっち時間 9 : マヤカシ優男 10 : 尖った手口 11 : 色恋沙汰 12 : 凡才肌 13 : 余興 ----------- 椎名 林檎 --------- 知りたい番号を入力して下さい 1 曲名 : 流行 ------------------------------------------------------------------------------ #### # # # # ## ##### # # # #### #### # # # ## # # # # # # ## # # # # # #### # # # # # # # # # # # # # # # # # # # # # # ###### ##### # # # # # ### # # # # # # # ## # # # # # # ## # # # # #### # # # # # # # # # # # #### #### 検索 『三文ゴシップ』なら 01 、『私と放電』なら 02 、『加爾基 精液 栗ノ花』な ら 03 番号:02 16 : すべりだい 21 : 眩暈 22 : 輪廻ハイライト 23 : あおぞら 24 : 時が暴走する 25 : Σ 26 : 東京の女 27 : 17 28 : 君ノ瞳ニ恋シテル 29 : メロウ 30 : 不幸自慢 31 : 喪@CエNコ瑠ヲュWァ 32 : 愛妻家の朝食 33 : シドと白昼夢 34 : 意識 35 : 迷彩 36 : bain 37 : 錯乱 38 : 映日紅の花 ----------- 椎名 林檎 --------- 知りたい番号を入力して下さい 30 曲名 : 不幸自慢 読み : (ふこうじまん) アルバム : 私と放電 リリース年 : 2008 年 ------------------------------------------------------------------------------- #### # # # # ## ##### # # # #### #### # # # ## # # # # # # ## # # # # # #### # # # # # # # # # # # # # # # # # # # # # # ###### ##### # # # # # ### # # # # # # # ## # # # # # # ## # # # # #### # # # # # # # # # # # #### #### 検索 『三文ゴシップ』なら 01 、『私と放電』なら 02 、『加爾基 精液 栗ノ花』な ら 03 番号:03 39 : 加爾基 40 : (ドッッペルゲンガー) 41 : 迷彩 42 : おだいじに 43 : やつつけ仕事 44 : 茎 45 : とりこし苦労 46 : おこのみで 47 : 意識 48 : ポルターガイスト 49 : 葬列 50 : ギャンブル 51 : ハツコイ娼女 52 : パパイヤマンゴー 53 : ポルターガイスト 54 : 花魁 55 : 夢のあと 56 : この世の限り ----------- 椎名 林檎 --------- 知りたい番号を入力して下さい 56 曲名 : この世の限り 読み : (このよのかぎり) アルバム : 平成風俗 リリース年 : 2007 年 ------------------------------------------------------------------------------ 各アルバムのプログラムを01、02、03、と実行したところ、正確に各アルバムに 編集されている曲名が表示された。よってこのプログラムは正しい。 3、学んだこと・感想 学んだこと ・rand…乱数を発生させる。 ・" " * x …空白を x の値の分繰り返す。 ・`banner" "`… " "内に打ち込んだ文字をバナーで表示させる。 ・print("文字列" * 回数) …文字列を繰り返して表示させる。 ・sleep 杪数 …指定された杪数の間は実行しない。 感想 今回のプログラム作成では、自分で作成しアルバム名を表示させ、数字を打ち込 む段階までは出来たが、数字を打ち込んでも表示されず、友達から教えてもらい ながら作成した。教えてもらう中、自分が作成したプログラムのミスが目立った ので、今後気を付けていかなければならないと思った。 しかし、何故自分で作成したプログラムが起動しなかったのか、説明してもらい ながら作成することができたので、更に理解を深めることが出来た。 今回学んだことを再度復習して、きちんと理解できるようになりたい。 共同学習者 横山 広樹 久保田 瑛一郎 伊藤 彩 協力してくれた先輩 大沼 拓海 さん 参考文献 西村 まどか 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング 「駅名だけを切り出そう」 http://roy/~madoka/2010/r1/07/07_08_theme_07_parenthesis.html 基礎プログラミング I 第9回 Ruby であそぼ / 広告ページの作成 「バナー」 http://roy/~madoka/2010/r1/09/09_06_theme_04_banner.html 神田 直弥 16進数・ASCIIコード http://roy/~naoya/ruby/9.html