第7回 基礎プログラミング II レポート課題 氏名:大島 藍 学籍番号:C1090331 語学クラス:中国語 コース(系):福祉コース 1、 a.仕様書 <企画意図> 私は部屋の模様替えが好きなので、プログラムにしたいと思って作成した。 <遊び方> 移動したい家具を選んで、移動したい場所を入力する。 <連絡先> ・C109033@e.koeki-u.ac.jp b.プログラムに関する部分 ・考えた設定 hash の中にいれた商品から選びその商品名と値段を表示させるプログラムを考 えた。 ・作成したプログラム #!/usr/koeki/bin/ruby $KCODE = 'e' # 文字コードの設定。この場合は EUC コードで漢字 moyou = Hash.new # Hash.new で新しく Hash を作る moyou = { "こたつ" => "壁側", # Hash の対を設定する "本棚" => "テレビの隣", "全身鏡" => "本棚の隣", "ベット" => "こたつの隣", "テレビ" => "クーラーの下", "雑誌棚" => "ベットの隣" } STDERR.print("部屋の家具の位置が出てくる\n") for f,a in moyou printf("今置いてある %s は %s だよ ★ \n",f ,a) end moyou.delete("こたつ") # key の中の こたつ に該当するところを削除する STDERR.print("こたつはどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo1 = gets.chomp # 入力された文字の改行を切取り変数 iboubasyo1 の中に入れる moyou["こたつ"] = idoubasyo1 # Hash の対を設定する moyou.delete("本棚") # key の中の 本棚 に該当するところを削除する STDERR.print("本棚はどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo2 = gets.chomp # 入力された文字の改行を切取り変数 idoubasyo2 の中に入れる moyou["本棚"] = idoubasyo2 # Hash の対を設定する moyou.delete("全身鏡") # key の中の 全身鏡 に該当するところを削除する STDERR.print("全身鏡はどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo3 = gets.chomp # 入力された文字の改行を切取り変数 idoubasyo3 の中に入れる moyou["全身鏡"] = idoubasyo3 # Hash の対を設定する moyou.delete("ベット") # key の中の ベット に該当するところを削除する STDERR.print("ベットはどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo4 = gets.chomp # 入力された文字の改行を切取り変数 idoubasyo4 の中に入れる moyou["ベット"] = idoubasyo4 # Hash の対を設定する moyou.delete("テレビ") # key の中の ベット に該当するところを削除する STDERR.print("テレビはどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo5 = gets.chomp # 入力された文字の改行を切取り変数 idoubasyo5 の中に入れる moyou["テレビ"] = idoubasyo5 # Hash の対を設定する moyou.delete("雑誌棚") # key の中の 雑誌棚 に該当するところを削除する STDERR.print("雑誌棚はどこに移動する?: ") # 表示させたい文章をカッコとダブルコーテーションで囲む idoubasyo6 = gets.chomp # 入力された文字の改行を切取り変数 idoubasyo6 の中に入れる moyou["雑誌棚"] = idoubasyo6 # Hash の対を設定する for f,a in moyou printf("並び変えた後 %s の場所は %s だよ ★ \n",f ,a) end ・実行結果 pan{c109033}% ./moyou.rb [~/public_html/advertise2] 部屋の家具の位置が出てくる 今置いてある テレビ は クーラーの下 だよ ★ 今置いてある こたつ は 壁側 だよ ★ 今置いてある 本棚 は テレビの隣 だよ ★ 今置いてある 雑誌棚 は ベットの隣 だよ ★ 今置いてある 全身鏡 は 本棚の隣 だよ ★ 今置いてある ベット は こたつの隣 だよ ★ こたつはどこに移動する?: 西側 本棚はどこに移動する?: 東側 全身鏡はどこに移動する?: 南側 ベットはどこに移動する?: 窓の隣 テレビはどこに移動する?: 本棚の隣 雑誌棚はどこに移動する?: 移動しない 並び変えた後 テレビ の場所は 本棚の隣 だよ ★ 並び変えた後 こたつ の場所は 西側 だよ ★ 並び変えた後 本棚 の場所は 東側 だよ ★ 並び変えた後 雑誌棚 の場所は 移動しない だよ ★ 並び変えた後 全身鏡 の場所は 南側 だよ ★ 並び変えた後 ベット の場所は 窓の隣 だよ ★ ・もとにしたプログラムからの変更点 ハッシュ名.delete(a) を付け足した。 Hash の中身を増やした。for を使って Hash の中身を全部表示させた。 ・考察 最初こたつは壁側にあり、テレビはクーラーの下にあったのが、並び変えたら・・ こたつは、西側に移動し、テレビは本棚の隣に移動した。また、本棚は、テレビ の隣にあり、雑誌棚は、ベットの隣にあったのが、並び変えたら・・本棚は、東 側に移動し、雑誌棚は移動しないと表示された。そして全身鏡は、本棚の隣にあ り、ベットはこたつのとなりにあったが、並び変えたら・・全身鏡は南側に移動 し、ベットは窓の隣に移動したと表示された。入力された通りに移動しているの で、このプログラムは正しく動いているといえる。 最初に設定したプログラムと実行した時の家具の名前の順番が変わっているから 考えたけど分からなかった。 家具の名前と置いてある場所をどっちも消して新しく表示しかったので、調べて delete で削除して表示できるようにした。 d.広告ページ http://roy/~c109033/advertise2/ 2、感想 仕様書とプログラムという文字のいろが何回設定してもいろが変わらなくて焦っ たが、調べて a:visited{color:#cc0099;} と表示して色付けをした。また、 for f,a in moyou は最初 f だけだったが、実行しても上手く出来なかったので a をたしたて表示した。 今回ホームページを作っていたら、けっこう楽しかった。次回の課題も頑張りた い。 3、参考文献 ハッシュ要素削除|Ruby 入門 http://ameblo.jp/rubymemo/entry-10522880944.html ページタグ/みんなのタグ辞書/HTMLタグ辞書 http://heo.jp/tag/page/ 西村 まどか 基礎プログラミング II 第2回 なになにといえばこれこれ 「Hash の対を表示するには」 http://roy/~madoka/2010/r2/02/02_07_theme_06_forprint.html ・共同学習者 佐竹 聡美 / 横山 広樹