本文へ移動
✓ 合格ドリル基礎から練習

基本情報技術者 / 条件・事例の練習

基本情報技術者試験基礎・応用

条件を読む・根拠を説明する

上書きしながら条件を満たす値を残す

条件を整理し、答えを選んでから解き方を確認しましょう。

非負の値だけを元の順に配列前方へ詰める。添字は1始まり。代入の右辺は実行時の値。 A = [3, −1, 0, −2, 5] w ← 1 for r = 1 to 5 if A[r] ≥ 0 A[w] ← A[r] w ← w + 1 endif endfor length ← w − 1 for j = length + 1 to 5 A[j] ← 0 endfor 終了時のlengthとAはどれか。

答え・解き方を読む

3、[3,0,5,0,0]

図で見る
読む位置と書く位置を別々に進める
読む位置と書く位置を別々に進める
読む位置と書く位置を別々に進める図を拡大して見る ↗

配列の箱内は値でなく1始まりの位置の例です。読み位置rの値を条件判定し、残す場合だけ書き位置wへ移してwを進めます。上書きが後の読取りへ与える影響も追います。

図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。

考える順序

  1. 1残す条件は0以上なので3,0,5の3個
  2. 2書込位置wは読込位置rを追い越さず未読データを壊さない
  3. 3length=3に確定後、残る位置4,5だけを0にする

選択肢ごとの理由

  • 正解 · 3、[3,0,5,0,0]

    残す条件は0以上なので3,0,5の3個。書込位置wは読込位置rを追い越さず未読データを壊さない。length=3に確定後、残る位置4,5だけを0にする。

  • 比較 · 2、[3,5,0,0,0]

    0も残す条件なので2個ではありません。

  • 比較 · 3、[3,0,0,0,0]

    読込前の5を消す処理はなく位置3へ保存されます。

  • 比較 · 4、[3,0,5,0,0]

    最後のwは次の空き位置4で長さはw−1です。

学習アプリで条件・事例を5問 →

学習の参考資料

用語・仕組みを学ぶための参考資料です。設問の条件と、このページの解き方を併せて確認してください。

教材の作成・確認方法

関連する要点をまとめて読む

技術の入口の要点と練習一覧 →