第 3 回 情報の構造を分析しよう レポート課題 氏名:下妻 匡哉 学籍番号:c1101164 語学クラス:英語(6) コース(系):地域共創コース 1-A.S = 0x53 h = 0x68 i = 0x69 m = 0x6d o = 0x6f t = 0x74 s = 0x73 u = 0x75 m = 0x6d a = 0x61 = 0x20 M = 0x4d a = 0x61 s = 0x73 a = 0x61 y = 0x79 a = 0x61 1-B.きょうふのみそしる →きょう ふのみそしる (今日 麩の味噌汁) →きょうふの みそしる (恐怖の 味噌汁) ここではきものをぬいでください →ここで はきものを ぬいでください (ここで 履き物を 脱いでください) →ここでは きものを ぬいでください (ここでは 着物を 脱いでください) わたしはいる →わたしは いる (私は 居る) →わたしは いる (私は 要る) →わたしは いる (私は 射る) →わたし はいる (私 入る) 1-C.東北の県庁所在地、人口、代表的なお米の品種を hash 配列 specialty とした。 specialty の key と value は 各県名に県庁所在地、人口(万人)、代表的なお米の品種にした。 (1)key 「青森県」に対して value 「"青森市" , "138" ,"つがるロマン"」 (2)key 「秋田県」に対して value 「"秋田市" , "109" ,"あきたこまち"」 (3)key 「岩手県」に対して value 「"盛岡市" , "134" , "ひとめぼれ"」 (4)key 「宮城県」に対して value 「"仙台市" , "234" , "ひとめぼれ"」 (5)key 「福島県」に対して value 「"福島市" , "204" , "コシヒカリ"」 これに対する Hash の表し方は specialty["青森県"] = "青森市" , "138" , "つがるロマン" specialty["秋田県"] = "秋田市" , "109" , "あきたこまち" specialty["岩手県"] = "盛岡市" , "134" , "ひとめぼれ" specialty["宮城県"] = "仙台市" , "234" , "ひとめぼれ" specialty["福島県"] = "福島市" , "204" ,"コシヒカリ" また、もう一つの表し方は specialty = { "青森県" => ["青森市","138","つがるロマン"], "秋田県" => ["秋田市","109","あきたこまち"], "岩手県" => ["盛岡市","134","ひとめぼれ"], "宮城県" => ["仙台市","234","ひとめぼれ"], "福島県" => ["福島市","204","コシヒカリ"] } -------------------------------------------------------------------------------- 2.プログラミング問題 A. 1と前回の問題の対をさらに応用し、keyに対してvalue数を増やし、その分 、for キー名, 値 in ハッシュ配列名 の公式を改良したら、2-Aのプログラムが 完成すると考えた。 (1)考えた設定 「東北6県の基本データとして県庁所在地、おおよその人口、代表的なお米の品種 がわかる」という設定とし、説明プログラムhash_ary_print.rbを作成した。 (2)作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' #日本語コード使用の指示 specialty = Hash.new #specialtyをHashとする。 specialty = { "青森県" => ["青森市","138","つがるロマン"], #1つのkeyに対し3つのvalueをそれぞれ入力 "秋田県" => ["秋田市","109","あきたこまち"], "岩手県" => ["盛岡市","134","ひとめぼれ"], "宮城県" => ["仙台市","234","ひとめぼれ"], "山形県" => ["山形市","117","はえぬき"], "福島県" => ["福島市","204","コシヒカリ"] } for name, deta in specialty #県名をname、value1,value2,value3をそれぞれdeta[0],deta[1],deta[2]に代入 printf("%sの県庁所在地は %s です。 # for key名 , 値 in Hash配列名の公式で hash配列をprintf 以下で表示 人口は約 %s 万人で、代表的なお米は %s です。\n", name, deta[0],deta[1],deta[2]) end # for文のend (3)プログラム実行結果 pan{c110116}% ./hash_ary_print.rb [~/Ruby] 福島県の県庁所在地は 福島市 です。 人口は約 204 万人で、代表的なお米は コシヒカリ です。 岩手県の県庁所在地は 盛岡市 です。 人口は約 134 万人で、代表的なお米は ひとめぼれ です。 青森県の県庁所在地は 青森市 です。 人口は約 138 万人で、代表的なお米は つがるロマン です。 山形県の県庁所在地は 山形市 です。 人口は約 117 万人で、代表的なお米は はえぬき です。 秋田県の県庁所在地は 秋田市 です。 人口は約 109 万人で、代表的なお米は あきたこまち です。 宮城県の県庁所在地は 仙台市 です。 人口は約 234 万人で、代表的なお米は ひとめぼれ です。 (4)考察 変数のうち、deta[0]は県庁所在地名、deta[1]は人口、deta[2]は代表的なお米 の品種のデータを表示させるようにしている。作成プログラム hash_ary_print.rbと比較・確認すると、しっかりとデータが表示されていた。 よって、このプログラムは正しく起動・実行されたといえる。 -------------------------------------------------------------------------------- 3.感想 繰り返す文章で進む昔話は「かさじぞう」だと思う。 『かさじぞう』 むかしむかし、あるところに、貧しいが心優しいおじいさんとおばあさんがいました。 とある大晦日のこと… 新年のもちやごちそうを準備したい。→ 五つ傘を作る。 おじいさんが町に売りに行く。 → 雪が降りはじめる。 途中で六体のお地蔵さまをみかける。 → 雪を払ってあげる。 町に着く。 →傘を売りはじめる。 売れない。 → おじいさん、町から帰る。 来る途中に雪を払ったお地蔵さまが。 → おじいさんは売れなかった傘をかぶせる。 お地蔵さまは六体に対し、傘は五つ。 → 最後のお地蔵さまにおじいさん自身の傘をかぶせる。 おじいさんが家に帰る。 → おばあさん、雪まみれのおじいさんにびっくり。 おじいさんはお地蔵さまの話をする。 → 二人はほんわかした気持ちに。 その夜、ふしぎな歌が聞こえる。 → 目を覚ます。 ふしぎな歌は家の前で止まる。 → ドッサーン! ドッシーン!! そっと戸を開ける。 → 傘をかぶったお地蔵さまの後ろ姿が… そして家の前に目をやると… → お正月用のおもちやごちそうが山のように置かれていた それからも、おじいさんとおばあさんはお地蔵さまを大事にしました、とさ。 おしまい。 感想 今回の課題は、前回の応用、といった印象を受けた。 同じHashでも内容が複雑化してきたり、前期の基礎プログラミングIで使った内 容(配列など)も用いるようになってきた。 今後とも、じっくりと考えて臨んでいきたい。 4.参考文献 http://rnk.uub.jp/rnk/prnk.cgi?T=p 都道府県 人口・面積・人口密度ランキング http://roy/~naoya/ruby/9.html 神田直弥 基礎プログラミングI 第 9 回 16進数・ASCIIコード Ruby/hash_for.rb 前回作成したプログラム http://hukumusume.com/douwa/pc/jap/12/31.htm 福娘童話集 十二月の童話集『かさじぞう』 共同学習者:鈴木椎菜 , 須藤 充司 ------------------------- 東北公益文科大学 公益学部 2年 下妻 匡哉 C110116@f.koeki-u.ac.jp -------------------------