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

- (1) 3
- (2) 4
- (3) 5
- (4) 8
- (5) 10
答えと解説を見る
正解は(1)
解説
【考え方】i を1から4まで動かし、そのたびに後ろの数とくらべて、入れかえた回数を数えます。
j は i+1 から 5 まで動き、a[i] とその後ろの数を1つずつくらべます。
X の処理:a[i] > a[j] のときだけ、a[i] と a[j] を入れかえる(m は入れかえのための一時置き場)。
■1 順に数える
はじめは 2, 3, 8, 6, 5 です。
i = 1 と 2 のときは、前の数のほうが小さいので入れかえません。
i = 3 では、8 と 6 を入れかえて 2, 3, 6, 8, 5 になります。(1回目)
つぎに 6 と 5 を入れかえて 2, 3, 5, 8, 6 になります。(2回目)
i = 4 では、8 と 6 を入れかえて 2, 3, 5, 6, 8 になります。(3回目)
■2 合計
X の処理は、全部で3回です。
答えは(1)ピヨ。
はじめは 2, 3, 8, 6, 5 です。
i = 1 と 2 のときは、前の数のほうが小さいので入れかえません。
i = 3 では、8 と 6 を入れかえて 2, 3, 6, 8, 5 になります。(1回目)
つぎに 6 と 5 を入れかえて 2, 3, 5, 8, 6 になります。(2回目)
i = 4 では、8 と 6 を入れかえて 2, 3, 5, 6, 8 になります。(3回目)
■2 合計
X の処理は、全部で3回です。
答えは(1)ピヨ。
出典:平成29年度(2017) 第三種電気主任技術者試験(電気技術者試験センター)機械 問18(b)