ProJo-Donyu

プログラミング序説
ー 導入編 ー
1
コンピュータの思考、人間の思考
コンピュータ
アルゴリズム
人間
ヒューリスティクス
明確に分けて、順序立てて、 経験、思いつき、ひらめき、
論理的に考える
カンで考える
システム的思考
渾然一体の思考
物事を要素に分割して、
要素間の関連を考える
物事をあまり整理せずに
考える
2
人間の思考 (足し算 4 + 3)
どのような手順で処理しますか?
3
コンピュータの思考 (足し算 4 + 3)
機械語レベルの処理
 4 を、「足される数」の箱に入れる
 3 を、「足す数」の箱に入れる
 +の演算器が、 「足される数」の箱と
「足す数」の箱からそれぞれ、数値を読み出す
 +の演算器が、2つの数値を足し算する
 +の演算器が、足し算した結果の 7 を、
「足される数」の箱に入れる
4
コンピュータの思考 (足し算 4 + 3)
C言語による記述
 int a, b, c;
 a = 4;
 b = 3;
 c = a + b;
 int c = 3 + 4;
5
コンピュータの思考方法の組み立て
 コンピュータは、あらかじめ与えられた
アルゴリズムに従って思考する
 人間が、アルゴリズムを考える
 抽象的なアルゴリズムを、
フローチャートなどでデザインする
 それに基づいて、具体的なアルゴリズムを、
Cなどのプログラミング言語でコーディングする
6
フローチャートの基本的な記号
端子: ルーチンの入り口や出口を示す
処理: 処理機能を示す
判断: 条件に従って、出口を選ぶ
定義済み処理: サブルーチンを示す
結合子: 同じフローチャートのつながりを示す
(紙面に書ききれず、分割するときなど)
7
コーラをコップに注ぐ
(Ver.1)
START
コップを
取り出す
コーラを
取り出す
少しずつ注ぐ
適量?
No
Yes
END
8
コーラをコップに注ぐ
(Ver.2)
コップを取り出す
START
START
コップを
取り出す
食器棚を開ける
コーラを
取り出す
コップを
取り出す
少しずつ注ぐ
食器棚を閉める
適量?
No
END
Yes
END
9
コーラをコップに注ぐ
(Ver.2)
コップを取り出す
コーラを取り出す
START
START
食器棚を開ける
冷蔵庫を開ける
コップを
コーラを
取り出す
取り出す
食器棚を閉める
冷蔵庫を閉める
END
END
START
コップを
取り出す
コーラを
取り出す
少しずつ注ぐ
適量?
No
Yes
END
10
横断歩道を渡る処理
(不完全版)
START
課題
信号の色を見る
1. 問題点を指摘する
青
赤
何色?
2. フローチャートを改善する
黄
安全確認する
Yes
安全?
渡る
No
待つ
END
11