Kindle で読む

機械電力システムに関する情報伝送及び処理 / フローチャートとプログラム8分で読めます

フローチャートの読み方|記号の意味とトレース表で解く電験三種の流れ図

電験三種のフローチャートの読み方を、記号の意味、変数と代入、トレース表の書き方から順に解説します。合計・最大値・2進変換・並べ替えの流れ図を図解し、例題4問で終わる条件の1回ずれまで確かめます。

シェア

ホワイトボードに描かれた空欄の流れ図。上の端子から、青いひし形の判断で左右に分かれ、それぞれ箱とひし形を通って、下の端子で合流する。受け皿に黒と青のペンが1本ずつ置かれている
この記事の目次
  1. フローチャートとは
  2. フローチャートの記号と3つの基本形
  3. 変数・代入とトレース表の書き方
  4. 合計・最大値・2進変換・並べ替えの流れ図
  5. 合計を求める流れ図
  6. 最大値を探す流れ図
  7. 10進数を2進数に直す流れ図
  8. 並べ替え(バブルソート)の流れ
  9. フローチャートの解き方のこつと例題
  10. よくある質問
  11. プログラムが書けなくても、フローチャートの問題は解けますか。
  12. X ← X + 1 は、方程式として成り立たないのではありませんか。
  13. ループが何回まわるかは、どう数えますか。
  14. 記号の形は、すべて覚える必要がありますか。
  15. まとめ
図解でわかる 電験三種 機械 1 直流機 の表紙機械を図解で読む図解でわかる 電験三種 機械 1
直流機
Kindle Unlimited 対象Kindle で読む

フローチャート(流れ図)は、処理の順番を記号と矢印で描いた図です。流れ図の問題は、プログラムを書く力がなくても、変数の値を1ステップずつ書き出して追えば解けます。この記事では、記号の意味、変数と代入、トレース表の書き方を押さえ、合計・最大値・2進変換・並べ替えの流れ図と、例題4問を順にたどります。

フローチャートの全体像
  • フローチャートとは
    • 処理の順番を、記号と矢印で描いた図
  • 記号と3つの基本形
    • 順次・分岐・繰り返し
  • 変数・代入とトレース表
    • X ← X + 1 は方程式ではない
  • 合計・最大値・2進変換・並べ替え
    • 4つの代表的な流れ図
  • 解き方のこつと例題
    • 終わる条件の1回ずれに注意

フローチャートとは

フローチャートは、処理の順番を、決まった形の記号と矢印で表した図です。日本語では流れ図といいます。「合計を求めて、5 を超えたら終わる」と文章で書くより、図にしたほうが、どこで道が分かれ、どこへ戻るのかが一目で分かります(図1)。

ホワイトボードに描かれた空欄の流れ図。上の端子から、青いひし形の判断で左右に分かれ、それぞれ箱とひし形を通って、下の端子で合流する
  1. 始まり 丸みのある端子から始まる
  2. 判断 ひし形で道が2つに分かれる
  3. 処理 四角い箱に1つの処理を書く
  4. 終わり 道が合流して端子で終わる
図1 流れ図のイメージ。記号の形と矢印で、処理の順番を表す(写真はイメージ)

電験三種の機械科目の範囲には、「電力システムに関する情報伝送及び処理」があり、2進数や論理回路のほかに、フローチャートとプログラムも含まれます。流れ図を読んで変数の値を求める形や、空欄に入る式を選ぶ形の問題があります。

使う道具は、記号の意味、変数と代入、トレース表の3つだけです。プログラミング言語の知識は要りません。流れ図は、言語ごとの書き方の違いを取り除いて、手順だけを表したものだからです(図2)。

無地の黒いキーが並んだノートパソコン。画面は暗く、何も表示されていない
図2 プログラムの書き方は言語ごとに違うが、流れ図は手順だけを表す(写真はイメージ)

フローチャートの記号と3つの基本形

流れ図の記号の形は、JIS X 0121 に決められています。この記事で使う6つを、図3にまとめます。

端子 始まりと終わりを表す 処理 計算や代入を1つ行う 判断 条件で道が2つに分かれる 入出力 データの入力と結果の出力 ループ端 くり返しの始端と終端(2つで1組) 定義済み処理 別に決めた処理のまとまり 開始 X ← 1 X > 0 入力 X 始端 終端 並べ替え
図3 流れ図の記号(JIS X 0121 の基本記号をもとにした図)
  • 端子は、流れの始まりと終わりに置きます。
  • 処理は、計算や代入を1つ行います。
  • 判断は、条件が成り立つか(はい)、成り立たないか(いいえ)で、道が2つに分かれます。
  • 入出力は、データの入力と、結果の出力です。
  • ループ端は、くり返す範囲を始端と終端で囲みます。2つで1組です。
  • 定義済み処理は、別に決めた処理のまとまりを、1つの箱として呼び出します。

くり返しの書き方には、判断のひし形で前に戻る形(図7)と、ループ端で囲む形(図9)があります。どちらで描かれていても、読み方は同じです。

どんな流れ図も、順次・分岐・繰り返しの3つの形の組み合わせでできています(図4)。

順次 上から順に 分岐 条件で道を選ぶ 繰り返し 条件のあいだ戻る 処理A 処理B 処理C 条件 処理A 処理B はい いいえ 条件 処理 はい いいえ 次へ 次へ 次へ
図4 3つの基本形。順次は上から順に、分岐は条件で道を選び、繰り返しは条件のあいだ戻る
形動き使う記号
順次上から順に実行処理
分岐条件で道を選ぶ判断
繰り返し条件のあいだ戻る判断・ループ端

順次は、手順を1つずつ書いた付箋を、矢印の向きに並べて読むのと同じです(図5)。

木の机の上に、無地の黄色い付箋が横一列に5枚並び、付箋の間に鉛筆で描かれた矢印が4本ある
  1. 付箋 1枚に1つの処理を書く
  2. 矢印 次に進む向きを示す
  3. 5枚目 最後の付箋で処理が終わる
図5 手順を1枚ずつ書いて矢印でつなぐと、順次の流れになる(写真はイメージ)

分岐の条件が「A かつ B」「A または B」のように複数あるときは、論理回路とカルノー図で扱う AND・OR の考え方で、条件が成り立つかを確かめます。

変数・代入とトレース表の書き方

変数は、値を入れておく名前つきの箱です。流れ図では、XX、SS、ii のような1文字の名前をよく使います。箱に値を入れる操作を代入といい、「←」で書きます。右辺を先に計算し、その結果を左辺の箱に入れます。

X←X+1X \leftarrow X + 1

この式は、方程式ではありません。「XX の中身に 1 を足して、結果を XX に入れ直す」という動作です。

実行前処理実行後
X = 3X ← X + 14
S = 10S ← S + 212
i = 5i ← i - 14

変数の値を処理ごとに書き出した表がトレース表です。変数1つにつき1列、処理1つにつき1行で、値が変わったところだけを書き換えます。たとえば、次の3つの処理を順に実行します。

  1. X←2X \leftarrow 2
  2. Y←X+3Y \leftarrow X + 3
  3. X←Y×2X \leftarrow Y \times 2
処理XY
12—
225
3105

3行目で XX は 10 に変わりますが、YY は 5 のままです。代入した変数以外は変わらないことを、表で確かめられます(図6)。

方眼のノートに、鉛筆で表の枠が描かれている。右手が鉛筆を持ち、表はまだ空欄のまま
  1. 見出し行 変数の名前を書く
  2. 列 変数1つに1列を使う
  3. 鉛筆 1行ずつ値を書き込む
図6 トレース表は、ノートの余白に自分で枠を作って書く(写真はイメージ)

合計・最大値・2進変換・並べ替えの流れ図

流れ図で扱う処理は、いくつかの型にまとめられます。この記事では、次の4つを取り上げます。

型目的最初の準備
合計足し込むS ← 0
最大値大きさを比べるM ← A(1)
2進変換2で割るN を入力
並べ替え隣と比べる配列を用意

合計を求める流れ図

1 から 5 までの整数の和を求める流れ図が、図7です。SS は合計を入れる箱、ii は足す数を表します。

開始 S ← 0 i ← 1 i ≦ 5 S ← S + i i ← i + 1 出力 S 終了 はい いいえ
図7 1から5までの和を求める流れ図

トレース表にすると、次のようになります。

ii ≦ 5S
1はい1
2はい3
3はい6
4はい10
5はい15
6いいえ15

ii が 6 になると判断が「いいえ」になり、S=15S = 15 を出力して終わります。最初に S←0S \leftarrow 0 を置くのは、足し込む前の値が残らないようにするためです。この初期化を忘れると、前の値に足してしまいます。

同じ動作を条件が成り立つあいだ何度もくり返すのが、繰り返しの働きです(図8)。

白いロボットアーム2台が、コンベアで流れてくる白い箱を扱っている工場の写真。右端に制御盤が見える
  1. ロボットアーム 同じ動作をくり返す
  2. コンベア 次の箱を運んでくる
  3. 制御盤 動作の順序を決める
図8 同じ作業を箱ごとにくり返す。流れ図の繰り返しに近い(写真はイメージ)

最大値を探す流れ図

配列 A(1)A(1)〜A(5)A(5) から最大値を探す流れ図が、図9です。A(i)A(i) は、配列の ii 番目の値を表します。最初に A(1)A(1) を MM に入れておき、残りの値と順に比べて、大きいものが見つかったら MM を置き換えます。

開始 M ← A(1) i = 2〜5 A(i) > M M ← A(i) ここまで 出力 M 終了 はい いいえ A(1)〜A(5) = 7, 3, 9, 4, 6 M:いままでの最大値
図9 配列 A の最大値を求める流れ図

A(1)A(1)〜A(5)A(5) が 7、3、9、4、6 のとき、MM は次のように変わります。

iA(i)M
237
399
449
569

出力は M=9M = 9 です。最小値を探すときは、比べる向きを逆にするだけで、形は同じです。

10進数を2進数に直す流れ図

10進数を2進数に直すには、2で割った余りを、下の桁から順に取り出します。図10は、NN が 0 より大きいあいだ、余りを出力し、NN を 2 で割った商に置き換えます。

開始 入力 N N > 0 R ← N mod 2 出力 R N ← N ÷ 2 終了 はい いいえ N mod 2:2で割った余り 下の桁から出てくる 小数点以下は切り捨て
図10 10進数を2進数に直す流れ図

N=13N = 13 を入力すると、次のようになります。

N余り R次の N
1316
603
311
110

余りは 1、0、1、1 の順に出力されます。最初に出た余りが最下位の桁なので、2進数は逆順に並べた 1101 です。8+4+1=138 + 4 + 1 = 13 で、確かめられます。2進数と論理回路は、論理回路とカルノー図の記事とつながっています。

並べ替え(バブルソート)の流れ

数を小さい順に並べる代表的な方法が、バブルソートです。隣り合う2つを左から順に比べ、左が大きければ入れかえます。図11は、5、3、8、1、4 に対して、1回目の比較を行った様子です。

はじめ 5 3 8 1 4 比較1 3 5 8 1 4 5 と 3:入れかえ 比較2 3 5 8 1 4 5 と 8:そのまま 比較3 3 5 1 8 4 8 と 1:入れかえ 比較4 3 5 1 4 8 8 と 4:入れかえ 1回目が終わると、最大の 8 が右端に来る
図11 バブルソートの1回目。比べた2つを黄色で示す

1回目は、比較4回のうち交換が3回起こり、並びは 3、5、1、4、8 になります。最大の 8 が右端に来ました。2回目以降も同じ比べ方をくり返すと、右から順に大きい数が決まっていきます。

入れかえには、作業用の変数 TT を使い、T←A(j)T \leftarrow A(j)、A(j)←A(j+1)A(j) \leftarrow A(j+1)、A(j+1)←TA(j+1) \leftarrow T の3手で行います。A(j)A(j) を A(j+1)A(j+1) で上書きすると元の値が消えるので、先に TT へ退避させます。

フローチャートの解き方のこつと例題

流れ図の問題は、次の手順で解きます。

まず、図7とは別の流れ図で、トレース表を書く練習をします。図12は、1 から 6 の整数のうち、奇数だけを足す流れ図です。

開始 S ← 0 i ← 1 i ≦ 6 i は奇数 S ← S + i i ← i + 1 出力 S 終了 はい はい いいえ いいえ
図12 1から6までの奇数だけを足す流れ図
解答と解説を見る

ii ごとにトレース表を書きます。

i奇数かS
1はい1
2いいえ1
3はい4
4いいえ4
5はい9
6いいえ9

i=7i = 7 で i≦6i \leqq 6 が「いいえ」になり、終わります。

S=1+3+5=9S = 1 + 3 + 5 = 9

答え:99

次は、空欄を埋める形の問題です。図13は、配列 A(1)A(1)〜A(4)A(4) の最小値を求める流れ図で、判断の条件が「ア」、置き換える処理が「イ」になっています。

開始 M ← A(1) i = 2〜4 ア イ ここまで 出力 M 終了 はい いいえ A(1)〜A(4) = 6, 4, 9, 2 M:いままでの最小値
図13 配列 A の最小値を求める流れ図(ア・イは空欄)
解答と解説を見る

最小値を探すので、いまの MM より小さい値が見つかったときに置き換えます。ア は (b) A(i)<MA(i) < M です。

置き換えるのは配列の値なので、イ は (a) M←A(i)M \leftarrow A(i) です。(b) は、番号 ii を入れてしまうので誤りです。

ア を (b)、イ を (a) として、MM を追います。

iA(i)M
244
394
422

答え:ア (b)、イ (a)、出力 M=2M = 2

解答と解説を見る

NN を 2 で割りながら、余り RR を追います。

N余り R次の N
22011
1115
512
201
110

出力の順は 0、1、1、0、1 です。最初の余りが最下位の桁なので、逆順に並べた 10110 が2進数です。16+4+2=2216 + 4 + 2 = 22 で、確かめられます。

答え:0、1、1、0、1 の順。2進数は 1011010110

解答と解説を見る

i<5i < 5 なので、i=5i = 5 のときは判断が「いいえ」になり、足されません。

ii < 5S
1はい1
2はい3
3はい6
4はい10
5いいえ10
S=1+2+3+4=10S = 1 + 2 + 3 + 4 = 10

答え:1010(条件が i≦5i \leqq 5 のときの 15 より、5 だけ小さくなる)

よくある質問

プログラムが書けなくても、フローチャートの問題は解けますか。

解けます。流れ図は、プログラミング言語を使わずに手順だけを表した図で、問題で求められるのは、変数の値を順に追うことです。トレース表を書いて、矢印のとおりに1行ずつ進めれば、答えが出ます。

X ← X + 1 は、方程式として成り立たないのではありませんか。

方程式ではなく、代入という動作です。右辺を先に計算し、その結果を左辺の変数に入れ直します。XX が 3 なら、実行後は 4 になります。等号の式として読むと、解けなくなるので、「←」は「入れる」と読み替えます。

ループが何回まわるかは、どう数えますか。

判断の条件と、ii の初期値・増え方から数えます。ii を 1 から始めて 1 ずつ増やし、i≦5i \leqq 5 のあいだ回るなら 5 回、i<5i < 5 なら 4 回です。迷うときは、トレース表の行を数えるのが確実です。

記号の形は、すべて覚える必要がありますか。

問題の図には、記号とその中の文字が描かれているので、形を暗記して描く必要はありません。ただし、ひし形が判断、角を切った箱がループ端、丸みのある箱が端子というように、読むための区別はつけておくと迷いません。

思い出してみよう

答えを見る前に、まず自分で思い出してからタップしてください。

流れ図で、ひし形は何を表しますか?

判断です。条件が成り立つか(はい)、成り立たないか(いいえ)で、道が2つに分かれます。

X←X+1X \leftarrow X + 1 は、何をする処理ですか?

XX の中身に 1 を足して、結果を XX に入れ直します。

トレース表は、何のために書きますか?

変数の値を、処理ごとに1行ずつ書き出して追うためです。

合計を求める流れ図で、最初に S←0S \leftarrow 0 を置くのはなぜですか?

足し込む前の値が残らないようにするためです。

最大値を探す流れ図で、MM を置き換えるのはどんなときですか?

A(i)>MA(i) > M のとき、M←A(i)M \leftarrow A(i) とします。

10進数を2進数に直す流れ図で、出力された余りは、どの順に読みますか?

出てきた順の逆です。1313 なら、余りの 1、0、1、1 を逆にして 11011101 です。

まとめ

  • 流れ図は、順次・分岐・繰り返しの3つの形でできている
  • 端子は始まりと終わり、処理は長方形、判断はひし形、入出力は平行四辺形で表す
  • 代入 X←X+1X \leftarrow X + 1 は、右辺を計算して左辺に入れる動作
  • 変数の値を1行ずつ書き出すトレース表で、プログラムを書けなくても解ける
  • くり返しの終わる条件は、≦\leqq か << かで回数が1回違う

次は、流れ図の判断条件や2進数の土台になる論理回路とカルノー図で、AND・OR・NOT の組み合わせを整理しましょう。

図解でわかる 電験三種 機械 1 直流機 の表紙電験三種 機械を図解で通して読む図解でわかる 電験三種 機械 / 第1巻直流機磁界と電磁力から発電機・電動機の特性、速度制御・効率まで機械の単元を、図と式で1冊ずつ通して読む Kindle 本のシリーズです。例題と練習問題まで入っています。Kindle Unlimited の対象なので、会員は追加料金なしで読めます。Amazon で見る

読んだら、すぐ解いて覚える

「フローチャートとプログラム」の問題を
アプリで解いてみよう

読んだ直後に問題で思い出すと、記憶に残りやすくなります。電験三種の問題集アプリ「デンケンラボ」なら、機械の問題を図解つきの解説で確かめられます。

アプリでできることを見る
デンケンラボの問題画面
動画でも見て覚えるYouTube のデンケンラボで、電験三種の解説動画を配信しています

この記事をシェアする

デンケンラボ編集部

電験三種の合格プランをつくる問題集アプリ「デンケンラボ」の編集部です。試験センターの出題範囲に沿って、計算の考え方と覚えどころを図と式で解説しています。

編集方針アプリについて見る