情報リテラシー実習Ⅳ 遠隔授業プラス

テーマ:アルゴリズムとフローチャート

動画配信はこちらから試聴
アルゴリズムとは

ある特定の問題を解決したり、目的を達成したりするための「手順」や「計算方法」のことで砕いて言うと、何か問題を解決するときの考え方です。

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

アルゴリズムを学ぶことは、論理思考や問題解決能力を養う上で非常に有益です。アルゴリズムは、複雑な問題を分解し、効率的な手順を設計するための道具です。アルゴリズムを学ぶことで、問題解決のスキルや創造性が向上し、日常生活や職業上のさまざまな課題に対処する能力が高まります。

このようにアルゴリズムの学習は現代社会において重要なスキルであり、個人や組織の成果や競争力を向上させるために不可欠な要素となっています。

なぜ重要か?(アルゴリズムの目的)

同じ答えを導くにも、アルゴリズムの工夫によって、コンピュータの処理速度や必要なメモリ量が大きく変わります。

  • 効率性: 処理時間が短縮される。
  • 最適化: 最適な解を見つけ出す。

身近なアルゴリズムの例

  • 料理のレシピ: 材料と手順が定義されており、誰が作っても同じ料理ができる。

例1:お片付け

積み木で遊んでいた幼児に、お片付けを教える場合を考えてみましょう。

  1. 『遊んでいた場所に行きなさい。』
  1. 『転がっている積み木を取りなさい。』
  1. 『取ったら、積み木入れまで持ってきなさい。』
  1. 『持ってきたら、形に合わせてはめ込みなさい。』
  1. 『まだ積み木が転がっていたら、無くなるまで繰り返しなさい』
  1. 『それが済んだら、おもちゃ入れに持っていきなさい。』
  1. 『そして、そこに置きなさい。』
  1. 『よく出来ました、これで終わります。』

例2:信号のある交差点の渡り方

小学校へ入学して間もないころ、学校で交通指導員の方が来て、信号の渡り方の講習をされたことを思い出します。

そこではどんなふうに教わったでしょうか。

  1. 横断歩道にさしかかる。
  1. 渡る方の信号を見る。
  1. 青でなければ(赤ならば)、青になるまで待つ。
  1. 青であっても、すぐに渡らずに左右を確認する。
  1. 車が近づいていれば待つ。
  1. 車が通りすぎるか、車が近づいていなければ、注意して速やかに信号を渡る。

といったところでしょうか。

しかし、文章で読んだだけでは分かりにくいですね。

これを文章ではなく、図で表したものがフローチャートです。

フローチャートはアルゴリズムをわかりやすく図にしたものです。
上記の例をフローチャートにすると、以下のようになります

フローチャートとは

フローチャート(流れ図)とは、業務プロセスやプログラムの処理手順を、長方形や菱形などの図形と矢印を用いて視覚的に表現した図のこと。複雑な業務の流れやアルゴリズムを明確にし、誰でも全体像を理解できるようにするツールです。

フローチャートの主な役割とメリット

  • 業務プロセスの可視化: 複雑な業務手順や判断基準(「はい」「いいえ」の分岐など)が一目で分かる。
  • 情報の共有と伝達:チーム間や新人研修で、手順の認識を統一できる。
  • 問題点の発見・改善: 効率の悪いプロセスやボトルネックを見つけやすくなる。
  • プログラミング: アルゴリズムの設計図として利用される。
フローチャートの書き方

基本となる図形記号

国際規格やJISで定められた記号を主に使います。

フローチャートの記号

  • ターミネーター (角丸長方形): プロセスの開始と終了。
  • プロセス (長方形): 処理、作業の内容。
  • 判定/条件分岐 (菱形): 条件によってフローが分かれる箇所。
  • フローライン (矢印): 処理が進む順序と方向。

作成の基本ルール

  1. 一つの始点と終了点を持つ: 処理の始まりと終わりを明確にする。
  1. 原則は上から下、左から右へ描く: 処理の順序が一目で分かるように配置。
    条件分岐の場合はYesNoを明記する

    多重分岐

  1. 逆行する際には、矢印にする:

    間違い例

    • 線は交差してはならない:交差する場合は反対側に引き出す
    • 条件分岐からの引出線は、コーナーから引き出す。
      また引出線の終点は、線に合流する。
    • 開始・終了は1箇所に合流する
フローチャートの書き方

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

  • 順次構造:
  • 分岐構造:
  • 反復構造:反復構造には前判定型と後判定型があります。
    • 前判定型
      条件によっては、処理1が実行されない場合がある。
    • 後判定型
      必ずⅠ度は処理1が実行される。

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

歩くネコのフローチャート
  1. 緑の旗が押される
  1. ずっと
  1. 10歩歩く
  1. 端についたら180度回転する
  1. 赤いボタンが押されたら終わり
Excelでフローチャート作成
  1. Excelを開く
  1. 挿入タブに切り替え
  1. 図形からフローチャート部品を選択
  1. シートの上で必要なサイズになるようにドラッグ
  1. サイズ調整する場合は四隅のアンカーポイントをドラッグ
  1. スタイルを見やすいものに変更
  1. テキストを入力
  1. オブジェクトを線でつなぐ
    一列にしたいオブジェクトをドラッグして選択し整列するときれいに並ぶ
    また、一番上のボックスから一番下のボックスまで直線を引き采配面に移動すると接続線がⅠ本ですむ。
VISIO for webを使ってフローチャートを作成
  1. Microsoft 365に学校のメールアドレスでサインイン
  1. すべてのアプリケーション
  1. VISIOを選択
  1. 「フローチャート」のテンプレートを選択
  1. 必要なオブジェクトをドラッグ
  1. テキスト入力
  1. オブジェクトを追加する
  1. 必要に応じて線でつなぐ

    Excelとの違いは、

    • ドロップして位置を変更するときにsサイズや間隔のガイドが表示される
    • 線を引くときにスナップされる
    • 線を引いてからオブジェクトを移動しても線がついたままになる
    • 判断の横から線を引くときに、他のオブジェクトを避けて引かれる
    • テーマを固定できるので、いちいちデザインを変えなくても良い

練習問題

電話をかける場合のフローチャートを考えなさい。

(携帯電話ではなく、家の有線電話の場合で考えてください)

Excel、Word、Visio等で作成した場合は、「練習問題」というファイル名で保存してアップロードして下さい。
手書きの場合は、スキャナーでスキャンするか、スマホ等で撮影した画像ファイルをアップロードして下さい。