第5回 基礎プログラミング I レポート課題 氏名:XXXXXXXXXX 学籍番号:C109XXX 語学クラス:中国語 コース(系):地域共創コース 1、筆記問題 A. 問題にはprintprintfと記入されおり、プログラム文だと思ったので プログラムを作成してみることにした。 ・プログラム本体(hime.rb) #!/usr/koeki/bin/ruby printf("%c%c%c%c%c%c%c%cに会いたいぞよ\n", 0x6f,0x6b,0x6f,0x72,0x69,0x6e,0x62,0x6f) 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) ・実行結果 pan{c109001}% ./hime.rb [~/Ruby] okorinboに会いたいぞよ http://www9.nhk.or.jp/anime/ojaru/chara/popup/oko.html ・考察 実行したプログラムにURLが記載されていた。 このURLはwebページだと推測したので、見ることにした。 これを見てみると、おじゃる丸のオコリン坊(okorinbo)のページであった。 つまり、瑠美姫はオコリン坊が理想の番人である。 また、プログラムを実行して暴走してしまったときは、 Ctrl+cで暴走を止めることができる。 ASCII コード表で確かめてみることにした。 0x6f o 0x6b k 0x6f o 0x72 r 0x69 i 0x6e n 0x62 b 0x6f o okorinboときちんと表示されたので、正しく実行されていることが分かった。 よって、このプログラムは正確に機能しているといえる。 B. 10進数から2進数へ変換するには、10進数を2で割っていく。 計算後に、余りを下から順に並べる。 a 0d42 42/2 = 21余り0 21/2 = 10余り1 10/2 = 5余り0 5/2 = 2余り1 2/2 = 1余り0 1/2 = 余り1 = 101010(2進数) 0d42 = 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 = 余り1 = 110011(2進数) 0d51 = 0b110011 2.プログラム問題 選択(B) プログラム問題Bを作成するにあたってプログラム問題Aを作成した。 A.プログラム(form_a.rb) ジブリ映画の作品を表示し、主題歌・主人公・公開年月日・興行収益の以上の要 素を取れ、合計興行収益・平均興行収益を表示するプログラムを作成した。 ・プログラム本体 #!/usr/koeki/bin/ruby i = 0 # 配列の先頭から始まる 配列の先頭は0。続いて1、2、3…となる。 totalmoney = 0 # 興行収益の合計値は初期値は0 title = ["となりのトトロ", "魔女の宅急便", "千と千尋の神隠し", "崖の上のポニョ", "ハウルの動く城", "風の谷のナウシカ", "もののけ姫", "天空の城ラピュタ", "紅の豚", "ゲド戦記", "猫の恩返し", "耳をすませば", "火垂るの墓", "おもひでぽろぽろ", "平成狸合戦ぽんぽこ", "ホーホケキョ となりの山田くん"] # 作品のタイトル themesong = ["さんぽ", "やさしさに包まれたなら", "いつも何度でも", "崖の上のポニョ", "世界の約束", "風の谷のナウシカ", "もののけ姫", "君をのせて", "時には昔の話を", "テルーの唄", "風になる", "カントリー・ロード", "埴生の宿", "愛の花、君はその種子", "アジアのこの街で", "ひとりぼっちはやめた"] # 作品の主題歌 hero = ["トトロ", "キキ", "萩野 千尋(千)", "ポニョ、宗介", "ソフィー・ハッター、ハウル", "ナウシカ", "アシタカ、サン", "パズー", "マルコ・パゴット", "アレン", "吉岡 ハル", "月島 雫、天沢 聖司", "清太、節子", "岡島 タエ子", "正吉", "山田のの"] # 作品の主人公 openyear = [1988, 1989, 2001, 2008, 2004, 1984, 1997, 1986, 1992, 2006, 2002, 1995, 1988, 1991, 1994, 1999] # 作品の公開年数 openmonth = [4, 7, 7, 7, 11, 3, 7, 8, 7, 7, 7, 7, 4, 7, 7, 7] #作品の公開月 openday = [16, 29, 20, 19, 20, 11, 12, 2, 18, 29, 20, 15, 16, 20, 16, 17] #作品の公開日 money = [11, 43, 304, 155, 196, 14, 193, 11, 54, 76, 64, 33, 5, 32, 44, 7] #作品の興行収益 while i < title.length # 配列の0から始まり要素数の数だけ繰り返す printf("\n作品 %d: \n", i + 1) # 作品の順番の表示をする i + 1は1ずつ足されていく printf("%s の主題歌は「 %s 」で、主人公は %s である。\n",title[i],themesong[i],hero[i]) # 主題歌と主人公を表示する printf("公開日は、%d 年 %d 月 %d 日。興行収益は 約 %d 億円。\n", openyear[i],openmonth[i],openday[i],money[i]) # 公開年月日と興行収入を表示する totalmoney += money[i] # 興行収益を1つずつ足していく average = totalmoney / i.to_f # 興行収益の平均値の計算 合計 / 作品数 i += 1 # iに1を足していく end #whileに対するend printf("\nジブリ作品の合計興行収益は、約 %d 億円。\n", totalmoney) # 合計興行収益の表示 printf("ジブリ作品の平均興行収益は、約 %2.1f 億円。\n", average) # 平均興行収益の表示 ・もとにしたプログラム プログラム(ary_train.rb)をもとにし、足りないプログラムを追加した。 first = ["つばさ", "とき", "とき" ,"羽田"] 上を以下に変更 title = ["となりのトトロ", "魔女の宅急便", "千と千尋の神隠し", "崖の上のポニョ", "ハウルの動く城", "風の谷のナウシカ", "もののけ姫", "天空の城ラピュタ", "紅の豚", "ゲド戦記", "猫の恩返し", "耳をすませば", "火垂るの墓", "おもひでぽろぽろ", "平成狸合戦ぽんぽこ", "ホーホケキョ となりの山田くん"] # 作品タイトル change = ["新庄", "新潟", "新潟" ,"庄内空港"] 上を以下に変更 themesong = ["さんぽ", "やさしさに包まれたなら", "いつも何度でも", "崖の上のポニョ", "世界の約束", "風の谷のナウシカ", "もののけ姫", "君をのせて", "時には昔の話を", "テルーの唄", "風になる", "カントリー・ロード", "埴生の宿", "愛の花、君はその種子", "アジアのこの街で", "ひとりぼっちはやめた"] # 作品の主題歌 second = ["陸羽西線","いなほ","きらきらうえつ","空港バス"] 上を以下に変更 hero = ["トトロ", "キキ", "萩野 千尋(千)", "ポニョ、宗介", "ソフィー・ハッター、ハウル", "ナウシカ", "アシタカ、サン", "パズー", "マルコ・パゴット", "アレン", "吉岡 ハル", "月島 雫、天沢 聖司", "清太、節子", "岡島 タエ子", "正吉", "山田のの"] # 作品の主人 さらに以下を追加した openyear = [1988, 1989, 2001, 2008, 2004, 1984, 1997, 1986, 1992, 2006, 2002, 1995, 1988, 1991, 1994, 1999] # 作品の公開年 openmonth = [4, 7, 7, 7, 11, 3, 7, 8, 7, 7, 7, 7, 4, 7, 7, 7] #作品の公開月 openday = [16, 29, 20, 19, 20, 11, 12, 2, 18, 29, 20, 15, 16, 20, 16, 17] #作品の公開日 money = [11, 43, 304, 155, 196, 14, 193, 11, 54, 76, 64, 33, 5, 32, 44, 7] #作品の興行収益 while i < first.length を作品名の繰り返しにしたかったので以下に変更 while i < title.length printf("経路%d: \n", i+1 ) を作品名の順番に表示したかったので以下に変更 printf("\n作品 %d: \n", i + 1) printf("東京からは %s に乗り、 %s で乗り換えて %s で酒田に行きます\n", first[i],change[i],second[i]) を主題歌と主人公を表示させたかったので以下に変更 printf("%s の主題歌は「 %s 」で、主人公は %s である。\n", title[i],themesong[i],hero[i]) 公開年月日と興行収益を表示させたかったので以下を追加 printf("公開日は、%d 年 %d 月 %d 日。興行収益は 約 %d 億円。\n", openyear[i],openmonth[i],openday[i],money[i]) 合計興行収益を表示させたかったので追加 rintf("\nジブリ作品の合計興行収益は、約 %d 億円。\n", totalmoney) また、平均興行収益を表示させたかったので追加した printf("ジブリ作品の平均興行収益は、約 %2.1f 億円。\n", average) ary_train.rbには、合計値を表示させるプログラムと平均値を表示させるプログラムがなかったので、以下を追加 totalmoney += money[i] average = totalmoney / i.to_f ・実行結果 pan{c109001}% ./form_a.rb [~/Ruby] 作品 1: となりのトトロ の主題歌は「 さんぽ 」で、主人公は トトロ である。 公開日は、1988 年 4 月 16 日。興行収益は 約 11 億円。 作品 2: 魔女の宅急便 の主題歌は「 やさしさに包まれたなら 」で、主人公は キキ である。 公開日は、1989 年 7 月 29 日。興行収益は 約 43 億円。 作品 3: 千と千尋の神隠し の主題歌は「 いつも何度でも 」で、主人公は 萩野 千尋(千) である。 公開日は、2001 年 7 月 20 日。興行収益は 約 304 億円。 作品 4: 崖の上のポニョ の主題歌は「 崖の上のポニョ 」で、主人公は ポニョ、宗介 である。 公開日は、2008 年 7 月 19 日。興行収益は 約 155 億円。 作品 5: ハウルの動く城 の主題歌は「 世界の約束 」で、主人公は ソフィー・ハッター、ハウル である。 公開日は、2004 年 11 月 20 日。興行収益は 約 196 億円。 作品 6: 風の谷のナウシカ の主題歌は「 風の谷のナウシカ 」で、主人公は ナウシカ である。 公開日は、1984 年 3 月 11 日。興行収益は 約 14 億円。 作品 7: もののけ姫 の主題歌は「 もののけ姫 」で、主人公は アシタカ、サン である。 公開日は、1997 年 7 月 12 日。興行収益は 約 193 億円。 作品 8: 天空の城ラピュタ の主題歌は「 君をのせて 」で、主人公は パズー である。 公開日は、1986 年 8 月 2 日。興行収益は 約 11 億円。 作品 9: 紅の豚 の主題歌は「 時には昔の話を 」で、主人公は マルコ・パゴット である。 公開日は、1992 年 7 月 18 日。興行収益は 約 54 億円。 作品 10: ゲド戦記 の主題歌は「 テルーの唄 」で、主人公は アレン である。 公開日は、2006 年 7 月 29 日。興行収益は 約 76 億円。 作品 11: 猫の恩返し の主題歌は「 風になる 」で、主人公は 吉岡 ハル である。 公開日は、2002 年 7 月 20 日。興行収益は 約 64 億円。 作品 12: 耳をすませば の主題歌は「 カントリー・ロード 」で、主人公は 月島 雫、天沢 聖司 である。 公開日は、1995 年 7 月 15 日。興行収益は 約 33 億円。 作品 13: 火垂るの墓 の主題歌は「 埴生の宿 」で、主人公は 清太、節子 である。 公開日は、1988 年 4 月 16 日。興行収益は 約 5 億円。 作品 14: おもひでぽろぽろ の主題歌は「 愛の花、君はその種子 」で、主人公は 岡島 タエ子 である。 公開日は、1991 年 7 月 20 日。興行収益は 約 32 億円。 作品 15: 平成狸合戦ぽんぽこ の主題歌は「 アジアのこの街で 」で、主人公は 正吉 である。 公開日は、1994 年 7 月 16 日。興行収益は 約 44 億円。 作品 16: ホーホケキョ となりの山田くん の主題歌は「 ひとりぼっちはやめた 」で、主人公は 山田のの である。 公開日は、1999 年 7 月 17 日。興行収益は 約 7 億円。 ジブリ作品の合計興行収益は、約 1242 億円。 ジブリ作品の平均興行収益は、約 82.8 億円。 ・考察 計算を行ったが、正しく計算されているか分からない。 そこで、bc -lで確かめ算を行った。 pan{c109001}% bc -l [~/Ruby] 11 + 43 + 304 + 155 + 196 + 14 + 3 + 11 + 54 + 76 + 64 + 33 + 5 + 32 + 44 + 7 1052 1052 / 16 65.75000000000000000000 quit 実行結果と確かめ算により、きちんと表示され、計算も正しく行われていること が分かった。よって、このプログラムは正確に機能したといえる。 <<これからの課題>> 作品を公開年数月日順の古い順に並べたかったので、以下を入れてみた。 openyear = openyear.sort # 作品の公開年数の小さい順に表示するようにする。 (sort … 小さい順に表示する) ・これからの課題のプログラム本体 #!/usr/koeki/bin/ruby i = 0 # 配列の先頭から始まる 配列の先頭は0。続いて1、2、3…となる。 totalmoney = 0 # 興行収益の合計値は初期値は0 title = ["となりのトトロ", "魔女の宅急便", "千と千尋の神隠し", "崖の上のポニョ", "ハウルの動く城", "風の谷のナウシカ", "もののけ姫", "天空の城ラピュタ", "紅の豚", "ゲド戦記", "猫の恩返し", "耳をすませば", "火垂るの墓", "おもひでぽろぽろ", "平成狸合戦ぽんぽこ", "ホーホケキョ となりの山田くん"] # 作品のタイトル themesong = ["さんぽ", "やさしさに包まれたなら", "いつも何度でも", "崖の上のポニョ", "世界の約束", "風の谷のナウシカ", "もののけ姫", "君をのせて", "時には昔の話を", "テルーの唄", "風になる", "カントリー・ロード", "埴生の宿", "愛の花、君はその種子", "アジアのこの街で", "ひとりぼっちはやめた"] # 作品の主題歌 hero = ["トトロ", "キキ", "萩野 千尋(千)", "ポニョ、宗介", "ソフィー・ハッター、ハウル", "ナウシカ", "アシタカ、サン", "パズー", "マルコ・パゴット", "アレン", "吉岡 ハル", "月島 雫、天沢 聖司", "清太、節子", "岡島 タエ子", "正吉", "山田のの"] # 作品の主人公 openyear = [1988, 1989, 2001, 2008, 2004, 1984, 1997, 1986, 1992, 2006, 2002, 1995, 1988, 1991, 1994, 1999] # 作品の公開年数 openmonth = [4, 7, 7, 7, 11, 3, 7, 8, 7, 7, 7, 7, 4, 7, 7, 7] #作品の公開月 openday = [16, 29, 20, 19, 20, 11, 12, 2, 18, 29, 20, 15, 16, 20, 16, 17] #作品の公開日 money = [11, 43, 304, 155, 196, 14, 193, 11, 54, 76, 64, 33, 5, 32, 44, 7] #作品の興行収益 while i < title.length # 配列の0から始まり要素数の数だけ繰り返す openyear = openyear.sort # 作品の公開年数の小さい順に表示するようにする printf("\n作品 %d: \n", i + 1) # 作品の順番の表示をする i + 1は1ずつ足されていく printf("%s の主題歌は「 %s 」で、主人公は %s である。\n",title[i],themesong[i],hero[i]) # 主題歌と主人公を表示する printf("公開日は、%d 年 %d 月 %d 日。興行収益は 約 %d 億円。\n", openyear[i],openmonth[i],openday[i],money[i]) # 公開年月日と興行収入を表示する totalmoney += money[i] # 興行収益を1つずつ足していく average = totalmoney / i.to_f # 興行収益の平均値の計算 合計 / 作品数 i += 1 # iに1を足していく end #whileに対するend printf("\nジブリ作品の合計興行収益は、約 %d 億円。\n", totalmoney) # 合計興行収益の表示 printf("ジブリ作品の平均興行収益は、約 %2.1f 億円。\n", average) # 平均興行収益の表示 ・これからの課題の実行結果 pan{c109001}% ./form_a.rb [~/Ruby] 作品 1: となりのトトロ の主題歌は「 さんぽ 」で、主人公は トトロ である。 公開日は、1984 年 4 月 16 日。興行収益は 約 11 億円。 作品 2: 魔女の宅急便 の主題歌は「 やさしさに包まれたなら 」で、主人公は キキ である。 公開日は、1986 年 7 月 29 日。興行収益は 約 43 億円。 作品 3: 千と千尋の神隠し の主題歌は「 いつも何度でも 」で、主人公は 萩野 千尋(千) である。 公開日は、1988 年 7 月 20 日。興行収益は 約 304 億円。 作品 4: 崖の上のポニョ の主題歌は「 崖の上のポニョ 」で、主人公は ポニョ、宗介 である。 公開日は、1988 年 7 月 19 日。興行収益は 約 155 億円。 作品 5: ハウルの動く城 の主題歌は「 世界の約束 」で、主人公は ソフィー・ハッター、ハウル である。 公開日は、1989 年 11 月 20 日。興行収益は 約 196 億円。 作品 6: 風の谷のナウシカ の主題歌は「 風の谷のナウシカ 」で、主人公は ナウシカ である。 公開日は、1991 年 3 月 11 日。興行収益は 約 14 億円。 作品 7: もののけ姫 の主題歌は「 もののけ姫 」で、主人公は アシタカ、サン である。 公開日は、1992 年 7 月 12 日。興行収益は 約 193 億円。 作品 8: 天空の城ラピュタ の主題歌は「 君をのせて 」で、主人公は パズー である。 公開日は、1994 年 8 月 2 日。興行収益は 約 11 億円。 作品 9: 紅の豚 の主題歌は「 時には昔の話を 」で、主人公は マルコ・パゴット である。 公開日は、1995 年 7 月 18 日。興行収益は 約 54 億円。 作品 10: ゲド戦記 の主題歌は「 テルーの唄 」で、主人公は アレン である。 公開日は、1997 年 7 月 29 日。興行収益は 約 76 億円。 作品 11: 猫の恩返し の主題歌は「 風になる 」で、主人公は 吉岡 ハル である。 公開日は、1999 年 7 月 20 日。興行収益は 約 64 億円。 作品 12: 耳をすませば の主題歌は「 カントリー・ロード 」で、主人公は 月島 雫、天沢 聖司 である。 公開日は、2001 年 7 月 15 日。興行収益は 約 33 億円。 作品 13: 火垂るの墓 の主題歌は「 埴生の宿 」で、主人公は 清太、節子 である。 公開日は、2002 年 4 月 16 日。興行収益は 約 5 億円。 作品 14: おもひでぽろぽろ の主題歌は「 愛の花、君はその種子 」で、主人公は 岡島 タエ子 である。 公開日は、2004 年 7 月 20 日。興行収益は 約 32 億円。 作品 15: 平成狸合戦ぽんぽこ の主題歌は「 アジアのこの街で 」で、主人公は 正吉 である。 公開日は、2006 年 7 月 16 日。興行収益は 約 44 億円。 作品 16: ホーホケキョ となりの山田くん の主題歌は「 ひとりぼっちはやめた 」で、主人公は 山田のの である。 公開日は、2008 年 7 月 17 日。興行収益は 約 7 億円。 ジブリ作品の合計興行収益は、約 1242 億円。 ジブリ作品の平均興行収益は、約 82.8 億円。 ・考察 公開年数月日は小さい順に表示されたのだが、作品名はプログラムに書い た順番であった。作品公開年数を小さい順に並べ、作品名もそれに見合ったプロ グラムにするのがこれからの課題である。 プログラム問題B ・プログラム本体(form_b.rb) #!/usr/koeki/bin/ruby $KCODE = 'e' # 日本語を読み取らせる title = Array.new # titleという新しい配列を作る themesong = Array.new # themesongという新しい配列を作る hero = Array.new # heroという新しい配列を作る openyear = Array.new # openyearという新しい配列を作る openmonth = Array.new # openmonthという新しい配列を作る openday = Array.new # opendayという新しい配列を作る money = Array.new # moneyという新しい配列を作る n = 0 # 配列の先頭から始まる 配列の先頭は0。続いて1、2、3…となる totalmoney = 0 # 興行収益の合計値は初期値は0 while plan = gets # planを読み取ってその配列文を繰り返す printf("\n作品 %d: ",n+1) # 作品の順番の表示をする if /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/ =~ plan # 文字 文字 文字 数字 数字 数字 数字の順番で読み取る title[n] = $1 # 1つ目の要素を取り出す。 これは作品名 themesong[n] = $2 # 2つ目の要素を取り出す。 これは主題歌 hero[n] = $3 # 3つ目の要素を取り出す。 これは主人公 openyear[n] = $4.to_i # 4つ目の要素を取り出す。 これは公開年数 openmonth[n] = $5.to_i # 5つ目の要素を取り出す。 これは公開月 openday[n] = $6.to_i # 6つ目の要素を取り出す。 これは公開日 money[n] = $7.to_i # 7つ目の要素を取り出す。 これは興行収益 end # ifに対するend printf("%s の主題歌は「 %s 」で、主人公は %s である。\n",title[n],themesong[n],hero[n]) # 主題歌と主人公を表示する printf("公開日は、%d 年 %d 月 %d 日。興行収益は 約 %d 億円。\n",openyear[n],openmonth[n],openday[n],money[n]) # 公開年月日と興行収益を表示する totalmoney += money[n] # 興行収益を1つずつ足していく n += 1 # nに1を足していく end # whileに対するend average = totalmoney / n.to_f # 興行収益の平均値の計算 合計 / 作品数 printf("\nジブリ作品の合計興行収益は、約 %d 億円。\n", totalmoney) # 合計興行収益の表示 printf("ジブリ作品の平均興行収益は、約 %2.1f 億円。\n", average) # 平均興行収益の表示 ・データ本体(plan.dat) となりのトトロ さんぽ トトロ 1988 4 16 11 魔女の宅急便 やさしさに包まれたなら キキ 1989 7 29 43 千と千尋の神隠し いつも何度でも 萩野千尋(千) 2001 7 20 304 崖の上のポニョ 崖の上のポニョ ポニョ、宗介 2008 7 19 155 ハウルの動く城 世界の約束 ソフィー・ハッター、ハウル 2004 11 20 196 風の谷のナウシカ 風の谷のナウシカ ナウシカ 1984 3 11 14 もののけ姫 もののけ姫 アシタカ、サン 1997 12 19 3 天空の城ラピュタ 君をのせて パズー 1986 8 2 11 紅の豚 時には昔の話を マルコ・パゴット 1992 7 18 54 ゲド戦記 テルーの唄 アレン 2006 7 29 76 猫の恩返し 風になる 吉岡ハル 2002 7 20 64 耳をすませば カントリー・ロード 月島雫、天沢聖司 1995 7 15 33 火垂るの墓 埴生の宿 清太節子 1988 4 16 5 おもひでぽろぽろ 愛の花、君はその種子 岡島タエ子 1991 7 20 32 平成狸合戦ぽんぽこ アジアのこの街で 正吉 1994 7 16 44 ホーホケキョとなりの山田くん ひとりぼっちはやめた 山田のの 1999 7 17 7 ・もとにしたプログラム プログラム(ary_stdin.rb)をもとにし、変更し足りないところは追加をした。 first = Array.new を title = Array.new に変更 change = Array.new を themesong = Array.new に変更 second = Array.new を hero = Array.new に変更 fee = Array.new を openyear = Array.newに変更 公開月と公開日と興行収益を追加したかったので openmonth = Array.new openday = Array.new money = Array.new 上記を追加した。 total = 0 を合計興行収益にしたかったので totalmoney = 0 に変更した。 tarin = gets はplanを読み取ってその配列文を繰り返したかったので plan = gets に変更。 printf("経路 %d: ", n += 1)を作品の順番に表示させたかったので、printf("\n作品 %d: ",n+1)に変更。 /(\S+)\s+(\S+)\s+(\S+)\s+(\d+)/ =~ train は、まず文字数、数字が足りないのでその順番で読み取ることができないので追加し、train を plan に変更した。 first[n] = $1 を title[n] = $1 に変更 change[n] = $2 を change[n] = $2 に変更 second[n] = $3 を second[n] = $3 に変更 fee[n] = $4.to_i を openyear[n] = $4.to_i に変更 公開月と公開日と興行収益の要素を取り出したかったので openmonth[n] = $5.to_i openday[n] = $6.to_i money[n] = $7.to_i を追加した。 printf("東京からは%sに乗り、%sに乗り換えて%sまで行きます\n",first[n], change[n], second[n]) を主題歌、主人公と表示させたかったので以下に変更 printf("%s の主題歌は「 %s 」で、主人公は %s である。\n",title[n],themesong[n],hero[n] printf("料金は%d円です\n",fee[n]) は公開年月日と興行収入を表示させたかったので以下に変更 printf("公開日は、%d 年 %d 月 %d 日。興行収入は 約 %d 億円。\n",openyear[n],openmonth[n],openday[n],money[n] total += fee[n] は totalmoney += money[n]に変更した。 average = total / n.to_f は average = totalmoney / n.to_f に変更。 printf("平均は %10.1f 円です\n", average) は作品の平均興行収益を表示させたかったので以下に変更。 printf("ジブリ作品の平均興行収益は、約 %2.1f 億円。\n", average) n に 1を足していきたいので n += 1 を追加した。 また、合計興行収益を表示させたかったので以下を追加した。 printf("\nジブリ作品の合計興行収益は、約 %d 億円。\n", totalmoney) ・実行結果 pan{c109001}% ./form_b.rb plan.dat [~/Ruby] 作品 1: となりのトトロ の主題歌は「 さんぽ 」で、主人公は トトロ である。 公開日は、1988 年 4 月 16 日。興行収益は 約 11 億円。 作品 2: 魔女の宅急便 の主題歌は「 やさしさに包まれたなら 」で、主人公は キキ である。 公開日は、1989 年 7 月 29 日。興行収益は 約 43 億円。 作品 3: 千と千尋の神隠し の主題歌は「 いつも何度でも 」で、主人公は 萩野千尋(千) である。 公開日は、2001 年 7 月 20 日。興行収益は 約 304 億円。 作品 4: 崖の上のポニョ の主題歌は「 崖の上のポニョ 」で、主人公は ポニョ、宗介 である。 公開日は、2008 年 7 月 19 日。興行収益は 約 155 億円。 作品 5: ハウルの動く城 の主題歌は「 世界の約束 」で、主人公は ソフィー・ハッター、ハウル である。 公開日は、2004 年 11 月 20 日。興行収益は 約 196 億円。 作品 6: 風の谷のナウシカ の主題歌は「 風の谷のナウシカ 」で、主人公は ナウシカ である。 公開日は、1984 年 3 月 11 日。興行収益は 約 14 億円。 作品 7: もののけ姫 の主題歌は「 もののけ姫 」で、主人公は アシタカ、サン である。 公開日は、1997 年 12 月 19 日。興行収益は 約 3 億円。 作品 8: 天空の城ラピュタ の主題歌は「 君をのせて 」で、主人公は パズー である。 公開日は、1986 年 8 月 2 日。興行収益は 約 11 億円。 作品 9: 紅の豚 の主題歌は「 時には昔の話を 」で、主人公は マルコ・パゴット である。 公開日は、1992 年 7 月 18 日。興行収益は 約 54 億円。 作品 10: ゲド戦記 の主題歌は「 テルーの唄 」で、主人公は アレン である。 公開日は、2006 年 7 月 29 日。興行収益は 約 76 億円。 作品 11: 猫の恩返し の主題歌は「 風になる 」で、主人公は 吉岡ハル である。 公開日は、2002 年 7 月 20 日。興行収益は 約 64 億円。 作品 12: 耳をすませば の主題歌は「 カントリー・ロード 」で、主人公は 月島雫、天沢聖司 である。 公開日は、1995 年 7 月 15 日。興行収益は 約 33 億円。 作品 13: 火垂るの墓 の主題歌は「 埴生の宿 」で、主人公は 清太節子 である。 公開日は、1988 年 4 月 16 日。興行収益は 約 5 億円。 作品 14: おもひでぽろぽろ の主題歌は「 愛の花、君はその種子 」で、主人公は 岡島タエ子 である。 公開日は、1991 年 7 月 20 日。興行収益は 約 32 億円。 作品 15: 平成狸合戦ぽんぽこ の主題歌は「 アジアのこの街で 」で、主人公は 正吉 である。 公開日は、1994 年 7 月 16 日。興行収益は 約 44 億円。 作品 16: ホーホケキョとなりの山田くん の主題歌は「 ひとりぼっちはやめた 」で、主人公は 山田のの である。 公開日は、1999 年 7 月 17 日。興行収益は 約 7 億円。 ジブリ作品の合計興行収益は、約 1052 億円。 ジブリ作品の平均興行収益は、約 65.8 億円。 ・考察 計算を行ったが、正しく計算されているか分からない。 そこで、bc -lで確かめ算を行った。 pan{c109001}% bc -l [~/Ruby] 11 + 43 + 304 + 155 + 196 + 14 + 3 + 11 + 54 + 76 + 64 + 33 + 5 + 32 + 44 + 7 1052 1052 / 16 65.75000000000000000000 quit 実行結果と確かめ算により、きちんと表示され、計算も正しく行われていること が分かった。よって、このプログラムは正確に機能したといえる。 3、感想 日常生活において同じような仕組みを探した。 ( 人 ) Aさん、Bくん、Cちゃん、Dさん (ジュース ) オレンジジュース、アップルジュース、炭酸飲料水、お茶 ( 量 ) 100ml、150ml、200ml、250ml ( 人 ) は 3種類の中から ( ジュース ) を選択し、コップに( 量 )を入れた。 という仕組みと今回のプログラムは同じようなものであると思う。 今回のプログラム問題のBを作るにあたって、プログラム問題Aを作成したプログ ラム問題Aは、授業で作ったプログラムを変更し、作成することが できた。プログラム問題のBはとても難しく、多くの時間を要したがプログラ ムが完成し、機能したときは嬉しかった。しかし、これからの課題が残っている。 課題に相当するものがあったら作品公開年数を小さい順に並べ、作品名もそれに見合ったプロ グラムにし、プログラムを完成させたい。今回のプログラムを作成する時に、時 間はかかったが、その分理解できたのでよかったと思う。次回からも時間を多い にかけ、理解していきたい。 4、参考文献 webページ 基礎プログラミング I 第5回 配列の構造 「ASCII コード表」 http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 「行先検索ソフト」 http://roy/~madoka/2010/r1/05/05_10_theme_08_ary_train.html 「データとプログラムの分離」 http://roy/~madoka/2010/r1/05/05_11_theme_09_ary_stdin.html 著者:西村 まどか ---------------------------------------------------------------------------- スタジオジブリ - STUDIO GHIBLI http://www.ghibli.jp/ 著者:STUDIO GHIBLI ---------------------------------------------------------------------------- Wikipedia スタジオジブリ http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA%E3%82%B8%E3%83%96%E3%83%AA となりのトトロ http://ja.wikipedia.org/wiki/%E3%81%A8%E3%81%AA%E3%82%8A%E3%81%AE%E3%83%88%E3%83%88%E3%83%AD 魔女の宅急便 http://ja.wikipedia.org/wiki/%E9%AD%94%E5%A5%B3%E3%81%AE%E5%AE%85%E6%80%A5%E4%BE%BF_%28%E3%82%B9%E3%82%BF%E3%82%B8%E3%82%AA%E3%82%B8%E3%83%96%E3%83%AA%E4%BD%9C%E5%93%81%29 千と千尋の神隠し http://ja.wikipedia.org/wiki/%E5%8D%83%E3%81%A8%E5%8D%83%E5%B0%8B%E3%81%AE%E7%A5%9E%E9%9A%A0%E3%81%97 崖の上のポニョ http://ja.wikipedia.org/wiki/%E5%B4%96%E3%81%AE%E4%B8%8A%E3%81%AE%E3%83%9D%E3%83%8B%E3%83%A7 ハウルの動く城 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%82%A6%E3%83%AB%E3%81%AE%E5%8B%95%E3%81%8F%E5%9F%8E 風の谷のナウシカ http://ja.wikipedia.org/wiki/%E9%A2%A8%E3%81%AE%E8%B0%B7%E3%81%AE%E3%83%8A%E3%82%A6%E3%82%B7%E3%82%AB もののけ姫 http://ja.wikipedia.org/wiki/%E3%82%82%E3%81%AE%E3%81%AE%E3%81%91%E5%A7%AB 天空の城ラピュタ http://ja.wikipedia.org/wiki/%E5%A4%A9%E7%A9%BA%E3%81%AE%E5%9F%8E%E3%83%A9%E3%83%94%E3%83%A5%E3%82%BF 紅の豚 http://ja.wikipedia.org/wiki/%E7%B4%85%E3%81%AE%E8%B1%9A ゲド戦記 http://ja.wikipedia.org/wiki/%E3%82%B2%E3%83%89%E6%88%A6%E8%A8%98_%28%E6%98%A0%E7%94%BB%29 猫の恩返し http://ja.wikipedia.org/wiki/%E7%8C%AB%E3%81%AE%E6%81%A9%E8%BF%94%E3%81%97 耳をすませば http://ja.wikipedia.org/wiki/%E8%80%B3%E3%82%92%E3%81%99%E3%81%BE%E3%81%9B%E3%81%B0 火垂るの墓 http://ja.wikipedia.org/wiki/%E7%81%AB%E5%9E%82%E3%82%8B%E3%81%AE%E5%A2%93 おもひでぽろぽろ http://ja.wikipedia.org/wiki/%E3%81%8A%E3%82%82%E3%81%B2%E3%81%A7%E3%81%BD%E3%82%8D%E3%81%BD%E3%82%8D 平成狸合戦ぽんぽこ http://ja.wikipedia.org/wiki/%E5%B9%B3%E6%88%90%E7%8B%B8%E5%90%88%E6%88%A6%E3%81%BD%E3%82%93%E3%81%BD%E3%81%93 ホーホケキョとなりの山田くん http://ja.wikipedia.org/wiki/%E3%81%AE%E3%81%AE%E3%81%A1%E3%82%83%E3%82%93 -------------------------------------------------------------------------------------------- 共同学習者:大島 藍 久保田 瑛一郎 協力してくれた先輩:工藤 智也 さん 大沼 拓海 さん