スライド 1 - 小林利臣のホームページ

アルゴリズムと
プログラミング
①データ構造
②アルゴリズム
③プログラミング・プログラム言語
④マークアップ言語
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
1
①データ構造
(p155~)
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
2
(1)データとデータ構造

変数


プログラム実行中に
データを一時的に記憶する領域
配列(p156-157)

(イメージ)学年別
「外国人数」配列
D = Input(画面)
配列 A
変数をグループ化したもの


「添字」で位置を指定する
2次元、・・・もできる
2年生の
外国人数
『プログラミング』
A(1)
A(2)
A(3)
A(4)
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
12
14
20
17
3
(2)リスト(p156-158)

リスト

「ポインタ」で連結した一連の変数群

データの追加・削除が容易
並べ替え
追加・削除
が面倒
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
4
リストの追加(例)
アドレス データ
10 東京
30 名古屋
50 新横浜
70 浜松
90 熱海
ポインタ
50
0
90
30
70
アドレス データ
10 東京
30 名古屋
50 新横浜
70 浜松
90 熱海
150 静岡
ポインタ
50
0
90
30
70
『プログラミング』
アドレス データ ポインタ
10 東京
50
30 名古屋
0
50 新横浜
90
70 浜松
30
90 熱海
150
150 静岡
70
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
5
リストの削除(例)
アドレス データ ポインタ
10 東京
50
30 名古屋
0
50 新横浜
90
70 浜松
30
90 熱海
150
150 静岡
70
『プログラミング』
アドレス データ ポインタ
10 東京
90
30 名古屋
0
50 新横浜
90
70 浜松
30
90 熱海
150
150 静岡
70
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
6
(3)スタックとキュー

“特有な”追加・削除ができるデータ構造
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
7
データ構造(Stack、p159)
本の摘み置き
POP
挿入:Push
削除:Pop
C
B
A
Last In First Out
『プログラミング』
D
(LIFO、後入れ先出し)
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
8
データ構造(Queue、p159)
窓口での待ち行列
Dequeue
A
B C
First In First Out
『プログラミング』
Enqueue
D
(FIFO、先入れ先出し)
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
9
②アルゴリズム
(p160~)
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
10
(1)流れ図(p160)

JIS規格
(2)アルゴリズムの基本構造(p161)
順次構造
選択構造
繰返し構造
False
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
11
(3)代表的なアルゴリズム

合計

選択構造
繰返し構造
偽
真
A = 経済学科

履修 不可
探索

線形探索法

二分探索法

履修 可能
整列したデータを二分しながら探索する
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
12
③プログラミング・
プログラム言語
(p162~)
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
13
プログラム(Program)

配列の合計
を求める
コンピュータに対する
計算などの手順を示したもの
I=0
S=0
I=I+1
S = S + A(I)

手順を示す作業=プログラミング

手順を記述する言葉=プログラム言語
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
14
(1)プログラム言語の種類(p162)

低水準言語


事務処理用言語(企業の基幹情報システム)


COBOL
科学技術用言語


機械語、アセンブリ言語
FORTRAN
オープン系、Web系



ソースプログラム
(Javaの例)
Java
C、C++
VisualBASIC
『プログラミング』
public class Sample1 {
public static void main(int x) {
if (x < 3) System.out.println(true); else
System.out.println(false);
}
}
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
15
(2)言語プロセッサ(p163)


COBOL、C
翻訳

リンカ
オブジェクト
モジュール
他
一括実行
実行:速い

コンパイラ
コンパイラ(Compiler)

ソース
プログラム
実行(機械語)
ロード
モジュール
インタプリタ(Interpreter)


Perl(p163)などのスクリプト言語(p162)
通訳

逐次実行
『プログラミング』
JavaScript
実行(インタプリタ)
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
ソース
プログラム
16
④マークアップ言語
(p164~)
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
17
(p164)

「タグ」を使って
文書の論理構造を記述する言語


HTML


(論理構造):レイアウト、書式、リンク、・・・
Webページを作成するための言語
XML

タグを独自に定義できる拡張可能なML
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
18
HTMLファイル基本構造
タグ
論理構造
XMLでは
自分でタグを定義できる
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
19
End
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
20
小テスト-メモ欄ー選択理由の書き方
ア)
イ)
ウ)
エ)
何を説明しているか
二分探索法
線形探索法
キュー操作
スタック操作
だから ア)
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
21
Link先
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
22
繰返し構造の例(配列の合計)
(戻る)
I=0
S=0
I=I+1
<
S = S + A(I)
S = 0 + A(1)
S = S + A(2)
S = S + A(3)
・
・
・
S = S + A(10)
I:10
何回
繰り返すか
『プログラミング』
S=A(1)+A(2)+・・・
+A(10)
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
23
探索(「11」を探すケース)
(戻る)
線形探索
12
8
5
17
11
1
3
20
6
10
15
18
1
3
5
6
8
10
11
12
15
17
18
20
二分探索
探索:速い
③
②
①
『プログラミング』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
24