基本情報技術者試験 - 令和4年12月修了 - 問9
| ア | Xと同じ値が配列中にない場合,kには1が設定されている |
|---|---|
| イ | Xと同じ値が配列中にない場合,kにはNが設定されている。 |
| ウ | Xと同じ値が配列の1番目とN番目の2か所にある場合,kには1が設定されている。 |
| エ | Xと同じ値が配列の1番目とN番目の2か所にある場合,kにはNが設定されている。 |
答え : ウ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
この流れ図は,配列Aの1番目からN番目までの要素を順番に調べ,Xと同じ値が格納されている位置kを探索するアルゴリズムです。
流れ図を見ると,kの値がNを超えていない限り,A(k)がXと一致するかどうかを確認し,一致すれば処理を終了,一致しなければkを1増やして次の要素を確認するという流れになっています。
この処理では,配列の先頭から順番に確認していくため,もしXと同じ値が配列の1番目とN番目の両方に存在する場合,先に見つかるのは1番目の要素であり,その時点でkが1として処理が終了します。
従って,Xと同じ値が配列の1番目とN番目の2か所に存在する場合,kには1が設定されることになり,選択肢「ウ」が正解です。
選択肢「ア」と「イ」は,Xと同じ値が配列中に存在しない場合の記述ですが,この流れ図ではkがNを超えた時点でループを抜けて終了するため,実際にはkにはN+1に近い値が設定されることになり,選択肢の記述とは異なります。
「エ」は,2か所に値がある場合にNが設定されるとしていますが,先頭から探索するため実際にはNではなく1が設定されます。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
同一問題 : 〔平25修6問7〕
解説 : この流れ図は,配列Aの1番目からN番目までの要素を順番に調べ,Xと同じ値が格納されている位置kを探索するアルゴリズムです。
流れ図を見ると,kの値がNを超えていない限り,A(k)がXと一致するかどうかを確認し,一致すれば処理を終了,一致しなければkを1増やして次の要素を確認するという流れになっています。
この処理では,配列の先頭から順番に確認していくため,もしXと同じ値が配列の1番目とN番目の両方に存在する場合,先に見つかるのは1番目の要素であり,その時点でkが1として処理が終了します。
従って,Xと同じ値が配列の1番目とN番目の2か所に存在する場合,kには1が設定されることになり,選択肢「ウ」が正解です。
選択肢「ア」と「イ」は,Xと同じ値が配列中に存在しない場合の記述ですが,この流れ図ではkがNを超えた時点でループを抜けて終了するため,実際にはkにはN+1に近い値が設定されることになり,選択肢の記述とは異なります。
「エ」は,2か所に値がある場合にNが設定されるとしていますが,先頭から探索するため実際にはNではなく1が設定されます。
