第三種電気主任技術者試験 / 令和5年度第三種電気主任技術者上期試験 機械科目 / 各問題解説 / 問140
certification-simodake-work

令和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 を印字 終了

  1. A: 43, B: 288
  2. A: 43, B: 677
  3. A: 43, B: 26 ✓ 正答
  4. A: 720, B: 26
  5. 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の変数の値がどのように変化していくかを順に追っていきます。

  1. 初期値の設定 プログラム開始直後、AとBには以下の初期値が設定されます。

    • A = 10
    • B = 2
  2. 1回目のループ処理

    • まず、AにBを加算します。 A←A+B=10+2=12A \leftarrow A + B = 10 + 2 = 12
    • 次に、条件「A≤40A \leq 40」を判定します。12≤4012 \leq 40は真(YES)です。
    • 真であるため、Bの値を更新します。 B←B2+1=22+1=4+1=5B \leftarrow B^2 + 1 = 2^2 + 1 = 4 + 1 = 5
    • ループ開始点へ戻ります。
  3. 2回目のループ処理

    • AにBを加算します。現在のAは12、Bは5です。 A←A+B=12+5=17A \leftarrow A + B = 12 + 5 = 17
    • 次に、条件「A≤40A \leq 40」を判定します。17≤4017 \leq 40は真(YES)です。
    • 真であるため、Bの値を更新します。現在のBは5です。 B←B2+1=52+1=25+1=26B \leftarrow B^2 + 1 = 5^2 + 1 = 25 + 1 = 26
    • ループ開始点へ戻ります。
  4. 3回目のループ処理とプログラムの終了

    • AにBを加算します。現在のAは17、Bは26です。 A←A+B=17+26=43A \leftarrow A + B = 17 + 26 = 43
    • 次に、条件「A≤40A \leq 40」を判定します。43≤4043 \leq 40は偽(NO)です。
    • 偽であるため、ループを抜け、AとBの値を印字します。
    • プログラムが終了します。

この結果、プログラムが印字するAの値は43、Bの値は26となります。 フローチャートの各記号が示す意味と、矢印が示す処理の流れ、そしてひし形の条件分岐を正確に追うことで、このプログラムが最終的に出力する値が明確に見えてきます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう