今回は平成20年度 機械科目 B問題18を解説します。情報34(令和4年度下期B問題18)と同一テーマ・同一アルゴリズム構造の問題で、配列d(30)を使って最大値・平均値を出力する流れ図(図1)の空欄(ア)〜(エ)を求める(a)と、降順に並べ替える流れ図(図2)の空欄(オ)〜(キ)を求める(b)から構成されます。
解き方は情報34と同じ考え方です。(a)は最大値・合計の初期化とループ開始位置、最大値更新の判定式を求め、(b)は単純交換法型の二重ループで退避用変数wを使った3ステップの交換処理を穴埋めします。
平成20年度 機械科目 B問題18:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 【情報】 平成20年度 B問題18
30件分の使用電力量のデータ処理について,次の(a)及び(b)に答えよ。
(a) 図1は,30件分の使用電力量の中から最大値と30件分の平均値を出力する一つのプログラムの流れ図を示す。図1中の(ア),(イ),(ウ)及び(エ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。
(b) 図2は,30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ),(カ)及び(キ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。
(ア) (イ) (ウ) (エ) (1) d(1)→t 0,k,1 d(i) d(i)→s (2) 0→t 2,k,1 d(i)>s d(i)→s (3) d(1)→t 2,k,1 d(i) s→d(i) (4) d(1)→t 2,k,1 d(i)>s d(i)→s (5) 0→t 0,k,1 d(i) s→d(i)
(オ) (カ) (キ) (1) d(i) d(i)→d(j) w→d(j) (2) d(i) d(j)→d(i) w→d(j) (3) d(i) d(i)→d(j) w→d(i) (4) d(i)>d(j) d(j)→d(i) w→d(j) (5) d(i)>d(j) d(i)→d(j) w→d(i)

出題のポイント:探索と交換を別々に整理

(a)はd(1)を最大値候補sと合計tの初期値に使い、i=2から30まで走査します。(b)はi 本問は情報34(令和4年度下期B問題18)と同一テーマ・同一アルゴリズム構造の問題です。最大値・平均値算出(図1)と降順ソート(図2)という2つのフローチャートの空欄を埋めます。 解き方は情報34と同じ考え方です。最大値変数と合計変数の初期化、ループ範囲、最大値更新の判定、そして退避用変数wを使った値交換の3ステップを順に確認します。 最大値s←d(1)と合計t←d(1)を同時に初期化するのが(ア)。 d(1)は初期化済みのため,ループはi=2(イ)からk=30までとする。 新しい要素d(i)が現在の最大値sより大きければ更新するので,判定(ウ)はd(i)>s。 YES側の処理(エ)はd(i)→s(最大値の更新)。 以上より(ア)d(1)→t(イ)2,k,1(ウ)d(i)>s(エ)d(i)→sの組合せである(4)が(a)の正解です。 降順に並べたいので,d(i)がd(j)より小さければ(順序が逆なら)交換が必要。判定(オ)はd(i) w←d(i)(退避)→(カ)d(j)→d(i)(d(j)の値をd(i)へ)→(キ)w→d(j)(退避していた元のd(i)をd(j)へ)の3ステップ。 以上より(オ)d(i) 答え:(a)-(4),(b)-(2) 💡 覚え方 ⚠️ よくある間違い ▼あわせて解きたい関連問題ポイント解説:(a) 初期化と走査範囲を確認

問題の解説:(b) 大きい値を前へ交換

STEP1 (a) 初期化処理(ア)(イ)を求める
STEP2 (a) 最大値更新の判定(ウ)(エ)を求める
STEP3 (b) 交換条件(オ)を求める
STEP4 (b) 交換処理(カ)(キ)を求める
情報34と同一のアルゴリズム構造(記法がd(i)→sのような矢印表記に変わるだけ)。最大値探索の初期化パターンと,退避用変数wを使った3ステップ交換を押さえておけば解ける。
d(i)→sとs→d(i)のような矢印の向き(代入方向)を取り違えない。図1と図2の変数名(s,t,d(i))を混同しないよう注意する。まとめ
(a)(ア) d(1)→t (a)(イ) 2,k,1 (a)(ウ) d(i)>s (a)(エ) d(i)→s (b)(オ) d(i) (b)(カ) d(j)→d(i) (b)(キ) w→d(j) 答え (a)-(4),(b)-(2)
・30件の使用電力量データの最大値・平均値算出と降順ソート(令和4年度下期):【機械】令和4年度下期B問題18
・n個の配列を降順に並べ替えるフローチャートと交換回数:【機械】令和2年度B問題18

コメント