第3回 基礎プログラミング II レポート課題 氏名: xxxxxxxxx 学籍番号:c109xxx 語学クラス:中国語1 コース(系):社会福祉 1-A ASCIIコードの表を参考にした 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 nul soh stx etx eot enq ack bel bs ht lf vt ff cr so si 1 dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us 2 ! " # $ % & ' ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ' a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ del これをもとにして一つずつみていくと K→ 0x4b O→ 0x4f M→ 0x4d A→ 0x41 T→ 0x54 S→ 0x53 U→ 0x55 S→ 0x53 H→ 0x48 I→ 0x49 H→ 0x48 O→ 0x4f となる。 1-B きょうはなまたまごをかう きょう は なまたまご を かう(今日は生卵を買う) きょう はな また まご を かう(今日はなまた馬子を飼う) きょう は なまたまご を かう (今日は生卵を飼う) きょう は なまた まご を かう(今日はナマタ孫を飼う) 1-C 第2回目のレポートを参考にしながら、あらたにつけくわえた。 キャラクターを hash 配列 kyaraとしました。 kyara の key と value はそれぞれキャラクター、その元にした動物、そのキャラクター をキーホルダーにした場合の値段、ぬいぐるみの値段をとりました。 その1: key 「プーさん」に対して value は「熊, 595,2600」 その2: key 「ミッキーマウス」に対して value は「ねずみ ,595 ,1260」 その3: key 「キティちゃん」に対して value は「猫,400,3150」 その4: key 「ミスバニー」に対して value は 「うさぎ,504,3024」 その5: key 「スティッチ」に対して value は「宇宙人504, ,3600」 これに対応する Hash の表し方は kyara["プーさん"] = "熊 ",595,2600 kyara["ミッキーマウス"] = "ねずみ",595,1260 kyara["キティちゃん"] = "猫",400,1260 kyara["ミスバニー"] = "うさぎ",504,3024 kyara["スティッチ"] = "宇宙人",504,3600 また、もう一つの表し方は kyara{"プーさん" => ["熊",595,2600],"ミッキーマウス" => ["ねずみ ",595,1260],"キティちゃん" => ["猫",400,1260],"ミスバニー" => ["うさぎ ",504,3024],"スティッチ" => ["宇宙人",504,3600]} ------------------------------------------------------------ 2. Bを選択した。 a) 今回はAの内容も含めているプログラムにした。内容は筆記問題のC問題を元にし た。 これは、第2回目で習った「要素の一部分を使って入れ替えをするには」を参考 にしながらプログラムhash_ary_sort.rbを作った。 b) #!/usr/koeki/bin/ruby $KCODE = 'e' # 日本語コード EUC で出力する。 kyara = Hash.new # Hash配列 kyara["プーさん"] = "熊 ",595,2600 kyara["ミッキーマウス"] = "ねずみ",595,1260 kyara["キティちゃん"] = "猫",400,1260 kyara["ミスバニー"] = "うさぎ",504,3024 kyara["スティッチ"] = "宇宙人",504,3600 print("\nデータを全て表示します.\n\n") for doubutu , nedan in kyara # 全ての Hash を出力し、項目の一覧表を作る。 # for key名、値段 in Hash配列名 printf("%sの元にした動物は%sです。 このキャラクターのキーホルダーは %d 円です。 このキャラクターのぬいぐるみは %d円 です。\n\n",doubutu,nedan[0],nedan[1],nedan[2]) end print("\nキャラクターのキーホルダーの値段が安い順に並び変えます。\n\n") kyara.keys.sort{|a,b| kyara[a][1]<=> kyara[b][1]}.each{|nedan| printf("%sのキャラクターのキーホルダーの値段は %d 円です。\n",kyara[nedan][0],kyara[nedan][1])} c) sesame.key.sortoをkyara.keys.sortに変更した。 [second]に[a]に変更した。 |retail|を|nedan|に変更した。 d) データを全て表示します. キティちゃんの元にした動物は猫です。 このキャラクターのキーホルダーは 400 円です。 このキャラクターのぬいぐるみは 1260円 です。 ミッキーマウスの元にした動物はねずみです。 このキャラクターのキーホルダーは 595 円です。 このキャラクターのぬいぐるみは 1260円 です。 スティッチの元にした動物は宇宙人です。 このキャラクターのキーホルダーは 504 円です。 このキャラクターのぬいぐるみは 3600円 です。 ミスバニーの元にした動物はうさぎです。 このキャラクターのキーホルダーは 504 円です。 このキャラクターのぬいぐるみは 3024円 です。 プーさんの元にした動物は熊 です。 このキャラクターのキーホルダーは 595 円です。 このキャラクターのぬいぐるみは 2600円 です。 キャラクターのキーホルダーの値段が安い順に並び変えます★ キティちゃんのキャラクターのキーホルダーの値段は 400 円です。 ミスバニーのキャラクターのキーホルダーの値段は 504 円です。 スティッチのキャラクターのキーホルダーの値段は 504 円です。 ミッキーマウスのキャラクターのキーホルダーの値段は 595 円です。 プーさんのキャラクターのキーホルダーの値段は 595 円です。 e) キャラクターのキーホルダーの値段を実際に安い順に並び替えても、実行した結 果と同じになった。値段が同じのときはぬいぐるみが安い方が先にくるようになっていることもわかった。 f) 一番最後にまとめた。 ---------------------------------------------------------------------------- 3. 何度も繰り返す昔話で思いついたのは、「大工と鬼六」である。 「お前の名前は〜〜。」、「違う、違う。〜〜だ。目をよこせ。」という部分が 繰り返しているのでプログラムできるのではないかと思った。 具体的な部分は以下に書いた。 「じゃ、俺さまの名前を当てて見ろ。難しいぞ。俺さまの名前が当てられたら、目は取らない。でも当てられなかったら、お前を殺して、目を取るからな。」 「待、待って、ちょっと待ってくれ。やってみる。」大工は名前を考えるふりをしました。 「お前の名前は、赤鬼。」 「違う、違う。はずれだ。目をよこせ。」 「じゃ、お前の名前は青鬼だ。」 「違う、違う。はずれだ。目をよこせ。」 「それじゃ、お前の名前は鬼八だ。」 「違う、違う。はずれだ。お前に俺の名前が当てられるはずがない。目をよこせ。」 「じゃ、お前の名前は、鬼七。」 「違う、違う。もう潮時だ。目をよこせ。」 「待った。名前は知ってるぞ。鬼六!お前の名前は鬼六だ!」 大工は、ここぞとばかり大声で叫びました。その瞬間、鬼は口から泡を吹きながら川の中に消えました。それからは大工の前に二度と姿をあらわしませんでした。 鬼の建てた橋は、どんなに川の流れが急になっても、壊れたり、流されたりすることはありませんでした。 4. 基礎プログラミング I 第5回 配列の構造 「ASCII コード表」 西村まどか http://roy/~madoka/2010/r1/05/05_01_theme_01_asciicode.html ディズニーキャラクターグッズ http://www.disney.co.jp/shopping/ サンリオグッズ http://www.sanrio.co.jp/goods/index.html 基礎プログラミング II 第2回 なになにといえばこれこれ 「要素の一部分を使っ て入れ替えをするには」 西村まどか http://roy/~madoka/2010/r2/02/02_15_theme_14_sorthasharraycomp.html 大工と鬼六 http://www.geocities.co.jp/HeartLand-Gaien/7211/Japanese/onirokuj.html