HOME»応用情報技術者試験掲示板»H29春 #3 プログラミング 設問1のアの答え
投稿する
H29春 #3 プログラミング 設問1のアの答え [1556]
ぴっころさん(No.1)
IPA公式では、while文の条件として「isEmpty() が 0 である」となっています。
が、自分は「isEmpty()が 1 と等しくない」と解答しました。
これは、間違っているのでしょうか?
説明では、「isEmpty() は、キューが空なら 1 を、そうでなければ 0 を返す」となっていたので、
「isEmpty()が 1 の時は、キューが空を表すのだから、1 と等しくないでループ継続」と考えました。
知恵を貸してください。
が、自分は「isEmpty()が 1 と等しくない」と解答しました。
これは、間違っているのでしょうか?
説明では、「isEmpty() は、キューが空なら 1 を、そうでなければ 0 を返す」となっていたので、
「isEmpty()が 1 の時は、キューが空を表すのだから、1 と等しくないでループ継続」と考えました。
知恵を貸してください。
2019.04.09 18:00
Rさん(No.2)
アルゴリズム的には間違いないです。
不正解にはならないと思います。
解答するときのコツとしては
模範解答が「isEmpty() が 0 である」となっているのであれば
・isEmpty() が 1 ではない
とするのがいいかなと思います。根拠としては「プログラミングの問題」なので、
== を である と表現するなら != は ではない と表現するのが自然だからです。
「isEmpty() が 0 である」 のほうがいいと思われる理由はよくわからないんですが、
普通に書くなら
while(!isEmpty()) {}
となると思いますので、全く問題ないと思いますね。
不正解にはならないと思います。
解答するときのコツとしては
模範解答が「isEmpty() が 0 である」となっているのであれば
・isEmpty() が 1 ではない
とするのがいいかなと思います。根拠としては「プログラミングの問題」なので、
== を である と表現するなら != は ではない と表現するのが自然だからです。
「isEmpty() が 0 である」 のほうがいいと思われる理由はよくわからないんですが、
普通に書くなら
while(!isEmpty()) {}
となると思いますので、全く問題ないと思いますね。
2019.04.09 18:40
ぴっころさん(No.3)
Rさん、回答ありがとうございます。
アルゴリズム的に間違っていないと分かり、安心しました。
表現として「isEmpty() が 1 ではない」と書いたほうが、プログラミング的に自然であるというのも、理由を読んで納得しました。
本番でぜひ活かしたいと思います。
アルゴリズム的に間違っていないと分かり、安心しました。
表現として「isEmpty() が 1 ではない」と書いたほうが、プログラミング的に自然であるというのも、理由を読んで納得しました。
本番でぜひ活かしたいと思います。
2019.04.09 22:48