テクノロジ系アルゴリズムとプログラミング出題頻度 ★★

流れ図(フローチャート)

処理の手順を記号と矢印で表す流れ図(フローチャート)を、カップ麺の作り方と1から5までの合計の例で図解。端子・処理・判断・ループ端などの記号の意味と、順次・選択・繰返しの3つの基本構造がわかり、流れ図をたどって答えを求める問題が解けるようになります。

この単元の用語:流れ図 / フローチャート / 端子 / 処理 / 判断 / ループ端 / 順次 / 選択 / 繰返し / トレース

プログラムって、いきなり書き始めるんですか?

いや、まずは手順を整理するんだ。そのときに使う図が流れ図(フローチャート)。決まった記号を矢印でつなぐだけだから、料理のレシピを図にする感覚で読めるよ。

流れ図は「手順の地図」

流れ図(フローチャート) は、処理の手順を 記号と線(矢印) で表した図です。上から下へ、左から右へ流れるのが基本です。文章で書くより、どこで分かれて、どこをくり返すか がひと目でわかります。

カップ麺の作り方 を手順にすると

  1. ふたを半分あける(処理)
  2. お湯がわいているか?(判断)→ わいていなければ待つ(繰返し)
  3. お湯を線まで注ぐ(処理)
  4. 3分待つ(処理)

主な記号

流れ図の記号は JIS(日本産業規格)で決められています。試験に出るのは次の記号です。

開始・終了 端子 はじめと終わり x ← x + 1 処理 計算・代入など x > 0 判断 条件で道が分かれる x を入力 データ 入力・出力 ループ1 ループ端 繰返しの始まりと終わり 並べ替え 定義済み処理 別の場所で定義した処理
記号の形で役割が決まっている。中に具体的な内容を書く
記号名前意味
角の丸い長方形端子流れ図の開始と終了
長方形処理計算や代入などの処理
ひし形判断条件によって進む道を分ける
平行四辺形データデータの入力・出力
角を切った長方形(上下ペア)ループ端繰返しの始まり(ループ始端)と終わり(ループ終端)
両側に縦線のある長方形定義済み処理別の場所で定義された処理を呼び出す

「←」は代入の記号です。x ← x + 1 は「x に1を足した値を、新しい x にする」という意味。算数の「=」とは違うので、「x = x + 1 なんてありえない」と悩まなくて大丈夫です。

3つの基本構造

どんなに複雑な手順も、次の3つの組み合わせで表せます(構造化定理)。

構造意味流れ図での形カップ麺の例
順次上から順に1つずつ実行する処理を縦に並べるふたをあける → お湯を注ぐ
選択条件によって実行する処理を選ぶ判断(ひし形)で道を分ける辛口なら別添の粉を入れる
繰返し条件を満たす間、同じ処理をくり返す判断から上に戻る線、またはループ端お湯がわくまで待つ

流れ図をたどってみよう(トレース)

1から5までの合計 を求める流れ図を読んでみましょう。

開始 合計 ← 0、i ← 1 i ≦ 5 ? Yes 合計 ← 合計 + i i ← i + 1 戻る No 合計を出力 終了
判断で Yes の間は下の処理を行って判断に戻る(繰返し)。No になったら右へ抜ける

変数の値の変化を表にまとめながらたどる作業を トレース といいます。

回数判断時の ii ≦ 5 ?合計 ← 合計 + ii ← i + 1
1回目1Yes0 + 1 = 12
2回目2Yes1 + 2 = 33
3回目3Yes3 + 3 = 64
4回目4Yes6 + 4 = 105
5回目5Yes10 + 5 = 156
―6No → 抜ける

出力されるのは 15 です。

i が 6 になったとき、もう一回足しちゃいそうです…。

そこがよくあるミスだね。判断のひし形を通るたびに条件を確かめるのがコツ。表に「判断時の値」の列を作ると、抜けるタイミングを間違えにくくなるよ。

「以下(≦)」と「未満(<)」で繰返しの回数が1回変わる。条件が i < 5 なら、i = 5 のときは No になり、合計は 1 + 2 + 3 + 4 = 10 になる。

試験に出るポイント

  • 記号:端子(開始・終了)、処理(長方形)、判断(ひし形)、データ(平行四辺形)、ループ端(角を切った長方形)
  • 3つの基本構造は 順次・選択・繰返し
  • ← は代入。右辺を計算してから左の変数に入れる
  • トレースは 変数の値を表に書きながら 1手ずつ進める
  • 繰返しの条件は「以下」「未満」を読み分け、終わるときの値に注意する

確認クイズ

選択肢をタップすると、すぐに正解と解説が表示されます。

Q1流れ図で、ひし形の記号が表すものはどれか。

Q2ある流れ図は次の手順を表している。終了したときのxの値はどれか。
① xに1を入れる
② xが50未満である間、xに3を掛ける処理を繰り返す

Q3iに1を入れ、iが10以下である間「iに3を足す」処理を繰り返す流れ図がある。「iに3を足す」処理は何回実行されるか。

Q4どんな手順も組み合わせで表せるとされる、プログラムの3つの基本構造の組合せはどれか。