HOME»応用情報技術者試験掲示板»H29春 #3 プログラミング 設問1のアの答え
投稿する

H29春 #3 プログラミング 設問1のアの答え [1556]

 ぴっころさん(No.1) 
IPA公式では、while文の条件として「isEmpty() が 0 である」となっています。
が、自分は「isEmpty()が 1 と等しくない」と解答しました。
これは、間違っているのでしょうか?

説明では、「isEmpty() は、キューが空なら 1 を、そうでなければ 0 を返す」となっていたので、
「isEmpty()が 1 の時は、キューが空を表すのだから、1 と等しくないでループ継続」と考えました。
知恵を貸してください。
2019.04.09 18:00
Rさん(No.2) 
アルゴリズム的には間違いないです。
不正解にはならないと思います。

解答するときのコツとしては
模範解答が「isEmpty() が 0 である」となっているのであれば

・isEmpty() が 1 ではない
とするのがいいかなと思います。根拠としては「プログラミングの問題」なので、
== を  である  と表現するなら  != は ではない  と表現するのが自然だからです。

「isEmpty() が 0 である」  のほうがいいと思われる理由はよくわからないんですが、
普通に書くなら
while(!isEmpty()) {} 
となると思いますので、全く問題ないと思いますね。
2019.04.09 18:40
ぴっころさん(No.3) 
Rさん、回答ありがとうございます。
アルゴリズム的に間違っていないと分かり、安心しました。

表現として「isEmpty() が 1 ではない」と書いたほうが、プログラミング的に自然であるというのも、理由を読んで納得しました。
本番でぜひ活かしたいと思います。
2019.04.09 22:48

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop