第5回 アルゴリズムとフローチャート

アルゴリズムとは

アルゴリズムとは、直訳すると「算法」という意味です。砕いて言うと、何か問題を解決するときの考え方です。

プログラムを組む際に一番大事なことは、ロジック(処理手順、処理内容など)です。
これがしっかりしているのと、していないのとでは、プログラムの出来に雲泥の差が有ります。

プログラミングといっても、そんなに難しく考える必要はありません。
コンピュータは単なる機械で、『こんなことをしなさい』という部分を丁寧に命令する必要があるだけです。

たとえば、幼児に教えるように。

  1. 『あそこに行きなさい。』
  2. 『そして、それを取りなさい。』
  3. 『取ったら、ここに持ってきなさい。』
  4. 『持ってきたら、こんなふうにしなさい。』
  5. 『それが済んだら、あそこに持っていきなさい。』
  6. 『そして、そこに置きなさい。』
  7. 『よく出来ました、これで終わります。』

と、1から10まで、なにもかも指図しなければならないだけです。

例)信号を渡るときの動作

  1. 横断歩道にさしかかる。
  2. 信号を見る。
  3. 青でなければ、青になるまで待つ。
  4. 青であれば左右を確認する。
  5. 車が近づいていれば待つ。
  6. 車が近づいていなければ、注意して信号を渡る。

 

フローチャートにしてみる

フローチャートはアルゴリズムをわかりやすく図にしたものです。

上記の例をフローチャートにすると、以下のようになります。

 

フローチャートの利点は

  • 図で示されているので、文章だけよりもわかりやすく、プログラムにしやすい
  • バージョンアップなど改良する際に効率よくできる。
  • 1つのプログラムを複数人で作るときに、手分けしやすい。
  • 同じような処理は、再利用できる。

などがあります。

 

フローチャートの記号

記号
呼び方
意味
端子 フローチャートの始まりおよび終わりを表す
処理 計算、代入などの処理を示す
判断 条件によって分岐する

ループの始まり 繰り返しの始まりと終わり
ループの終わり
入力 キーボードからの入力
表示 ディスプレイへの表示
サブルーチン サブルーチン(モジュール)

 

フローチャートを書くときのルール

  • プログラムの最初と最後を明記する。
  • 処理の流れは原則として上から下へ、左から右へ。
    それに逆行する際には、矢印にする
  • 線が交差しないようにする。

 

フローチャートの書き方

フローチャートには基本的に3つの構造を組み合わせて作る。

原則的には、これらの組み合わせでどんなアルゴリズムでも表記できる。

順次構造

 

順次構造とは、その名の通り、処理が上から下へ単純に並んでいる構造を言う。最も単純な構造なので、手直しなども簡単である。

 

分岐構造

 

分岐条件とは、ある条件によって処理が分かれる構造である。条件は「Yes」か「No」で表されるものが多く単純であるが、いくつかの条件を同時に満たしているとか、複数条件のうち一つ以上を満たしているとか、ある値が1だったら○○○、2だったら△△△、3だったら◇◇◇、それ以外だったら×××、というような分岐もある。

ここで重要なことは、処理が分かれても、後に合流することである。

 

反復構造

 

反復構造とは、ある条件を満たしているうちは、処理を実行するという構造である。
この条件をきちんと設定しておかないと、いつまでたっても反復処理から抜け出せず、いわゆる”無限ループ”となる。また、条件をどこで設定するかによって、2種類に分けられる。すなわち、前判定型と、後判定型である
。ここで、「前」とか「後」というのは、処理に対してという意味で、前判定型は条件によっては処理を一度も行わない。これに対して後判定型は、どんな条件でも最低1回は処理を行う。


前判定

 

 

後判定

 

練習問題

電話をかける場合のフローチャートを考えなさい。
(携帯電話ではなく、家の有線電話の場合で考えてください)

解答例

電話を掛けるフローチャート