30件分の使用電力量のデータ処理について、次の(a)及び(b)に答えよ。
図1は、30件分の使用電力量の中から最大値と30件分の平均値を出力する一つのプログラムの流れ図を示す。図1中の(ア)~(エ)に当てはまる処理として、正しいものを組み合わせたのは次のうちどれか。
図はタップで拡大できます。
回答を選ぶ
選択肢を押すと、すぐに結果が表示されます。
要点
正解は(4)。最大値探索では、暫定最大値 \(s\) と合計 \(t\) の初期化、比較開始位置、更新条件をそろえる必要があります。\(d[1]\) を先に処理済みにする流れが決め手です。
詳細解説
最大値探索と合計計算を行うアルゴリズムです。
最初に暫定最大値 \(s\) に \(d[1]\) を代入しています。
(ア):合計値 \(t\) の初期化です。ループが2から始まるなら \(t=d[1]\)、1から始まるなら \(t=0\) ですが、選択肢の組み合わせを見ます。
(イ):ループ変数の初期値です。すでに1番目のデータは処理済み(sに代入)と考えると、比較は2番目からで良いため、\(i=2\) が効率的です。この場合、\(t\) も \(d[1]\) で初期化しておく必要があります。
(ウ):最大値の更新条件です。現在のデータ \(d[i]\) が暫定最大値 \(s\) より大きければ更新するので、\(d[i] > s\) です。
(エ):更新処理です。\(s \leftarrow d[i]\) です。
これらを満たすのは選択肢4です。