教科書一覧へ

制御構造と表現手法

標準約 18 分アルゴリズムとプログラミング

概要

本ユニットでは、あらゆるアルゴリズムの骨格となる『順次・選択・繰返し』の3基本制御構造と、それを書き表すための表現手法(流れ図・フローチャート・擬似言語)を学びます。制御構造は構造化定理の土台であり、擬似言語は IPA 試験で多用される表記法のため、両者の理解はプログラミング分野の出発点として非常に重要です。

用語6

順次

処理を記述した順番どおりに、上から1つずつ実行していく制御構造。

順次は、命令を書いた順番に上から下へ1つずつ実行していく最も基本的な制御構造です。分岐も繰返しもなく、処理が一直線に流れます。 選択や繰返しといった他の制御構造も、その内部では結局この順次実行を含んでいるため、すべての土台となる概念です。試験では『順次・選択・繰返し』の3つが構造化定理(構造化プログラミング)の基本構造であることが問われます。順次は『分岐しない一本道の処理』と覚えておきましょう。

たとえ料理のレシピを手順1・2・3と上から順にこなしていくようなもの。途中で枝分かれせず、書かれた順番どおりに作業を1つずつ進めていきます。

記憶フック順次といえば書いた順に上から1つずつ実行

選択

条件の真偽によって実行する処理を分岐させる制御構造。

選択は、ある条件が成り立つか(真)・成り立たないか(偽)によって、実行する処理を切り替える制御構造です。分岐構造とも呼ばれ、『もし〜ならばAを、そうでなければBを行う』という形で表します。 条件によって処理を選ぶこの仕組みは、繰返しの継続判定の基礎にもなります。試験では、順次(分岐しない)との違いや、条件分岐を表す流れ図の『ひし形(判断記号)』が問われます。『条件で道が枝分かれする』のが選択です。

たとえ傘を持つか決めるようなもの。『雨が降りそうなら傘を持つ、そうでなければ持たない』と、条件しだいで取る行動を選び分けます。

記憶フック選択といえば条件の真偽で処理を分岐

繰返し

条件が満たされる間、同じ処理を何度も実行する制御構造。

繰返しは、条件が成り立っている間、同じ処理を何度も繰り返し実行する制御構造です。反復構造・ループとも呼ばれ、内部に『繰返しを続けるかどうか』を判定する条件(選択の考え方)を含みます。 判定を処理の前に行う『前判定』と、処理の後に行う『後判定』があり、前判定では条件しだいで一度も実行されない場合がある点が問われます。試験では、3基本構造の中で最も出題が多く、流れ図でループを表す記号や擬似言語の繰返し文の読み取りが頻出です。『条件を満たす間ぐるぐる回る』のが繰返しです。

たとえ『お湯が沸くまで待つ』を繰り返すようなもの。条件(沸いた)を満たすまで『確認する』動作を何度も繰り返し、満たした瞬間にループを抜けます。

記憶フック繰返しといえば条件を満たす間ぐるぐる反復

処理の開始

継続条件は真か

処理を実行

繰返しを終了

流れ図

処理の流れを定められた図記号と矢印で表す図。フローチャート。

流れ図は、処理の手順や流れを、決められた図記号と矢印を使って視覚的に表した図です。順次・選択・繰返しの3基本制御構造を、誰が見ても分かる形で図示できます。 主な記号には、処理を表す長方形、条件分岐を表すひし形(判断)、開始・終了を表す角丸の端子などがあり、矢印で流れの向きを示します。試験では、各図記号が何を表すか、また流れ図を順にたどって処理結果を求める読み取り問題が頻出です。『処理の流れを図記号で見える化したもの』が流れ図です。

たとえ旅行の道順を地図に矢印で書き込むようなもの。分かれ道(分岐)や同じ道を回る区間(繰返し)を、決まった記号と矢印で誰にでも追えるように描き表します。

記憶フック流れ図といえば処理の流れを図記号と矢印で表す

端子(開始・終了)

処理を表す長方形

判断を表すひし形

フローチャート

流れ図の英語名で、同じく処理の流れを図記号で表したもの。

フローチャートは流れ図の英語名(flowchart)で、両者は基本的に同じものを指します。処理の流れを、定められた図記号と矢印を使って視覚的に表現します。 日本語の試験問題では『流れ図』、英語由来の場面では『フローチャート』と呼ばれることが多いですが、表す内容も使う記号も同じです。試験では、流れ図とフローチャートが同義であることを押さえ、用語の言い換えに惑わされないことが大切です。『フローチャート=流れ図(英語名)』と対応づけて覚えましょう。

たとえ『すし』と『SUSHI』が同じ料理を指すようなもの。呼び名が日本語か英語かの違いだけで、表している中身(処理の流れを図記号で示すこと)はまったく同じです。

記憶フックフローチャートといえば流れ図の英語名で同じもの

擬似言語

実在の言語に依らず処理手順を文章主体で記述する表記法。

擬似言語(疑似言語)は、特定のプログラミング言語に依存せず、処理の手順を文章に近い形で記述するための表記法です。IPA の試験で出題に用いられる、コードに近い表現として広く使われます。 変数への代入、選択(条件分岐)、繰返しなどを決められた書き方で表し、図的な流れ図に対して『文字で書く』表現手法という位置づけです。試験では、擬似言語で書かれた処理を1行ずつ追って、変数の値や最終結果を求める読み取り問題が頻出です。『言語に依らず手順を文章で書く』のが擬似言語です。

たとえ実際の建築に入る前に描く『設計図の下書き』のようなもの。特定の工法(言語)に縛られず、やることの段取りを言葉で書き出して、処理の中身を正確に伝えます。

記憶フック擬似言語といえば言語に依らず手順を文章で記述

まとめ

要点

  • 順次・選択・繰返しは構造化定理の3基本制御構造で、あらゆるアルゴリズムの骨格となる。
  • 順次は一本道、選択は条件で分岐、繰返しは条件を満たす間ループする処理である。
  • 繰返しには前判定・後判定があり、前判定では一度も実行されないことがある。
  • 流れ図(フローチャート)は処理の流れを図記号と矢印で視覚化したもので、両者は同義である。
  • 擬似言語は特定の言語に依らず手順を文章主体で書く表記法で、IPA 試験で多用される。

記憶フック一覧

  • 順次: 順次といえば書いた順に上から1つずつ実行
  • 選択: 選択といえば条件の真偽で処理を分岐
  • 繰返し: 繰返しといえば条件を満たす間ぐるぐる反復
  • 流れ図: 流れ図といえば処理の流れを図記号と矢印で表す
  • フローチャート: フローチャートといえば流れ図の英語名で同じもの
  • 擬似言語: 擬似言語といえば言語に依らず手順を文章で記述

関連の過去問演習は今後のアップデートで追加予定です。