情報35【電験3種 機械】30件の使用電力量データの最大値・平均値算出と降順ソート!平成20年度 B問題18 完全解説

電験3種 機械科目【情報】平成20年度 B問題18 配列を使ったデータ処理(最大値・平均値の算出、降順ソートのフローチャート穴埋め)

今回は平成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 問題文
平成20年度 機械科目 B問題18 問題文

電験3種 機械科目 【情報】 平成20年度 B問題18

 30件分の使用電力量のデータ処理について,次の(a)及び(b)に答えよ。

(a) 図1は,30件分の使用電力量の中から最大値と30件分の平均値を出力する一つのプログラムの流れ図を示す。図1中の(ア),(イ),(ウ)及び(エ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。

(b) 図2は,30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ),(カ)及び(キ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。

(ア)(イ)(ウ)(エ)
(1)d(1)→t0,k,1d(i)d(i)→s
(2)0→t2,k,1d(i)>sd(i)→s
(3)d(1)→t2,k,1d(i)s→d(i)
(4)d(1)→t2,k,1d(i)>sd(i)→s
(5)0→t0,k,1d(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)
図1・図2 30件の使用電力量データの最大値・平均値算出/降順ソートの流れ図(自作図)
図1・図2 30件の使用電力量データの最大値・平均値算出/降順ソートの流れ図(自作図)

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

最大値と平均値の探索手順および降順の単純交換法の要点
最大値探索はd(1)で初期化し、降順交換はd(i)

(a)はd(1)を最大値候補sと合計tの初期値に使い、i=2から30まで走査します。(b)はi

ポイント解説:(a) 初期化と走査範囲を確認

最大値と合計の初期化から30件の走査と出力までを示す手順表
空欄はd(1)→t、2,k,1、d(i)>s、d(i)→sで選択肢(4)です。

本問は情報34(令和4年度下期B問題18)と同一テーマ・同一アルゴリズム構造の問題です。最大値・平均値算出(図1)と降順ソート(図2)という2つのフローチャートの空欄を埋めます。

解き方は情報34と同じ考え方です。最大値変数と合計変数の初期化、ループ範囲、最大値更新の判定、そして退避用変数wを使った値交換の3ステップを順に確認します。

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

d(i)=12とd(j)=20を退避変数wで交換し降順にする3ステップ
w=d(i)、d(i)=d(j)、d(j)=wの順で交換し、(b)は選択肢(2)です。

STEP1 (a) 初期化処理(ア)(イ)を求める

最大値s←d(1)と合計t←d(1)を同時に初期化するのが(ア)。

d(1)は初期化済みのため,ループはi=2(イ)からk=30までとする。

STEP2 (a) 最大値更新の判定(ウ)(エ)を求める

新しい要素d(i)が現在の最大値sより大きければ更新するので,判定(ウ)はd(i)>s

YES側の処理(エ)はd(i)→s(最大値の更新)。

以上より(ア)d(1)→t(イ)2,k,1(ウ)d(i)>s(エ)d(i)→sの組合せである(4)が(a)の正解です。

STEP3 (b) 交換条件(オ)を求める

降順に並べたいので,d(i)がd(j)より小さければ(順序が逆なら)交換が必要。判定(オ)はd(i)

STEP4 (b) 交換処理(カ)(キ)を求める

w←d(i)(退避)→(カ)d(j)→d(i)(d(j)の値をd(i)へ)→(キ)w→d(j)(退避していた元のd(i)をd(j)へ)の3ステップ。

以上より(オ)d(i)(2)が(b)の正解です。

答え:(a)-(4),(b)-(2)

💡 覚え方
情報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

📚 次に解くべき関連問題
【機械】令和4年度下期B問題18(情報34)
【機械】令和2年度B問題18(情報36)
【機械】令和4年度下期A問題13(情報39)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次