2014 年度 デーや構造とアルゴリズム
2014 年 4 月 16 日
1.データ構造の基礎
2.アルゴリズム(Algorithm)の基礎
1.1.変数
]の考え方。[13:解法手順
◎ アルゴリズム…[12:問題を解くため
]を格納するための一つの領域。領
◎ 変数…[1:単独のデータ
5
]を代入する。
記述: a ← k … 変数 a に[3:式の計算結果(値)k
]、x←[5:a/2
a/2
コンピュータに対する処理手続きを記述したもの。
2.1.演算アルゴリズム
x
]
例:変数 a,d に対して、以下の処理①~⑤を順に施した時、それぞれの変数の値の推移
を表に調べよ。
手順
a
① a←3
①
3
② b←5
②
③ w←a
③
④ a←b
④
⑤ b←w
⑤
b
ある処理装置の働き(演算機能)を簡単な計算式(の組み合わせ)を用いて表わす。
例 1: 以下の機能を持つ処理装置 P において、入力 a,b,c にそれぞれ 3,5,8 を与えたと
w
きの出力 d の値を答えよ。
装置 P の処理
5
手順
3
5
3
1.2.配列
処理内容
式表現
①
a,b,c に値を入力する。
入力:a,b,c
②
入力 a の値と入力 b の値を乗じた結果を x とする。
x←[15:a*b
③
値 x から入力 c の値を減じた結果を d とする。
d←[16:x-c
④
d を出力する。
出力:d
◎ 配列…複数の変数領域をひとまとめにしたもの.その[6:ま とめた領域につける
]
]
a
]名前が配列名.
P
b
◎ (配列)要素…配列の個々の領域.要素番号(添え字)を付けて区別する.要素番号は
[7:0
]をコンピュータ用の言語で記述したもの。
◎ プログラム…[14:アルゴリズム
a
a : 変数名。 x : 変数名。
例: a←[4:5
算法(さんぽう)と訳されることもある。
]。
域につける名前が[2:変数名
]。
3
5
8
7
d
c
]から始まるものとする。
練習 A:上の処理装置 P に対して、右の表のような入力を与
a : 配列名。
えたときの出力は?
a[k] : 配列 a の k 番目の領域(要素).
利用できる要素番号は、[8:0~(全要素数-1)
75
]
68
70
記述:a[j]←n … 配列要素 a[j]に値 n を代入する。
例: a[0]←[9:75
]、a[2]←[10:92
a[0] a[1] a[2]
]
記述:x←d[k] … 変数 x に配列要素 d[k]の値を代入する。
例: p←[11:d[5]
]
練習 B:下の処理装置 Q に対して、右の表のような入力を与
p
d[5]
えたときの出力は?
例:2 個の要素を持つ配列 a と変数 x に対して、以下の処理①~③を順に施した時、そ
れぞれの要素と変数の値の推移を調べよ。
① a[1]←4
② x←-2
③ a[0]←x+a[1]
手順
a[0]
x
4
①
b
c
Q ① x←2*a+b
② d←2*c-x
d
b
2
3
-4
c
1
5
6
d
-6
11
8
a
6
5
4
b
8
5
8
c
4
5
1
d
44
20
31
-2
②
③
a[1]
a
a
3
-2
4
2
1/2
2014 年度 デーや構造とアルゴリズム
2014 年 4 月 16 日
(3) 反復処理
2.2.フローチャート
フローチャート(流れ図)…アルゴリズムを[17:視覚的
]に表現した図式。[18:
フローチャート内の条件は、反復処理を意識して、
● フローチャートで用いる主な記号
記号
名称
END
処理内容または意味
端子
NO
条件
反復する]処理。
]がわかりやすい。
処理の流れや手順
START
条件が満たされている間、指定された処理を[22:
フローチャートの開始と終了
YES
順次処理
『@(条件式)』のように記述することにする。
例 2:
(1) 例 1 の処理装置 P の処理のしくみは以下のように記述され、そ
入力(式)
or
入力(式)
入力記号
データの入力
START
のフローチャートは右のようになる。
a,b,c
① 入力:a,b,c
出力(式)
or
出力(式)
出力記号
データの出力,表示
② x←a*b
x←a*b
③ d←x-c
④ 出力:d
処理記号
処理(式)
判定(式)
計算,一般の処理
d
(2) 2 つの変数 a,b にそれぞれ
NO
判定記号
判定,条件判断や反復判定
YES
a,b(整数)
き「×」を出力する。
]の 3 つの基本
構造化定理…すべてのアルゴリズムは、[19:順次・選択・反復
① 入力:a,b(整数)
② a>b を判定
処理を組み合わせて記述できる。
②YES 出力:「○」
(1) 順次処理
]処理。
順次処理 1
END
START
整数値を入力し、a>b のと
き「○」を、そうでないと
2.3.構造化定理
入出力処理、代入処理などの[20:単独
d←x-c
NO
YES
「×」
END
@(k≦10)
① sum←0
選択する]処理。
フローチャート内の条件は、選択処理を意識して、
『?(条件式)』のように記述することにする。
NO
条件
k←1
②NO 出力:「×」
(3) 1 から 10 までの整数の総和を求めて出力する。
条件判断の結果によって、実行すべき処理を[21:
sum←0
「○」
順次処理 2
(2) 選択処理
START
?(a>b)
NO
YES
sum←sum+k
② k←1
③ k≦10 の間、以下の処理を繰り返す。
YES
③1
sum←sum+k
順次処理 Y 順次処理 N
③2
k←k+1
④ 出力:sum
k←k+1
sum
END
2/2