35PM58|第35回 臨床工学技士国家試験 過去問
図は入力値の平均を求めるフローチャートである。(a)、(b)に入る組合せはどれか。

解答・解説を見る
正解: 3
正答
3
公式正答は 3 です。正答内容は (a)n ← n + 1 (b)s ← s + x です。
この問題のポイント
平均値を求めるには、採用した入力値の個数 (n) と合計 (s) を別々に更新し、最後に (s/n) を計算します。終了を表す負のセンチネル値は、個数にも合計にも含めません。
解説
フローチャートでは (n) を入力値の個数、(s) を入力値の総和として使います。入力 (x) が平均計算の対象であることを確認した後、1件受け取るたびに
(n\leftarrow n+1)
(s\leftarrow s+x)
と更新します。負の入力は処理終了を示すセンチネルであり、その判定でループを抜けるため、(n) に加算せず (s) にも加えません。最後に (s/n) を出力すれば、採用した値だけの算術平均になります。本問は少なくとも1個の有効入力がある前提で、0除算処理は図の範囲外です。
選択肢の確認
選択肢1:(a)n ← n + x (b)s ← s + 1
正答ではありません。 個数 (n) へ入力値 (x) を足し、総和 (s) へ1を足しており、個数と合計の更新が逆です。(s/n) は平均になりません。
選択肢2:(a)n ← n + n (b)s ← s + n
正答ではありません。 (n) を倍増させ、(s) へ個数を加えても入力値 (x) の個数と総和を保持できません。入力内容を反映しない更新です。
選択肢3:(a)n ← n + 1 (b)s ← s + x
正答です。 有効入力ごとに個数を1増やし、その入力値を総和へ加えます。負のセンチネルを更新前に除外すれば、最後の (s/n) が平均値になります。
選択肢4:(a)n ← n + s (b)s ← x + 1
正答ではありません。 (n) に総和を足し、(s) を現在の入力値と1だけで上書きするため、過去の個数も総和も保持できません。
選択肢5:(a)n ← n + x (b)s ← s + s
正答ではありません。 (n) は個数ではなく入力値の累積となり、(s) は入力 (x) を加えず自身を倍増します。平均計算に必要な状態変数を更新できません。
覚えるポイント
- 平均値は「総和÷個数」なので、総和 (s) と個数 (n) を別々に保持する。
- 有効入力1件ごとに (n\leftarrow n+1)、(s\leftarrow s+x)。
- 終了センチネルは判定してからループを抜け、個数・総和へ含めない。
掲載内容は受験学習用に編集しています。正式な正答・採点上の取扱いは、各試験実施機関の発表を優先してください。 情報の確認方法と訂正窓口は編集方針に掲載しています。 本サービスは診断・治療・臨床判断を目的とするものではありません。
問題文・正答・解説に誤りを見つけたら、この問題の誤りを報告する([email protected])までお知らせください。確認して修正します。