フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2...

14
フローチャート補修

Transcript of フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2...

Page 1: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

フローチャート補修

Page 2: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

反復構造 (一定回数のループ処理)

100回同じ処理を繰り返す お風呂で子供が指をおって 数を数える感じ 繰り返し数を記憶する変数 をカウンター(変数名Iをよく 使う)と呼ぶ カウンターを初期化して, 100回繰り返したかどうか判定して そうならば終了 そうでなければ処理を実行して カウントアップ(インクリメント)して ~に戻って同様の処理を続ける

START

END

反復処理

i=0

i=i+1

i = or >100 yes

no

前処理

終了条件判定

後処理

Page 3: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

合計処理 (配列を使う)

前提:N個のデータが予め配列arrayに格納.(Nは既知)

目標:その個の数値データの合計値をsumに求める

54

20

88

31

配列array

変数sum

54+20+88+…+31

前処理→何を初期化? i=0, sum=0 反復処理? →配列要素の添え字を利用 sum=sum+array(i) 終了条件は? 後処理→何を出力?

Page 4: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

合計処理(配列)フローチャート

START

END

sum=sum+array(i)

i=0,sum=0

i=i+1

i ≧ N yes

no

前処理

後処理

Page 5: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

カウント処理 (配列を使う)

前提:N個のデータが予め配列arrayに格納(Nは不明).

末尾にデータ終了を表すためにー1が格納.

目標:データの個数を変数countに求める

54

20

88

31

配列array

変数count

前処理→何を初期化? 反復処理? →配列要素の添え字を利用 終了条件は? 後処理→何を出力?

-1 データ末尾

データ個数

Page 6: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

カウント処理(配列)フローチャート

Page 7: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

平均値算出 合計値÷データ個数→平均値

○合計値を求めるアルゴリズムとデータ個数を求めるアルゴリズムを組み合わせれば,平均値を求めるアルゴリズムが作成できるはず

前提:N個のデータが予め配列arrayに格納(Nは不明).

末尾にデータ終了を表すためにー1が格納.

目標:所与データ群の平均値を変数aveに求める

54

20

88

31

配列array

-1

平均値

変数ave

データ末尾

前処理→何を初期化? 反復処理? →配列要素の添え字を利用 終了条件は? 後処理→例外処理が必要

Page 8: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

平均値算出フローチャート

Page 9: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

最大値選出

54

20

88

a b c

3つの変数,a,b,c に格納されている値から最大値を選ぶには? aとbを比較して, aが大きければ→ ? bが大きければ→ ?

データが多くなると上記処理では対応できない. よって配列を利用して反復構造を適用する.

54

20

88

31

暫定最大値 暫定最大値

前提:N個のデータが予め配列arrayに格納(Nは既知). 目標:所与データ群からの最大値を変数maxに求める

N

個のデ|タ

配列array

Page 10: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

最大値選出フローチャート

Page 11: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

最小値選出

54

20

88

a b c

3つの変数,a,b,c に格納されている値から最小値を選ぶには? aとbを比較して, aが小さければ→ ? bが小さければ→ ?

データが多くなると上記処理では対応できない. よって配列を利用して反復構造を適用する.

54

20

88

31

暫定最小値 暫定最小値

前提:N個のデータが予め配列arrayに格納(Nは既知). 目標:所与データ群からの最小値を変数minに求める ※最大値選出と同様にできるが,99999がarray配列 要素より必ず大きいと仮定し,i=0と初期化して フローチャートを作成せよ.

N

個のデ|タ

配列array

Page 12: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

最小値選出フローチャート

Page 13: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

開始

-1→max

101→min

YES

cnt≧10

YES

ten > max

平均点(=sum÷10)を表示

YES

ten < min

最高点(max)・最低点(min)を表示

cnt + 1 → cnt

終了

0→sum

0→cnt

tenを入力

a

b

ten → min NO

NO

NO

問題1: 10人分の点数を入力し,平均点,最高点,最低点を求める流れ図を示す. aと b を埋めよ

Page 14: フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか? ... Title

開始

dataを入力

YES

cnt≧6

最高点(max)を表示

最低点(min)を表示

data→max

data→min

1→cnt

dataを入力

data:max

data:min

data→max

cnt +1→cnt

data→min

α

終了

< ≧

問題2 入力データ:63, 82, 35, 92, 71, 32 流れ図のαは何回実行されるか?