39PM59第39回 臨床工学技士国家試験 過去問

情報通信・制御工学情報表現・論理・ソフトウェアUnicode・論理回路・OS/DBMS・セキュリティ

図のフローチャートで入力値 a、b、c に対して得られる値はどれか。 ただし、a、b、c はそれぞれ異なる整数値とする。

39PM59の問題画像
解答・解説を見る

正解: 3

正答

3

この問題のポイント

この問題では、フローチャートの処理内容を読み取り、最終的に出力される値が何を表すかを判断します。

ポイントは、変数 X に最初 a を代入し、その後 b、c と順に比較して、より小さい値があれば X を更新していることです。

解説

図のフローチャートは、入力値 a、b、c の中から最小値を求める処理です。

処理の流れを順に追います。

まず、a、b、c を入力します。

次に、

  • X ← a

として、X に a の値を入れます。

この時点では、X は「今のところ最小候補」と考えます。

次に、b と X を比較します。

  • b < X なら、X ← b
  • b < X でなければ、X はそのまま

つまり、b が現在の X より小さければ、X を b に更新します。

さらに、c と X を比較します。

  • c < X なら、X ← c
  • c < X でなければ、X はそのまま

つまり、c が現在の X より小さければ、X を c に更新します。

最後に X を出力します。

このように、X には a、b、c のうち最も小さい値が残ります。したがって、得られる値は最小値です。

図で見るポイント
フローチャートでは、最初に X ← a として基準を作っています。

その後、b < X、c < X の条件判定で、より小さい値が見つかるたびに X を更新しています。これは最小値を探す典型的なアルゴリズムです。

ひっかけポイント
比較式が b > X や c > X ではなく、b < X、c < X です。大きい値ではなく、小さい値を残していく処理だと判断します。

選択肢の確認

1.誤り。
合計値を求めるには、a + b + c のように加算する処理が必要です。このフローチャートでは加算処理はありません。

2.誤り。
平均値を求めるには、合計値を求めて 3 で割る処理が必要です。このフローチャートには割り算の処理はありません。

3.正しい。
X に a を入れた後、b、c が X より小さい場合に X を更新しています。最終的に X には a、b、c の中で最も小さい値が入ります。

4.誤り。
中央値を求めるには、3つの値を大小順に並べて中央の値を選ぶ処理が必要です。このフローチャートでは最小値だけを残しています。

5.誤り。
最大値を求める場合は、b > X、c > X のように、より大きい値を見つけたときに X を更新します。この図では b < X、c < X で更新しているため、最大値ではありません。

覚えるポイント

  • フローチャートでは、まず代入処理と条件分岐を順番に追います。
  • X ← a は、X に a を代入するという意味です。
  • b < X なら X ← b は、より小さい値に更新する処理です。
  • c < X でも同じく、より小さい値に更新します。
  • 小さい値が見つかるたびに更新する処理は、最小値探索です。

関連問題

39PM5839PM60
学習アプリでこの問題を解く(記録・メモ・カード化)