令和6年度 春期 応用情報技術者試験 午前 問5

テクノロジアルゴリズム

この問題は2024(R6)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

正の整数 MM に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 xx の値が等しくなるようにしたい。空欄aに入れる条件として,適切なものはどれか。

二つのアルゴリズムの流れ図
図の説明テキスト

二つのアルゴリズムの流れ図(フローチャート)が左右に並んで描かれている。

【左の流れ図】
・開始
・処理: x ← 1
・ループ開始(演算): n : M, -1, 1 (※このブロックには「ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。」という注記が引き出し線で示されている)
・処理: x ← (x × n)
・ループ終了(演算)
・終了

【右の流れ図】
・開始
・処理: x ← 1
・処理: n ← 1
・処理: x ← (x × n) (※このブロックの直前に下からの戻り矢印が合流する)
・処理: n ← (n + 1)
・条件判断: a
 ・Yesの場合: 終了へ
 ・Noの場合: 「x ← (x × n)」の直前へ戻る

解答・解説を読む

正解: 選択肢

アルゴリズムのループ処理において、継続条件終了条件の関係を問う問題です。

二つの流れ図で結果 xx の値を等しくするためには、ループの実行回数を一致させる必要があります。一方のアルゴリズムが「nMn \le M の間繰り返す(継続条件)」という処理である場合、もう一方のアルゴリズムで「ループを抜ける条件(終了条件)」として指定するには、その条件の否定をとる必要があります。

nMn \le M」の否定は「n>Mn > M」となるため、意図した回数だけ処理を実行させるには、空欄a には n>Mn > M を入れるのが適切です。

各選択肢の解説

  • ア (n<Mn < M): 終了条件がこの式だと、nnMM に達する前にループを抜けてしまい、実行回数が不足します。
  • イ (n>M1n > M - 1): この条件は整数において nMn \ge M と同値です。nnMM になった時点で終了してしまうため、最後の1回が実行されません。
  • ウ (n>Mn > M): 正解です。nnMM 以下のときはループを継続し、MM を超えたときに終了するため、正しい回数だけ処理が実行されます。
  • エ (n>M+1n > M + 1): 終了条件がこの式だと、nnM+1M+1 のときもループを継続してしまい、実行回数が1回多くなってしまいます。