第3回 基礎プログラミング II レポート課題 氏名:奥山広大 学籍番号:c109039A 語学クラス:英語 コース(系):地域 1、 okuyama koudai ASCIIコード o=Ox6f k=Ox6b u=Ox75 y=Ox79 a=Ox61 m=Ox6d a=Ox61 k=Ox6b o=Ox6f u=Ox75 d=Ox64 a=Ox61 i=Ox69 B,分かち書き "かにくわれる"(3例) か に くわれる (蚊に食われる) かに くわれる (蟹、食われる) かにく われる (果肉、割れる) C、 car["トヨタ" ] = "プリウス","SAI","イスト" car["ホンダ"] = "フィット","ライフ","フリード" car["マツダ"] = "アテンザ","ビアンテ","デミオ" car["ニッサン"] = "モコ","キューブ,"マーチ" car["ダイハツ"] = "ムーブ","タント","ミラ" car["スズキ"] = "ワゴンR","kei","ジムニー" ["トヨタ" =>"プリウス","SAI","イスト", "ホンダ" =>"フィット","ライフ"," フリード", "マツダ" =>"アテンザ","ビアンテ","デミオ", "ニッサン" =>"モコ ","キューブ,"マーチ", "ダイハツ" =>"ムーブ","タント","ミラ", "スズキ" =>"ワゴンR","kei","ジムニー"] 2、プログラム 考えた設定 作っている会社とそこで、製造されている低燃費の車種名が表示されるようにし た。 #!/usr/koeki/bin/ruby car = Hash.new car["トヨタ" ] = "プリウス","SAI","イスト" car["ホンダ"] = "フィット","ライフ","フリード" car["マツダ"] = "アテンザ","ビアンテ","デミオ" car["ニッサン"] = "モコ","キューブ","マーチ" car["ダイハツ"] = "ムーブ","タント","ミラ" car["スズキ"] = "ワゴンR","kei","ジムニー" for maker,name in car printf("メーカー : %s : 主な車種名 : %s %s %s \t \n\n",maker,name[0],name[1],name[2]) end 結果 ./hash_ary_print.rb [~/Ruby] メーカー : ホンダ : 主な車種名 : フィット ライフ フリード メーカー : トヨタ : 主な車種名 : プリウス SAI イスト メーカー : ダイハツ : 主な車種名 : ムーブ タント ミラ メーカー : ニッサン : 主な車種名 : モコ キューブ マーチ メーカー : スズキ : 主な車種名 : ワゴンR kei ジムニー メーカー : マツダ : 主な車種名 : アテンザ ビアンテ デミオ 考察 順番に表示されていないので次は、並び変えを行なう。 考えた設定 Aの問題を元に並び変える。 #!/usr/koeki/bin/ruby car = Hash.new car["トヨタ" ] = "プリウス","SAI","イスト" car["ホンダ"] = "フィット","ライフ","フリード" car["マツダ"] = "アテンザ","ビアンテ","デミオ" car["ニッサン"] = "モコ","キューブ","マーチ" car["ダイハツ"] = "ムーブ","タント","ミラ" car["スズキ"] = "ワゴンR","kei","ジムニー" print("\低燃費車種名\n\n") car.keys.sort{|name1,name2| car[name1][0] <=> car[name2][0] }.each{|maker| printf("メーカー : %s : 主な車種名 : %s %s %s \t \n\n",maker,car[maker][0],car[maker][1],car[maker][2])} 結果 ./hash_ary_sort.rb [~/Ruby] 低燃費車種名 メーカー : マツダ : 主な車種名 : アテンザ ビアンテ デミオ メーカー : ホンダ : 主な車種名 : フィット ライフ フリード メーカー : トヨタ : 主な車種名 : プリウス SAI イスト メーカー : ダイハツ : 主な車種名 : ムーブ タント ミラ メーカー : ニッサン : 主な車種名 : モコ キューブ マーチ メーカー : スズキ : 主な車種名 : ワゴンR kei ジムニー 考察 表示される順番を車種名の一番目を元に、並び変えた。 D、 考えた設定 B問題を元にしてデータを読みこませる。 #メーカー #車種名 トヨタ プリウス SAI イスト ホンダ フィット ライフ フリード マツダ アテンザ ビアンテ デミオ ニッサン モコ キューブ マーチ ダイハツ ムーブ タント ミラ スズキ ワゴンR kei ジムニー プログラム #!/usr/koeki/bin/ruby car = Hash.new while list = gets if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/=~ list car[$1] = [$2,$3,$4] end end print("\低燃費車種名\n\n") car.keys.sort{|name1,name2| car[name1][0] <=> car[name2][0] }.each{|maker| printf("メーカー : %s : 主な車種名 : %s %s %s \t \n\n",maker,car[maker][0],car[maker][1],car[maker][2])} 結果 ./hash_ary_read.rb hash_ary_data.dat [~/Ruby] 低燃費車種名 メーカー : マツダ : 主な車種名 : アテンザ ビアンテ デミオ メーカー : ホンダ : 主な車種名 : フィット ライフ フリード メーカー : トヨタ : 主な車種名 : プリウス SAI イスト メーカー : ダイハツ : 主な車種名 : ムーブ タント ミラ メーカー : ニッサン : 主な車種名 : モコ キューブ マーチ メーカー : スズキ : 主な車種名 : ワゴンR kei ジムニー 考察 B問題と同じ結果となった。 感想 今回は、先輩にかなり教えてもらい完成させることが出来ました。プログラムが 多くて苦戦しましたが、先輩にアドバイスをたくさん貰い貼り付けできました。 今回、筆記問題のBが自分で考えて書くまでが今回の課題レポートで一番時間が かかってしまったので反省したいと思います。 今回は、前より調子がいいのでこの調子で頑張っていきたいと思います。 繰り返す文章 朝起きる = 飯を食う 歯磨きする = 車で学校へ 煙草吸う = 授業に出る 授業終わる = 一服する 昼になる = 飯を食う 煙草吸う = また授業へ 授業終わる = 煙草吸う 車で帰る = ご飯を食う 風呂に入る = 寝る 協力してくれた先輩 大沼拓海 参考文献 基礎プログラミング II 第3回 情報の構造を分析しよう http://roy/~madoka/2010/r2/03/03_06_theme_01_hashinhash.html 基礎プログラミング II 第3回 情報の構造を分析しよう 「ねずみの嫁入り」 http://roy/~madoka/2010/r2/03/03_09_theme_04_mousebride.html 先輩達のレポート講評 http://roy/~madoka/2009/r2/03/crt.html