見出し画像

基本情報技術者試験対策【アルゴリズム第1回】流れ図と基本3構造|フローチャートの読み方を完全解説

「アルゴリズムって難しそう…」と感じていませんか?

安心してください。アルゴリズムは手順を正確に書いたものに過ぎません。料理のレシピや、カーナビの案内と本質的に同じです。

基本情報技術者試験のアルゴリズム問題は、読む力さえ身につければ確実に得点できます。プログラムを書いた経験がなくても大丈夫です。(書いた経験があると尚よし!)

この記事ではアルゴリズムの概念から始まり、試験に必ず出るフローチャート(流れ図)の記号・読み方・基本3構造まで、ゼロから丁寧に解説します。


この記事でわかること

  • アルゴリズムとは何か

  • フローチャート(流れ図)の記号と読み方

  • 順次・選択・反復の基本3構造

  • 変数の値を手で追う「トレース」のやり方

  • 試験で狙われる頻出ポイント5選

  • 練習問題4問(解説付き)


1. アルゴリズムとは何か

アルゴリズムとは、ある問題を解くための手順・手続きを明確に定義したものです。

次の4つの条件を満たす必要があります。

身近な例で理解する

カップ麺を作る手順で考えてみましょう。

① お湯を沸かす
② カップのふたを半分開ける
③ 具材・かやくを入れる
④ お湯を規定量まで注ぐ
⑤ ふたをして3分待つ
⑥ ふたを開けてよくかき混ぜる
⑦ 完成

これがアルゴリズムです。順番・条件・繰り返しの組み合わせで、あらゆる手順が表現できます。

なぜアルゴリズムが重要なのか

100人の名簿から「田中さん」を探す場合を考えます。

方法A:先頭から1人ずつ確認する → 最大100回の確認が必要
方法B:五十音順に並べ、真ん中から比較して絞り込む → 最大7回程度で見つかる

同じ結果でも、方法Bの方が圧倒的に速い。これがアルゴリズムの本質です。


2. フローチャート(流れ図)とは

フローチャート(流れ図)は、アルゴリズムの処理の流れを図で表したものです。試験では「流れ図」と呼ばれることがほとんどです。

フローチャートを使う理由は3つあります。処理の流れが視覚的にわかりやすいこと、プログラミング言語に依存しない共通の表現ができること、複雑な条件分岐やループを整理しやすいことです。


3. フローチャートの基本記号

フローチャートの基本記号

試験で使われる記号は5種類だけです。これを覚えるだけで問題の半分は読めるようになります。

端子(角丸長方形)はプログラムの開始と終了を表します。
必ずフローチャートの最初と最後に置きます。

処理(長方形)は `x ← 5` のような計算・代入・出力などを書きます。
`←` は「右辺の値を左辺に代入する」という意味です。

判断(ひし形)は `x > 0` などの条件式を書きます。
条件が真(Yes)か偽(No)かで矢印が分かれます。

入出力(平行四辺形)はキーボード入力や画面表示を表します。
入力の時の画は像の向き上下反対になります。

流れ線(矢印)は次の処理への接続と順序を示します。


4. 基本3構造


基本3構造

すべてのアルゴリズムはこの3つの組み合わせで表現できます。

順次構造

処理を上から順番に1つずつ実行する構造です。最もシンプルで、すべてのプログラムの基本です。特別な条件も繰り返しもなく、上から下へ一直線に実行されます。

選択構造(分岐)

条件によって異なる処理を実行する構造です。「if文」とも呼ばれます。ひし形(判断)の記号が登場します。

読むコツは3ステップです。

① ひし形の中の条件式を確認する
② Yes(真)とNo(偽)それぞれの矢印の先を追う
③ 両方の処理が終わった後の合流点を探す

反復構造(ループ)

条件が満たされる間、同じ処理を繰り返す構造です。前判定と後判定の2種類があります。

前判定ループは条件が最初から偽であれば1回も処理が実行されません。後判定ループは処理を先に実行してから条件を判断するため、必ず1回は処理が実行されます。


5. トレース:変数の値を手で追う

練習

トレースとは、変数の値を手で実際に追っていく作業です。基本情報のアルゴリズム問題の多くは、このトレースができれば解けます。

トレースの手順

① 変数の初期値を確認する
② 矢印の方向に処理を1つずつ実行する
③ 判断では条件が真か偽かを確認して分岐する
④ ループでは繰り返しのたびに変数の値を更新する
⑤ 終了条件に達したら処理を止める

上の図では `i ← 1` から始まり、`i ≦ 5` の間 `goukei ← goukei + i` を繰り返します。結果として `goukei = 15`(1+2+3+4+5)が求まります。


6. 試験で狙われる頻出ポイント5選

ポイント① ループの回数を正確に数える

`≦`(以下)と `<`(未満)の違いに注意してください。
1回のずれが答えを変えます。

i ← 1 / 条件:i ≦ 5 の間繰り返す → 5回(i = 1,2,3,4,5)
i ← 1 / 条件:i < 5 の間繰り返す → 4回(i = 1,2,3,4)

ポイント② 変数の代入順序に注意する

代入は右辺を先に計算してから左辺に入れます。

a ← 5
b ← a + 3 → b = 8
a ← b × 2 → a = 16

ポイント③ 前判定と後判定を区別する

前判定:i ← 6 / 条件:i ≦ 5 → 最初から偽なので0回実行
後判定:i ← 6 → 最低1回は必ず実行される

ポイント④ Yes/Noの矢印方向を確認する

試験の流れ図はYesが右・Noが下のこともあればその逆もあります。必ず矢印の先を目で追う習慣をつけましょう。

ポイント⑤ ループ変数の最終値

ループ終了後の変数は終了条件を超えた値になります。

i ← 1 / 条件:i ≦ 5 の間繰り返す / i ← i + 1
ループ終了後のi → 6(5を超えたのでループを抜けた)


まとめ

アルゴリズムの基礎はここで終わりです。次回は試験本番で最も多く出題される疑似言語の読み方を徹底解説します。


関連記事・参考リンク



いいなと思ったら応援しよう!

kai@内勤がITやってるやつ よろしければ応援お願いします! いただいたチップはさらなる研鑽費に使わせていただきます!