電験三種 平成29年度(2017) 機械 問18(a) 過去問解説
(選択問題:問17または問18のどちらか1問を解く)
図のフローチャートで表されるアルゴリズムについて,次の(a)及び(b)の問に答えよ。変数は全て整数型とする。
このアルゴリズム実行時の読込み処理において,n=5とし,a[1]=2,a[2]=3,a[3]=8,a[4]=6,a[5]=5とする。
(a) 図のフローチャートで表されるアルゴリズムの機能を考えて,出力されるa[5]の値を求めよ。その値として正しいものを次の(1)〜(5)のうちから一つ選べ。

- (1) 2
- (2) 3
- (3) 5
- (4) 6
- (5) 8
答えと解説を見る
正解は(5)
解説
【考え方】フローチャートが何をしているか(並べかえ)がわかれば、計算しなくても解けます。
並べかえ:前の数が後ろの数より大きければ入れかえる → 小さい順(昇順)に並ぶ。
■1 フローチャートを読む
i番目の数 a[i] と、それより後ろの数 a[j] をくらべます。
a[i] のほうが大きいと、2つを入れかえます(X の部分)。
これを i = 1 から n−1 までくり返すと、前のほうに小さい数が集まります。
つまり、小さい順(昇順)に並べかえるアルゴリズムです。
■2 a[5] を求める
2, 3, 8, 6, 5 を小さい順に並べると、2, 3, 5, 6, 8 です。
いちばん後ろの a[5] は、いちばん大きい8です。
答えは(5)ピヨ。
出典:平成29年度(2017) 第三種電気主任技術者試験(電気技術者試験センター)機械 問18(a)