応用情報23年 秋 午後 問2 設問1

【問題を解く前に】

分類は・・・基礎理論ですかね?ハッシュの・・・

段落や図表の構造はこんな感じ

[データ構造]
表1 構造体INFOのメンバ

[データ管理プログラム]
図1 データ格納関数Set()
図2 データ取得関数Get()
図3 データ削除関数Delete()

[画面プログラム]
図4 画面プログラムの一部

段落間の関係は薄そうなので、まず、ア〜エを埋めてしまいます

【解き方】

設問1

アについて:

プログラムを書いている場合、
whileなどでまわして、その直後にif文があるばあい、
  ・なにかを探していることが多いです。
今回はそのケース。その場合、
  ・if文の条件が、while文の条件に関係する
ことになります。

 今回は、if文の条件、「countはNより小さい」に関係したものが
アにはいると考えられます。
 countはNより大きかったら、オーバーフローになるはずなので、
ループできません。ということは、「countはNより小さい」そのものが
アにはいるはずです。


イについて:
配列の最後は?ときいています。Nのはず。
イのIF文の前でidxを足しているので、最後(N)より、大きくなっている


ウについて:
まずは、Hash(key)で値の格納場所をとってくるのでした
(と表1の下に書いてある)

エについて:
アのループと同じ感じで、if文の条件、
「array[idx].keyはkeyと等しい」に関係することが入ってくるはずです。
もし、エが、「array[idx].keyはkeyと等しい」だったら、等しくないとき
ループしないはずですが、ここの処理は、等しくない間ループさせ、
等しくなったら抜けて、値をセットしたいはずです。

 ということは。。。
「array[idx].keyはkeyと等しくない」
 にしないと、話がつながりません。


【答え】

設問1
ア countはNより小さい
イ idxはNより大きい
ウ Hash(key)
エ array[idx].keyはkeyと等しくない



★(PR) まぐまぐでメルマガ始めました。以下のとおりです。よかったら、登録してくださいね!
●メルマガID:0001289711
 【メルマガタイトル】 試験と実務の関連を説明する−実践!情報処理試験講座 メール版
 【個別ページ】 http://www.mag2.com/m/0001289711.html

★ 電子書籍版「情報処理試験の基礎知識」に考え方のまとめを載せてます(無料)
    http://p.booklog.jp/book/41469