IPA過去問ドリル

平成25年度 秋期 基本情報技術者試験 午前 問8

テクノロジ/アルゴリズム

右の流れ図が左の流れ図と同じ動作をするために,a,bに入るYesとNoの組合せはどれか。 左の流れ図:「Pでない又はQ」の判定でYesなら処理を実行してループの先頭へ戻り,Noならループを抜ける。 右の流れ図:Pを判定し,その結果に応じてaへ分岐(分岐しない側はQの判定へ進む),Qを判定し,その結果に応じてbから処理へ合流するか,ループを抜ける。処理の後はループの先頭へ戻る。 (注:本サイトでは原問題の図を文字表記に変換しています)

平成25年度 秋期 基本情報技術者試験 午前 問8の図

出典:平成25年度 秋期 基本情報技術者試験 午前 問8

正解:ア

解説

左の流れ図は「Pでない又はQ」が真の間だけ処理を実行するループで,これが偽になる(つまりPが真かつQが偽の)ときだけループを抜けます。右の流れ図でPの判定結果がNoのとき(Pが偽のとき)は,Qの値によらず条件が真になるので,直接処理へ進む必要があり,これがaです。Pの判定がYesのときはQの判定に進み,Qの判定がNoのとき(Pが真かつQが偽のとき)だけループを抜ける必要があり,これがbになります。

選択肢ごとの解説

  • 正しい。a:No(Pが偽なら直接処理へ)とb:No(Qが偽ならループを抜ける)の組合せによって,元の「Pでない又はQ」と同じ動作になります。
  • 誤り。b:Yesにすると,Pが真かつQが真のときにループを抜けてしまい,本来処理を実行すべき場合に処理されなくなります。
  • 誤り。a:Yesにすると,Pが偽のときに直接処理へ進まず,本来実行されるべき処理がされない場合が生じます。
  • 誤り。a,bともに逆の値になっており,Pが偽でも処理へ進まず,Qが真でもループを抜けてしまうなど,動作が反対になります。
基本情報技術者の過去問を演習モードで解く