電験三種 令和4年度(2022) 下期 機械 問18(b) 過去問解説
(選択問題:問17または問18のどちらか1問を解く)
30件分の使用電力量のデータ処理について,次の(a)及び(b)に答えよ。
(b) 図2は,30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ)〜(キ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。ただし,wは一時的な退避用の変数と考えよ。

- (1) (オ) d[i] < d[j] (カ) d[j] ← d[i] (キ) d[j] ← w
- (2) (オ) d[i] < d[j] (カ) d[i] ← d[j] (キ) d[j] ← w
- (3) (オ) d[i] < d[j] (カ) d[j] ← d[i] (キ) d[i] ← w
- (4) (オ) d[i] > d[j] (カ) d[i] ← d[j] (キ) d[j] ← w
- (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)