• ベストアンサー

ハッシュを使って文字を記録させるには?

学校で出された課題について教えてください。 ヒントでもいいです。自力で考えたのですが、皆目わかりません。 自分はプログラミング℃素人です。 課題の内容は 今まで入力されたことのある文字列を入れた場合、"Kiita"、入力されたことのない文字列を入力した場合、"Kiitenai"と表示するプログラム です。 ヒントは記録の手段にはハッシュを使おうだそうです。 雛形は以下のとおりです。 #!/usr/bin/perl while (1) { $a = <>; if ($aは記録された文字列中にあるか?) { print "Maenimo Kiitayo\n"; } else { print "Hajimete Kiitayo\n"; $aが出現したことを記録する; } } よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

以下のような感じになると思います。 ・記録する場合、記録する語句をハッシュのキーとして、値を設定 ・記録があるかチェックする場合、語句をキーとしてハッシュを引き、値が設定されているかをチェック %hash=(); while (1) { $a = <>; if ($hash{$a}) { print "Maenimo Kiitayo\n"; }else{ print "Hajimete Kiitayo\n"; $hash{$a} = 1; } }

参考URL:
http://www.rfs.jp/sb/perl/02/05.html
sunakujira0202
質問者

お礼

とても参考になりました。 これを変更して、ほかのプログラミングも作ることができました。 ありがとうございました。

その他の回答 (2)

  • mflow
  • ベストアンサー率63% (42/66)
回答No.3

こういう丸投げ系の質問は日本の将来が心配なので書籍を紹介するのにとどめます。 http://www.amazon.co.jp/gp/product/4844313207/sr=1-101/qid=1161283273/ref=sr_1_101/250-3143321-0065061?ie=UTF8&s=books 他にもたくさんあると思いますが、この書籍は結構いいですよ。是非手にとって勉強してください。答えも書いてあります。アフィリエイトは仕込んでないのでそのまま購入しても問題ありません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1の方の回答でいいのですが 一般にはハッシュで指定したキーが存在するかどうかは、 exists 関数を使います(多少意味合いが異なります) 使い方については(意味合いの違いについてもサンプルで書いてあります) perldoc -f exists してみて下さい。

関連するQ&A