情報46【電験3種 機械】フローチャートは表を書いて追うだけ!A=51・B=23が印字される 令和7年度下期 A問題14 完全解説

電験3種 機械科目 情報 令和7年度下期 A問題14 フローチャートを表で追う!印字されるAとBは?

今回は令和7年度下期 機械科目 A問題14を解説します。フローチャートに従ってプログラムを実行したとき、印字されるAとBの値を答える問題です。

この種の問題は考えるより表を書いたほうが速くて確実です。A と B の欄を作り、1周ごとに上から順に書き足すだけ。ループを抜けた瞬間に B が更新されないという一点さえ外さなければ、確実に得点できる1問です。

出題のポイント

目次

令和7年度下期 機械科目 A問題14:問題文と選択肢

まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 情報 令和7年度下期 A問題14 問題文
令和7年度下期 機械科目 A問題14 問題文

出典:一般財団法人 電気技術者試験センター「令和7年度下期 第三種電気主任技術者試験」機械科目 A問題14

電験3種 機械科目 【情報】 令和7年度下期 A問題14

 次のフローチャートに従って作成したプログラムを実行したとき,印字されるA,Bの値として,正しい組合せを次の(1)〜(5)のうちから一つ選べ.

次のフローチャートに従って作成したプログラムを実行したとき、印字されるA、Bの値として、正しい組合せを次の(1)〜(5)のうちから一つ選べ。

AB
(1)4326
(2)5147
(3)5123
(4)9847
(5)9895
図 プログラムのフローチャート
図 プログラムのフローチャート

ポイント解説:AとBの表を作り、1周ずつ書き足す

フローチャートの問題で一番やってはいけないのは頭の中だけで追うことです。紙に A と B の欄を作り、1周ごとに新しい行を書き足す——これだけで正答率がまったく変わります。

まず処理の順番を確認します。①A ← 10、B ← 2 で初期化 → ②A ← A+B → ③A ≦ 40 か判定 → YES なら B ← 2B+1 して②へ戻る/NO なら A と B を印字して終了

ここで決定的に重要なのが判定の位置です。判定は「A を更新した直後、B を更新する前」にあります。つまりループを抜けるとき、B は最後に更新された値のまま——抜けぎわに B は増えません。ここが本問の唯一の仕掛けです。

実際に追います。初期値 A=10、B=21周目:A=10+2=12、12≦40 なので B=2×2+1=52周目:A=12+5=17、17≦40 なので B=2×5+1=113周目:A=17+11=28、28≦40 なので B=2×11+1=23

4周目:A=28+23=51。ここで 51 ≦ 40 は成り立たない(NO) ので、B を更新せずにそのまま印字へ。したがって印字されるのは A=51、B=23——答えは(3)です。

問題の解説

STEP1 初期値を書く

A = 10、B = 2

STEP2 1周目〜3周目を追う

1周目:A = 10+2 = 12 → 12≦40(YES)→ B = 2×2+1 = 5

2周目:A = 12+5 = 17 → 17≦40(YES)→ B = 2×5+1 = 11

3周目:A = 17+11 = 28 → 28≦40(YES)→ B = 2×11+1 = 23

STEP3 4周目でループを抜ける

4周目:A = 28+23 = 51

51 ≦ 40 は不成立(NO)B ← 2B+1 を通らずに印字へ

STEP4 印字される値を確定する

A = 51、B = 23(3)

B は3周目に更新された23のまま——ここが唯一にして最大の分かれ目です。

STEP5 表で見直す

A:10 → 12 → 17 → 28 → 51(差が 2, 5, 11, 23 と B の値になっている)。

B:2 → 5 → 11 → 23(B ← 2B+1 なので毎回2倍強に増える)。

A の更新回数は4回、B の更新回数は3回——1回ずれるのが正しい姿です。

答え:(3)

💡 覚え方
フローチャートは変数ごとに欄を作った表で追うのが最短ルート。本問の急所は判定が A の更新直後・B の更新直前にあること——ループを抜けるとき B は更新されないので、A は4回、B は3回だけ更新されるA:10→12→17→28→51、B:2→5→11→23B ← 2B+1 は「2倍して1足す」で、2, 5, 11, 23, 47… とほぼ倍々に増えるため、ループはすぐ終わります。

⚠️ よくある間違い
①ループを抜けるときにも B を更新してしまうのが圧倒的に多い誤りで、(2) A=51, B=47 がそれです。B = 2×23+1 = 47 と1回余分に計算した値。判定で NO に進んだら、その先にあるのは印字だけ——B ← 2B+1 の箱は YES 側にしかありません。フローチャートは線を指でなぞって、通る箱だけ実行するのが鉄則です。
②1周多く回してしまう(4) A=98, B=47 は、A=51 のあとさらに A = 51+47 = 98 と進めた値です。判定は「A ≦ 40」——51 の時点で条件を満たさないので、そこで終わりです。(5) A=98, B=95 は、さらに B も余分に更新(2×47+1=95)した値で、①と②の両方を犯した形になります。
③A の加算と B の更新の順序を取り違える:もし先に B を更新してから A に足すと、A は 15, 26, 49 …と別の並びになり、選択肢の値と合いません。フローチャートの上から順に——A ← A+B が先です。
④(1) A=43, B=26 は、正しく追ってもどの段階にも現れない値です。A の並び(12, 17, 28, 51)にも B の並び(2, 5, 11, 23, 47)にも43や26は無いので、表さえ書いていれば消去できます。
なお「≦」と「<」の区別にも注意を。本問は A ≦ 40 なので、もし A がちょうど40になったらYES 側(ループ継続)です。今回は40ちょうどが現れないので結果は変わりませんが、等号の有無で答えが変わる問題もあります。

判定の位置でループの回数が変わる

本問の急所は「判定がどこにあるか」——流れ図の型として整理しておきましょう

判定の位置特徴
前判定(while型)ループの入口★1回も実行されないことがある
後判定(do-while型)ループの出口★必ず1回は実行される

本問は「A を更新→判定→B を更新」という並び——判定がA とB の更新の間に挟まっていますだからA は4回、B は3回だけ更新されるのです。

この1回のずれが答えを分けます——B を4回更新すると47まさに選択肢(2)に用意されています

流れ図は線を指でなぞる

判定でNO へ進んだら、その先にある箱だけを実行する——YES 側の箱は通りません当たり前のようですが、頭の中だけで追うと混同します。

矢印を指でなぞりながら、通った箱に印を付ける——これが最も確実な方法です。A問題1問に使えるのは4〜5分——急がず正確にが結局は速いのです。

B の増え方を見ておく

B ← 2B+1 は「2倍して1 を足す」——2進数で見ると意味がはっきりします

回数B(10進)B(2進)
初期210
1回目5101
2回目111011
3回目★2310111

2倍は左へ1桁シフト、+1 は右端に1 を立てる——だから右側に1 が1つずつ増えていきます桁が1つ増えるので、値はほぼ2倍です。

ほぼ倍々に増えるので、ループはすぐ終わります——「何十回も回るのでは」と身構える必要はありません数回で条件を超えると見当がつきます。

同じくフローチャートを追う問題が令和2年度 B問題18平成29年度 B問題18にもあります(令和2年度平成29年度)。

変数追跡表の書き方

フローチャート問題は、表を作った時点で半分終わりです——書き方を決めておきましょう

A判定 A≦40B
初期102
112YES5
217YES11
328YES★23
4★51NO—(更新されない)

判定の列を真ん中に置くのが要点——A の更新とB の更新の間に判定があることが、表の形からそのまま見えます

4周目のB の欄が空になる——これが答えを決める1マスです。表を作れば、迷いようがありません

A の増え方も確認できる

A は 10 →12 →17 →28 →51——差を取ると 2、5、11、23 です。これはB の値そのもの——A ← A+B なのですから当然ですが、表を作ると自然に見えてきます

こうした規則性に気づけると、計算ミスにも気づきやすくなります——「差がB になっていない」と分かれば、どこかで書き間違えたということ。表は検算の道具でもあるのです。

まとめ

処理の順序①A←10,B←2 ②A←A+B ③A≦40? ④YESならB←2B+1して②へ/NOなら印字
判定の位置Aの更新直後・Bの更新直前 ⇒ 抜けぎわにBは更新されない
Aの推移10 → 12 → 17 → 28 → 51(4回更新)
Bの推移2 → 5 → 11 → 23(3回更新)
ループ脱出A=51 で 51≦40 が不成立 ⇒ Bは23のまま
印字される値A=51、B=23
答え(3)

▼あわせて解きたい関連問題
・炉壁の温度こう配と熱損失(電気加熱23):【機械】令和7年度下期 A問題12
・ブロック線図の合成周波数伝達関数(自動制御26):【機械】令和7年度下期 A問題13

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次