第3回 基礎プログラミング II レポート課題 氏名:伊藤 彩 学籍番号:c1090207 語学クラス:中国語 コース(系):政策 1. A. 私の名前をアルファベットで大文字に直すと ITO AYA となる。 これを前期で習った ASCII コード表を用いて調べると、以下のようになる。 I = 0x49 T = 0x54 O = 0x4f A = 0x41 Y = 0x59 A = 0x41 B. 「きょうはすをかいたい」 きょう は す を かいたい (今日は酢を買いたい) きょう はす を かいたい (今日蓮を買いたい) きょう は す を かいたい (今日は巣を買いたい) きょう は す を かいたい (今日は巣を解体) きょう は す をかいたい (今日は巣を飼いたい) C. 山形県の市の特徴を hash 配列 を si とした。 key は市の名 value 特産品、人工(人)、面積(平方キロメートル)にとった。 その 1 : key 「山形市」に対して value は " さくらんぼ, 255162, 381" その 2 : key 「米沢市」に対して value は "米沢牛, 92261, 548" その 3 : key 「鶴岡市」に対して value は "だだちゃ豆, 142185, 1311" その 4 : key 「酒田市」に対して value は "女鶴もち, 118012, 602" その 5 : key 「新庄市」に対して value は "くじらもち, 39918, 223" これらを hash配列で表記すると si["山県市"] = "さくらんぼ", 255162, 381 si["米沢市"] = "米沢牛", 92261, 548 si["鶴岡市"] = "だだちゃ豆", 142185, 1311 si["酒田市"] = "女鶴もち", 118012, 602 si["新庄市"] = "くじらもち", 39918, 223 となる。 また、もうひとつの表し方は {"山形市" => "さくらんぼ", 255162, 381, "米沢市" => "米沢牛", 92261, 548, "鶴岡市" => "だだちゃ豆", 142185, 1311, "酒田市" => "女鶴もち", 118012, 602, "新庄市" => "くじらもち", 39918, 223} となる。 2. A. a.設定 前回作成した自分のプログラムを参考に、山形県の特産品と人口、面積を表示させる プログラム hash_ary_print.rb を作成した。 b.作成したプログラム #!/usr/koeki/bin/ruby $KCODE = "e" #日本語コード si = Hash.new # si は Hash配列の変数 print("山形県情報\n\n") si["山形市"] = "さくらんぼ", 255162, 381 si["米沢市"] = "米沢牛", 92261, 548 si["鶴岡市"] = "だだちゃ豆", 142185, 1311 si["酒田市"] = "女鶴もち", 118012, 602 si["新庄市"] = "くじらもち", 39918, 223 for name, tokusan in si printf("%sの特産品は%sで、人口は%d人、面積は%d平方キロメートルです。\n\n", name, tokusan[0], tokusan[1], tokusan[2]) # 行なう操作 end c.もとにしたプログラムの変更点 前回作成したプログラム hash_for.rb を参考にし作成した。 変数を manga から si に変更するなど、それぞれ今回の設定したプログラムに 合った内容のものに変更した。 また print 文を加えた。 d.実行画面 pan{c109020}% ./hash_ary_print.rb [~/Ruby] 山形県情報 酒田市の特産品は女鶴もちで、人口は118012人、面積は602平方キロメートルです。 鶴岡市の特産品はだだちゃ豆で、人口は142185人、面積は1311平方キロメートルです。 山形市の特産品はさくらんぼで、人口は255162人、面積は381平方キロメートルです。 新庄市の特産品はくじらもちで、人口は39918人、面積は223平方キロメートルです。 米沢市の特産品は米沢牛で、人口は92261人、面積は548平方キロメートルです。 e.結果の考察 最初実行した時に何も表示されず焦った。よくプログラムを見返すと、日本語で 表示するための $KCODE の綴りが間違っているなど、細かいミスがあった。 再度実行した結果は上の通りである。あらかじめ登録してある対を表示するとい う問題の通り、Kterm 上でしっかり表示することができたことから、このプログ ラムに誤りはないと考えられる。 B. a.設定 設定したそれぞれの人口を少ない順に並び替えるプログラム hash_ary_sort.rb を作成した。 要素の一部を使って入れ替えを行なうので、第2回の sort をvaluue 配列の一部 で行なうように指定するやり方が書かれた講義ノートを参考にする。 b.作成したプログラム #!/usr/koeki/bin/ruby $KCODE = "e" #日本語コード si = Hash.new # si は Hash配列の変数 print("山形県情報\n\n") si["山形市"] = "さくらんぼ", 255162, 381 si["米沢市"] = "米沢牛", 92261, 548 si["鶴岡市"] = "だだちゃ豆", 142185, 1311 si["酒田市"] = "女鶴もち", 118012, 602 si["新庄市"] = "くじらもち", 39918, 223 for name, tokusan in si printf("%sの特産品は%sで、人口は%d人、面積は%d平方キロメートルです。\n\n", name, tokusan[0], tokusan[1], tokusan[2]) # 行なう操作 end print("\n人口順\n") si.keys.sort{|name, jinkou| # 並び前の key の変数と後の変数 si[name][1] <=> si[jinkou][1]}.each{|retail| printf("%s\t %5d [人]\n", retail, si[retail][1])} # [ ]は要素番号 c.もとにしたプログラムからの変更点 a 問題で作成したプログラム hash_ary_print.rb に改良を加えた。 また、「要素の一部を使って入れ替えをするには」の講義ノートを参考に、sort を用いた。 d.実行画面 pan{c109020}% ./hash_ary_sort.rb [~/Ruby] 山形県情報 酒田市の特産品は女鶴もちで、人口は118012人、面積は602平方キロメートルです。 鶴岡市の特産品はだだちゃ豆で、人口は142185人、面積は1311平方キロメートルです。 山形市の特産品はさくらんぼで、人口は255162人、面積は381平方キロメートルです。 新庄市の特産品はくじらもちで、人口は39918人、面積は223平方キロメートルです。 米沢市の特産品は米沢牛で、人口は92261人、面積は548平方キロメートルです。 人口順 新庄市 39918 [人] 米沢市 92261 [人] 酒田市 118012 [人] 鶴岡市 142185 [人] 山形市 255162 [人] e.結果の考察 上の結果のように、人口順に表示することができた。このことより、このプログ ラムは正確に機能したといえる。 また、指定したとおり並べかえることができたので sort を value 配列の一部 で行なうようにしっかり指定できたといえる。 感想 繰り返す物語では、エリック・カールの『ちいさいタネ』のようなものだと思っ た。 秋、タネたちは風にのって運ばれます。その中にちいさいタネがひとつ。 旅の途中でひとつのタネが太陽に焼かれ力尽きてしまいました。 また旅の途中でひとつのタネは氷の山に落ち、力尽きてしまいました。 次のタネは海に落ち、魚に食べられてしまいました。 あるタネは砂漠に落ち、力尽きてしまいました。 どんどんなかまが減っていってしまいます。 風がやんで地面に落ちても、鳥に食べられ、力尽きてしまいます。 土の中にもぐっても、ネズミに食べられ力尽きてしまいます。 ちいさいタネはみんなよりちいさいので見つからずにすみました。 あるタネはやっと芽をだしても人間に踏まれて力尽きてしまいました。 ちいさいタネは頑張って大きな花を咲かせます。 秋になると、ちいさいタネが咲かせた花からまたタネたちが飛び立ちます。 最近は体調が悪い日が続くので、今回も課題をやる時間をとるのがたいへんでし た。しかし、授業で習ったことの復習をするには課題をこなすことが有効である と思っているのでひとつひとつ確認しながら解くように意識しながら取り組みま した。体調管理をしっかりして、授業は欠席することのないようにしたいです。 参考文献 ・http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html 基礎プログラミング I 第5回 「配列の構造」ASCII コード表 (講義ノート) 西村 まどか先生 ・http://tamagazou.machinami.net/yamagata.htm 山形県 作者不明 ・http://www.yamagata-ya.net/cgi-bin/WebObjects/Yamagataya.woa/wa/default 山形屋−山形県の名産品・特産品の逸品を集めた通販サイト。 作者不明 ・http://www.yamagatakanko.com/cgi/area/1401/l30/ やまがたへの旅 市町村情報 酒田市 作者不明 ・http://roy/~madoka/2010/r2/02/02_15_theme_14_sorthasharraycomp.html 基礎プログラミング II 第 2回 「なになにといえばこれこれ」要素の一部を使っ て入れ替えをするには(講義ノート) 西村まどか先生 ・http://roy/~madoka/2009/r2/03/rpt/c108170.txt 2009年度 基礎プログラミング II 第03回 情報の構造を分析しよう レポート評 価 良かったレポートその3 レポート作成者不明 ・http://www.ehonnavi.net/ehon00.asp?no=1643 ちいさい タネ : エリック・カール, ゆあさ ふみえ[絵本ナビ] みんなの声・ 通販 作者不明 共同学習者 酒井 春香