アルゴリズム入門

luagate/zoom-lessons/2026-04/cs-algorithms-1CS理論 - アルゴリズム35コンピュータサイエンス

上から下へ、全 35 枚そのまま並べています。

発表モードで開く

CS理論 - アルゴリズム

アルゴリズム入門

手順を「正確に」書く力を身につけよう

1
1

目次

今日の流れ

アルゴリズムってなに?

フローチャートの読み書き

3つの基本構造

休憩

例題:最大値を見つけよう

演習:日常をフローチャートに

2
2
CS理論 - アルゴリズム

今日のゴール

この授業が終わったとき、みなさんができるようになること。

  • 「アルゴリズム」という言葉を自分の言葉で説明できる
  • フローチャートの4つの記号を使い分けられる
  • 順次・分岐・繰り返しの違いがわかる
  • 日常の手順をフローチャートに変換できる
3
3

CS理論 - アルゴリズム

1

アルゴリズムってなに?

「手順」を正確に書き出したもの

4
4
CS理論 - アルゴリズム

アルゴリズムの定義

難しそうに聞こえるけれど、実はとてもシンプルな概念です。

アルゴリズム

ある問題を解くための、明確で有限な手順のこと。

「あいまいさ」がない ― 誰がやっても同じ結果になる

「有限」である ― いつか必ず終わる

「入力→処理→出力」の流れがある

5
5
CS理論 - アルゴリズム

料理のレシピで考えてみよう

カレーの作り方は立派なアルゴリズム。順番通りに、あいまいさなく書くことが大切です。

1. 材料を切る
  • じゃがいも・にんじん・玉ねぎを一口大に切る
2. 炒める
  • 鍋に油を熱し、肉と野菜を中火で5分炒める
3. 煮込む
  • 水600mlを加え、沸騰したら弱火で20分煮る
4. ルーを入れる
  • 火を止めてルーを溶かし、とろみが出るまで10分煮る
6
6
CS理論 - アルゴリズム

良いレシピ vs 悪いレシピ

あいまいさがあると、結果がバラバラになる ― アルゴリズムも同じです。

悪いレシピ

  • 野菜を適当に切る
  • いい感じに炒める
  • しばらく煮込む
  • 味を見ていい感じにする

良いレシピ

  • 一口大(2cm角)に切る
  • 中火で5分炒める
  • 弱火で20分煮込む
  • ルー1箱を溶かして10分煮る
7
7
CS理論 - アルゴリズム

アルゴリズムの身近な例

実は毎日アルゴリズムに囲まれて生活しています。

自動販売機
  • お金を投入→ボタンを押す→商品が出る→お釣りを返す
カーナビ
  • 現在地と目的地を入力→最短ルートを計算→案内を開始
検索エンジン
  • キーワードを入力→該当ページを探す→関連度順に並べる
信号機
  • 青→黄→赤を一定時間で繰り返す
8
8

CS理論 - アルゴリズム

2

フローチャート

アルゴリズムを「図」で表す方法

9
9
CS理論 - アルゴリズム

フローチャートとは

文章だけでは伝わりにくい手順も、図にすると一目瞭然。

  • アルゴリズムを記号と矢印で表した図
  • プログラムの設計図として使われる
  • 複雑な処理の流れを視覚的に整理できる
  • チームで認識を合わせるツールとしても有効
10
10
CS理論 - アルゴリズム

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

まずはこの4つだけ覚えればOK。

名前
意味

角丸の四角

端子

開始 / 終了

「開始」「終了」

四角形

処理

何かを実行する

「水を沸かす」

ひし形

判断

Yes/Noで分岐

「沸騰した?」

矢印

流れ線

処理の順番を示す

上から下へ

11
11
CS理論 - アルゴリズム

フローチャートを読んでみよう

お湯を沸かす手順をフローチャートで表すとこうなります。何をしている手順か分かりますか?

NoYes開始やかんに水を入れるコンロに火をつける沸騰した?待つ火を止めるカップに注ぐ終了
12
12
CS理論 - アルゴリズム
クイズ

クイズ:フローチャート記号

フローチャートの記号を覚えたか確認しましょう。

フローチャートで「Yes / No の判断」を表す記号はどれ?

A
角丸の四角形(端子)
B
四角形(処理)
C
ひし形(判断)
D
矢印(流れ線)
13
13
CS理論 - アルゴリズム
答え

クイズ:フローチャート記号

フローチャートで「Yes / No の判断」を表す記号はどれ?

A
角丸の四角形(端子)
B
四角形(処理)
C
ひし形(判断)
D
矢印(流れ線)

ひし形は条件分岐を表します。YesとNoの2方向に矢印が出るのが特徴です。

14
14

CS理論 - アルゴリズム

3

3つの基本構造

すべてのアルゴリズムはこの組み合わせでできている

15
15
CS理論 - アルゴリズム

3つの基本構造

どんなに複雑なプログラムも、突き詰めるとこの3つの組み合わせ。

順次(じゅんじ)
  • 上から下へ
  • 1つずつ順番に実行
分岐(ぶんき)
  • 条件によって
  • 処理を分ける
繰り返し(ループ)
  • 条件を満たすまで
  • 同じ処理を繰り返す
16
16
CS理論 - アルゴリズム

順次 ― カレーの手順

上から下へ、1つずつ順番に実行する最もシンプルな構造。

Step 1

材料を切る

Step 2

鍋で炒める

Step 3

水を加えて煮る

Step 4

ルーを入れて完成

17
17
CS理論 - アルゴリズム

分岐 ― 傘を持っていく?

「もし○○なら」で処理を分ける構造。天気予報を見て判断する例です。

YesNo開始天気予報を確認雨の予報?傘を持つ傘なしでOK家を出る終了
18
18
CS理論 - アルゴリズム

繰り返し ― シャンプーの例

条件を満たすまで同じことを繰り返す構造。「泡立つまで洗う」は繰り返しの好例。

NoYes開始シャンプーを手に取る髪をこすって泡立てる十分に泡立った?すすぐ終了
19
19
CS理論 - アルゴリズム

3つの構造まとめ

それぞれの特徴を比較して整理しましょう。

キーワード
フローチャート
日常の例

順次

「まず→次に→最後に」

↓で一直線

カレーの手順

分岐

「もし○○なら」

ひし形から2方向

傘を持つかどうか

繰り返し

「○○するまで」

矢印がループ

泡立つまで洗う

20
20
CS理論 - アルゴリズム

プログラムで使われる構造の割合

実際のプログラムではどの構造が多く使われているか、一般的な傾向を見てみましょう。

50 %403020100
50%
30%
20%
順次
分岐
繰り返し

出典: 一般的なプログラムコードの構造比率(概算)

21
21
CS理論 - アルゴリズム

休憩 10分

後半は例題と演習です。しっかり休んでおきましょう!

  • ここまでのキーワード:アルゴリズム、フローチャート、順次・分岐・繰り返し
  • 後半は実際に手を動かしてフローチャートを書きます
  • 質問があればこの時間に聞いてください
22
22

CS理論 - アルゴリズム

4

例題:最大値を見つけよう

3つの基本構造がすべて登場する定番問題

23
23
CS理論 - アルゴリズム

問題:5つの数字の最大値

次の5つの数字の中から、一番大きい数を見つけるにはどうすればいい?

  • 数字:3, 7, 1, 9, 4
  • コンピュータは「全体を一目で見る」ことができない
  • 1つずつ順番に比べていく必要がある
  • この手順を考えるのがアルゴリズム設計!
24
24
CS理論 - アルゴリズム

最大値の手順を言葉で書く

まずは日本語で手順を整理。いきなりフローチャートを書かないのがコツ。

Step 1

1番目の数字を「仮の最大値」にする

Step 2

次の数字と仮の最大値を比較する

Step 3

次の数字の方が大きければ、仮の最大値を更新する

Step 4

まだ数字が残っていれば Step 2 に戻る

Step 5

全部見終わったら、仮の最大値が答え!

25
25
CS理論 - アルゴリズム

最大値のフローチャート

言葉の手順をフローチャートに変換。順次・分岐・繰り返しの3構造がすべて登場!

開始
最大値 ← 1番目の数(順次)
次の数 > 最大値?(分岐)
Yes → 最大値を更新
まだ数がある?(繰り返し)
No → 最大値を出力して終了
26
26
CS理論 - アルゴリズム

トレースしてみよう

具体的な数字 [3, 7, 1, 9, 4] でフローチャートを1ステップずつ追いかけます。

比較する数
仮の最大値
更新?

初期値

3

3

1回目

7

7

Yes(7 > 3)

2回目

1

7

No(1 < 7)

3回目

9

9

Yes(9 > 7)

4回目

4

9

No(4 < 9)

27
27
CS理論 - アルゴリズム
クイズ

クイズ:最大値アルゴリズム

トレースの練習です。

[5, 2, 8, 6, 1] でこのアルゴリズムを実行すると、仮の最大値が更新されるのは何回?

A
1回
B
2回
C
3回
D
4回
28
28
CS理論 - アルゴリズム
答え

クイズ:最大値アルゴリズム

[5, 2, 8, 6, 1] でこのアルゴリズムを実行すると、仮の最大値が更新されるのは何回?

A
1回
B
2回
C
3回
D
4回

初期値5 → 8で更新(1回目)。2,6,1では更新なし。答えは1回!

29
29

CS理論 - アルゴリズム

5

演習タイム

日常の手順をフローチャートにしよう

30
30
CS理論 - アルゴリズム

演習:お題を選ぼう

以下のお題から1つ選んで、フローチャートを書いてみましょう。

朝の準備
  • 起きてから家を出るまでの手順
  • 天気チェックの分岐あり
自販機でジュースを買う
  • お金を入れてから商品が出るまで
  • 金額不足の分岐あり
図書館で本を探す
  • 探している本を見つけるまで
  • 繰り返しの構造が入る
31
31
CS理論 - アルゴリズム

演習のヒント:進め方

いきなりフローチャートを書かず、まずは言葉で手順を整理するのがコツ。

手順を箇条書きで書き出す
「もし○○なら」を見つける → 分岐
「○○するまで」を見つける → 繰り返し
残りは順次
記号に変換してフローチャートにする
32
32
CS理論 - アルゴリズム

良いフローチャート vs 惜しいフローチャート

演習で気をつけたいポイントを比較してみましょう。

惜しいフローチャート

問題点
開始/終了がない
どこから始まるか不明
矢印が足りない
流れが途切れている
判断が曖昧
「いい感じなら」

良いフローチャート

ポイント
開始/終了がある
端子記号で明示
矢印が全部つながる
流れが途切れない
判断が明確
「金額 ≧ 120円?」
33
33
CS理論 - アルゴリズム

今日のまとめ

今日学んだ3つの柱を振り返りましょう。

  • アルゴリズム = あいまいさのない、有限の手順
  • フローチャート = アルゴリズムを図で表す方法(端子・処理・判断・矢印)
  • 3つの基本構造 = 順次・分岐・繰り返し、これですべてのプログラムが作れる
  • 次回はアルゴリズムをPythonコードに変換してみます!
34
34
"

プログラミングはコードを書くことではない。アルゴリズムを考えることだ。

― この授業のまとめ

35
35