高校情報Ⅰ アルゴリズムとプログラミングの基本(4か月目第2週)

高校情報Ⅰと実践活用

まなびの目標🎯
アルゴリズム問題を解決するための方法や手順であることを理解する。
アルゴリズム表記流れ図フローチャート)について理解する。
プログラミングの基本となる3つの制御構造順次・分岐・反復)を理解する。

1. アルゴリズムとプログラム

料理のレシピ
ライブ会場までの電車の乗り換え案内

これらに共通するのは何でしょうか??

正解は、目的を達成するための「決まった手順」や「方法」であるということです!

料理のレシピ ⇒目的:料理を完成させる
ライブ会場までの電車の乗り換え案内 ⇒ 目的:コンサートに参加する

コンピュータの世界では、このような問題を解決(目標を達成)するための方法や手順のことをアルゴリズムと呼びます。

コンピュータで行う作業のアルゴリズムを、コンピュータが理解できる”言葉”で具体的に指示する必要があります。そのコンピュータへの指示書がプログラムです。

2. フローチャート

プログラムを作る前に、まず「どういう手順で解決するか?」のアルゴリズムを考えることがとても重要です。
アルゴリズムの処理手順を表記する方法がいくつかあり、本記事では主にフローチャートについて記載していきたいと思います💡

フローチャートとは、アルゴリズム(問題解決の手順)を、決められた図形(記号)と矢印を使って視覚的に表現した図のことです。

📢フローチャートの記号例

開始と終了!はどこか、
条件分岐では何をする?、
ループの始端と終端!はどこか、
をちゃんと意識して、アルゴリズムを理解することは大事です💡

例:傘を持っていくかどうかの判断 ☔
「もし○○ならA、そうでなければB」という、条件によって処理が分かれる(分岐処理:ひし形)フローチャート
★フローチャートの流れ(分岐):
開始

処理: 「外を見る」

条件分岐(ひし形): 「雨が降っているか?」
↓ (Yesの場合)
処理: 「傘を持っていく」

終了
↓ (Noの場合)
処理: 「傘を持っていかない」

終了
フローチャートは1つの作業の流れを表すのには適していますが、並行した処理などを表現することはあまり得意ではありません。
複数の処理について表すには、統一モデリング言語(United Modeling Language, UML)が使われることが多く、UMLであるアクティビティ図状態遷移図なども広く使用されています。※フローチャート、アクティビティ図、状態遷移図を作ってみたい!という方は、
draw.io(diagrams.net)
Google Drawing
などのツールが無料で使えて便利です!ご興味ある方は、是非!
3. アルゴリズムを支える3つの制御構造

プログラムの基本的な構造は、順次構造、分岐構造、反復構造という3つの基本構造の組み合わせから出来ています。これらは、制御構造と呼ばれます。

3.1 順次構造 ~上から順番に~

順次構造は、書かれた処理を上から下へ、順番通りに一つずつ実行していく、最もシンプルな構造です。
フローチャート(フローチャートは基本上から下へ、左から右へ、です💡)

上から順に、処理1→処理2→・・・という流れで作業を進めます!

3.2 分岐構造 ~もし○○なら~

分岐構造は、「もし条件が○○ならAを実行し、そうでなければBを実行する」というように、ある条件によって処理の流れを分ける構造です。条件分岐、とも言います。

例えば、「テストの点数が60点以上なら『合格』と表示し、そうでなければ『不合格』と表示する」といった処理が分岐にあたります。Yesの道とNoの道、どちらか一方しか実行されないのがポイントです。

※上の 例:傘を持っていくかどうかの判断 ☔のフローチャートが、この分岐にあたります!

3.3 反復構造 ~〇〇の間は繰り返す~

反復構造は、「ある条件を満たしている間、同じ処理を何度も繰り返し実行する」構造です。ループ処理とも呼ばれます。

例えば、「変数xの値を、5回繰り返して10ずつ加算する」といった処理が反復にあたります。決められた回数(5回)や、特定の条件(回数が5回まで)が満たされなくなるまで、同じ処理が繰り返し実行されます

★フローチャートの流れ(反復):
 左図ー分岐ふくむ反復、 右図ーループ端含む反復
※左図と右図は、同じ作業を示します!

同じプロセスでも、上記のようにフローチャートでの表現の仕方は複数あることもあります。
より使いやすく、伝わりやすい、フローチャートを作成してみてください!

4. まとめ

アルゴリズムとは「問題を解決するための手順」のことで、プログラミングを行う上での設計図となる考え方です。
アルゴリズムの処理の流れは、フローチャート(流れ図)を使うことで、視覚的に分かりやすく表現できます。
・どんなに複雑なプログラムも、基本的には順次構造、分岐構造、反復構造という3つの制御構造の組み合わせで作られています。
・プログラムを書き始める前に、まずアルゴリズムをしっかり考えることで、処理の流れが整理され、間違いの少ない効率的な開発に繋がります。

5. 確認クイズ

Q1. フローチャートにおいて、「もし〜ならA、そうでなければB」という条件による処理の分かれ道を表す記号はどれですか?

  • ひし形
  • 長方形
  • 端子(丸い四角)

正解!正解!

不正解!不正解!

ひし形

ヒント:記事中の「傘を持っていくか?」の判断で使われていた図形です。

Q2. 3つの基本制御構造のうち、「処理を上から下へ、書かれた順番通りに実行する」最も基本的な構造を何と呼びますか?

  • 順次構造
  • 分岐構造
  • 反復構造

正解!正解!

不正解!不正解!

順次構造

ヒント:プログラムに特別な指示がない限り、コンピュータはこの流れで動きます。

Q3. アルゴリズムを考える際にフローチャートを使う、一番の利点は何ですか?

  • コンピュータの動作が速くなる
  • 処理の流れを視覚的に整理できる
  • プログラムを自動で生成できる

正解!正解!

不正解!不正解!

処理の流れを視覚的に整理できる

ヒント:文章だけで手順を読むより、図で見た方が分かりやすいですよね。

Q4. 複雑なアルゴリズムも、3つの制御構造の組み合わせで表現されます。その3つとは、順次構造、分岐構造とあと一つは何構造ですか?

  • 出力
  • 命令
  • 反復

正解!正解!

不正解!不正解!

反復

ヒント:「ループ」とも呼ばれる、同じ処理を何度も行う構造です。

確認クイズは、いかがでしたでしょうか?今回の学習内容が、皆さんの情報活用能力を高める一助となれば幸いです。閲覧いただき、ありがとうございました!

※本記事 教科書該当範囲

教科書名 該当章
新編情報Ⅰ(東京書籍) 3章 24. アルゴリズムの表現, 25. プログラムの基本構造1, 26. プログラムの基本構造2
最新情報I(実教出版) 第6章 1節 1. アルゴリズムとその表記
高校情報ⅠJavaScript(東京書籍) 第6章 30. アルゴリズムとプログラミング, 31. プログラミングの基本
高校情報ⅠPython(東京書籍) 第6章 30. アルゴリズムとプログラミング, 31. プログラミングの基本

本サイトは、教科書をベースに構成しています。使える「情報Ⅰ」を目指し、毎週新しい記事を発信予定です。

高校情報Ⅰ 時系列分析と回帰分析(4か月目第1週)
まなびの目標🎯・時間と共に変化する時系列データから、時系列分析を行って将来を予測してみよう!・2つの異なるデータの関係性(相関関係)を調べよう!・散布図と回帰直線を使って、データ間の関係を説明しよう!・相関関係と因果関係の重要な違いを理解し...
高校情報Ⅰ 基本統計量とヒストグラム、箱ひげ図(3か月目第4週)
まなびの目標🎯・基本統計量を知ろう!データの全体の傾向をつかむのは大事!・データの中心や散らばりを把握することの重要性を理解しよう!・データの分布を可視化する方法を知ろう!最後、確認クイズもありますので、是非見ていって下さい♬■目次1. 基...
高校情報Ⅰ データの収集・整理・可視化(3か月目第3週)
★本サイトの取り組み方★ ①まなびの目標を理解し、使われる場面をイメージしましょう。②最後の確認クイズで、学んだことをしっかりチェックしましょう。まなびの目標🎯・データ収集の方法を知る。・表計算ソフトを使ってデータの整理方法を習得する。・デ...

本記事に対し、お気づきの点ございましたらお問い合わせよりご連絡頂けますと幸いです。




 

コメント

タイトルとURLをコピーしました