第5回 基礎プログラミング I レポート課題 氏名:XXXXXXXX 学籍番号:c109XXX 語学クラス:英語3 コース(系):地域共創 1.筆記問題 A.まず始めに、while文をASCIIコードに変換する。 printf("%c%c%c%c%c%c%c%cに会いたいぞよ\n", 0x6f,0x6b,0x6f,0x72,0x69,0x6e,0x62,0x6f) 6f = o 6b = k 6f = o 72 = r 69 = i 6e = n 62 = b 6f = o printf("http://www9.%c%c%c.or.jp/%c%c%c%c%c/%c%c%c%c%c/%c%c%c%c%c/ %c%c%c%c%c/%c%c%c.html\n", 0x6e, 0x68, 0x6b, 0x61, 0x6e, 0x69, 0x6d, 0x65, 0x6f, 0x6a, 0x61, 0x72, 0x75, 0x63, 0x68, 0x61, 0x72, 0x61, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x6f, 0x6b, 0x6f) 6e = n 6f = o 72 = r 6b = k 68 = h 6a = j 61 = a 6f = o 6b = k 61 = a 70 = p 61 = a 72 = r 6f = o 6e = n 75 = u 70 = p 69 = i 63 = c 75 = u 6d = m 68 = h 70 = p 65 = e 61 = a 6f = o これら二つをwhile文に当てはめていくと、 printf("okorinboに会いたいぞよ\n" printf("http://www9.nhk.or.jp/anime/ojaru/chara/popup/oko.html\n" となる。 このURLを入力すると、NHK教育テレビの「おじゃる丸」の番組放送ページへ 行くことができる。okorinbo とは、おじゃる丸に登場する満願神社の狛犬の 「オコリン坊」のことである。 よって、瑠美姫の理想の番人は「オコリン坊」。 ・Ktermで暴走した時 計算プログラムで文字が無限に表示されて止まらないことがある。そうなっ たら、Ctrl+cを押せば止まる。 その後、入力したプログラム文で間違っている行数が表示されるので、それ を正確に直せば暴走しなくなる。 B.0d は10進数、0b は2進数を表している。10進数から2進数に変換する場合、 数字を 2 で割っていく。 答えが 0 になるまで計算したら、「最後に出た余り」から「最初に出た余 り」を順に並べる。 a.0d42 42 / 2 = 21 … 0 21 / 2 = 10 … 1 10 / 2 = 5 … 0 5 / 2 = 2 … 1 2 / 2 = 1 … 0 1 / 2 = 0 … 1 #余りを下から順に並べる。 よって、答えは 0b101010 となる。 b.0d51 51 / 2 = 25 … 1 25 / 2 = 12 … 1 12 / 2 = 6 … 0 6 / 2 = 3 … 0 3 / 2 = 1 … 1 1 / 2 = 0 … 1 #余りを下から順に並べる。 よって、答えは 0b110011 となる。 2.プログラム問題 A.3人の友達とすき家へ行った。 そこで注文するメニューの紹介、商品名、カロリー、値段を表示するように 設定した。値段の合計と平均も出す。 ・元にしたプログラム 講義で作った ary_train.rb のプログラム #!/usr/koeki/bin/ruby sukiya = Array.new i = 0 total = 0 #合計を表す average = 0 #平均を表す sukiya[0] = ["友達A","「安全と安心にこだわった」","牛丼","634kcal",280] sukiya[1] = ["友達B","「すき家トッピング牛丼元祖」","キムチ牛丼","662kcal",360] sukiya[2] = ["友達C","「さわやかな食感」","ねぎ玉牛丼","746kcal",380] sukiya[3] = ["自分","「チーズのコクとまろやかさが合う」","3種のチーズ牛丼", "776kcal",380] print("すき家に友人と来た。\n") while i < 4 printf("メニュー(並盛) %d\n", i + 1) printf("%s の注文は %s と言われる %s です。ちなみに、%s です。\n", sukiya[i][0],sukiya[i][1],sukiya[i][2],sukiya[i][3]) printf("値段は %d 円です。\n",sukiya[i][4]) total += sukiya[i][4] i +=1 end average = total / 4 average = average.to_i printf("値段の合計は %d 円です。\n",total) printf("値段の平均は %d 円です。\n",average) printf("ごちそうさまでしたー! \n") ・実行結果 pan{c109014}% ./form_a.rb [~/Ruby] すき家に友人と来た。 メニュー(並盛) 1 友達A の注文は 「安全と安心にこだわった」 と言われる 牛丼 です。ちなみに、634kcal です。 値段は 280 円です。 メニュー(並盛) 2 友達B の注文は 「すき家トッピング牛丼元祖」 と言われる キムチ牛丼 です。ちなみに、662kcal です。 値段は 360 円です。 メニュー(並盛) 3 友達C の注文は 「さわやかな食感」 と言われる ねぎ玉牛丼 です。ちなみに、746kcal です。 値段は 380 円です。 メニュー(並盛) 4 自分 の注文は 「チーズのコクとまろやかさが合う」 と言われる 3種のチーズ牛丼 です。ちなみに、776kcal です。 値段は 380 円です。 値段の合計は 1400 円です。 値段の平均は 350 円です。 ごちそうさまでしたー! ・計算 pan{c109014}% bc -l [~/Ruby] 280 + 360 640 640 + 380 1020 1020 + 380 1400 1400 / 4 350.00000000000000000000 quit 合計と平均をKtermで計算した結果、実行結果で表示されたものと一致した。 ・考察 プログラムを入力する時に、「,」の入れ忘れが一つあるだけで実行しなかった ので注意しながら修正した。 3.感想 このプログラムが日常の中でたくさん使われているのだから、重要なことを学ん だと思います。自分でプログラムを作るうえで一番大変だったのは、プログラム の設定を考えることでした。あまり難しい設定を考えると、プログラムが上手く 実行しなくなってしまった。 日常で使われているか怪しいですが、自分の名前・血液型・生年月日を入力して 何かしらの結果を出す脳内メーカーが例として挙げられると思います。試したこ とはありますが、一体どんなプログラムの仕方をしているか何とも言えない結果 が出るものでした。 講義の内容は毎回覚えることがたくさんあるので、とにかくノートに書き留める ことを忘れないようにして、次回も頑張りたいです。 参考文献 すき家WEBサイト(携帯電話から検索) http://www.sukiya.jp/m/index.swf 第5回講義ページ 1.ASCIIコード表 http://roy/~madoka/2010/r1/05/ 2009年度第5回講義ページ 先輩のレポート http://roy/~madoka/2009/r1/05/crt.html Ruby プログラミング基礎講座 著・広瀬雄二 共同学習者 ・藤井 駿 5月18日、19日、20日 ・花木 剛志 5月20日 ・佐藤 裕康 5月21日