令和5年度第三種電気主任技術者上期試験 機械科目 問140 解説 問14 次のフローチャートに従って作成したプログラムを実行したとき,印字されるA,Bの値として,正しい組合せを次の(1)~(5)のうちから一つ選べ。
問14 プログラムは以下のフローチャートに従って実行される。 開始 A ← 10 B ← 2 ループ開始: A ← A + B もし A ≦ 40 ならば (YES): B ← B^2 + 1 ループ開始へ戻る そうでなければ (NO): A, B を印字 終了
- A: 43, B: 288
- A: 43, B: 677
- A: 43, B: 26 ✓ 正答
- A: 720, B: 26
- A: 720, B: 677
解説
フローチャートの指示に従って変数のAとBの値を順に追跡していくと、Aの値が43、Bの値が26になるため、選択肢(3)が正答となります。プログラムの実行は、ひし形で示された条件「A ≦ 40」が偽となるまで繰り返され、その条件を満たさなくなった時点でのAとBの値が印字されます。
フローチャートとアルゴリズムの基本
この問題は、プログラムの処理の流れを図で表現する「フローチャート」を正確に読み解く能力を問うものです。フローチャートは、特定の課題を解決するための手順や計算方法を定義する「アルゴリズム」を視覚的に表現する手段の一つです。電気主任技術者試験では、制御システムや情報処理の基礎知識として、このような論理的な思考力が求められます。
- フローチャートの要素:
- 開始/終了: 端子記号(角丸長方形)でプログラムの始まりと終わりを示します。
- 処理: 処理記号(長方形)で具体的な計算や代入などの操作を示します。例えば「A ← A + B」は、現在のAにBを加えて新しいAの値とする処理を意味します。
- 条件分岐: 判断記号(ひし形)で条件の真偽によって次に進む処理を変えることを示します。この問題では「A ≦ 40」がこの記号で示されています。
- 入出力: 入出力記号(平行四辺形、または角丸長方形)でデータの入力や出力(印字)を示します。
この問題では、特に「ループ処理」が含まれています。ループ処理とは、特定の条件が満たされている間、一連の処理を繰り返し実行する構造のことです。フローチャートでは、条件分岐から処理を経て、再び前の処理に戻る矢印で表現されます。この問題では「A ≦ 40」という条件がループ継続の判断基準となっています。
プログラム実行におけるAとBの値の追跡
フローチャートの指示に従い、AとBの変数の値がどのように変化していくかを順に追っていきます。
初期値の設定 プログラム開始直後、AとBには以下の初期値が設定されます。
- A = 10
- B = 2
1回目のループ処理
- まず、AにBを加算します。
- 次に、条件「」を判定します。は真(YES)です。
- 真であるため、Bの値を更新します。
- ループ開始点へ戻ります。
2回目のループ処理
- AにBを加算します。現在のAは12、Bは5です。
- 次に、条件「」を判定します。は真(YES)です。
- 真であるため、Bの値を更新します。現在のBは5です。
- ループ開始点へ戻ります。
3回目のループ処理とプログラムの終了
- AにBを加算します。現在のAは17、Bは26です。
- 次に、条件「」を判定します。は偽(NO)です。
- 偽であるため、ループを抜け、AとBの値を印字します。
- プログラムが終了します。
この結果、プログラムが印字するAの値は43、Bの値は26となります。 フローチャートの各記号が示す意味と、矢印が示す処理の流れ、そしてひし形の条件分岐を正確に追うことで、このプログラムが最終的に出力する値が明確に見えてきます。