電験三種 令和4年度(2022) 下期 機械 問18(b) 過去問解説

問18(b) 《情報(並べ替えの流れ図)》
(選択問題:問17または問18のどちらか1問を解く) 30件分の使用電力量のデータ処理について,次の(a)及び(b)に答えよ。 (b) 図2は,30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ)〜(キ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。ただし,wは一時的な退避用の変数と考えよ。
問18(b)の図
  1. (1) (オ) d[i] < d[j] (カ) d[j] ← d[i] (キ) d[j] ← w
  2. (2) (オ) d[i] < d[j] (カ) d[i] ← d[j] (キ) d[j] ← w
  3. (3) (オ) d[i] < d[j] (カ) d[j] ← d[i] (キ) d[i] ← w
  4. (4) (オ) d[i] > d[j] (カ) d[i] ← d[j] (キ) d[j] ← w
  5. (5) (オ) d[i] > d[j] (カ) d[j] ← d[i] (キ) d[i] ← w
答えと解説を見る
正解は(2)
解説
【考え方】大きい順に並べるので、「前の d[i] より後ろの d[j] が大きい」ときに2つを入れかえます。 覚えるポイント:2つの値の入れかえ=w ← d[i]、d[i] ← d[j]、d[j] ← w ■1 (オ) 入れかえる条件 大きい順(降順)なので、前の d[i] の方が小さいときに入れかえます。→ (オ) d[i] < d[j] ■2 (カ)(キ) 入れかえの手順 いきなり d[i] ← d[j] とすると、d[i] の元の値が消えてしまいます。 そこで、まず w に d[i] を退避(よけておく)します。 w ← d[i] 次に、d[i] に d[j] を入れます。→ (カ) d[i] ← d[j] 最後に、よけておいた w を d[j] に入れます。→ (キ) d[j] ← w 答えは(2)ピヨ。
出典:令和4年度(2022) 下期 第三種電気主任技術者試験(電気技術者試験センター)機械 問18(b)