フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2...
Transcript of フローチャート補修«–...data→min ② α 終了 ① > < ≧ ≦ 問題2...
フローチャート補修
反復構造 (一定回数のループ処理)
100回同じ処理を繰り返す お風呂で子供が指をおって 数を数える感じ 繰り返し数を記憶する変数 をカウンター(変数名Iをよく 使う)と呼ぶ カウンターを初期化して, 100回繰り返したかどうか判定して そうならば終了 そうでなければ処理を実行して カウントアップ(インクリメント)して ~に戻って同様の処理を続ける
START
END
反復処理
i=0
i=i+1
i = or >100 yes
no
前処理
終了条件判定
後処理
合計処理 (配列を使う)
前提:N個のデータが予め配列arrayに格納.(Nは既知)
目標:その個の数値データの合計値をsumに求める
54
20
88
31
配列array
変数sum
54+20+88+…+31
前処理→何を初期化? i=0, sum=0 反復処理? →配列要素の添え字を利用 sum=sum+array(i) 終了条件は? 後処理→何を出力?
合計処理(配列)フローチャート
START
END
sum=sum+array(i)
i=0,sum=0
i=i+1
i ≧ N yes
no
前処理
後処理
カウント処理 (配列を使う)
前提:N個のデータが予め配列arrayに格納(Nは不明).
末尾にデータ終了を表すためにー1が格納.
目標:データの個数を変数countに求める
54
20
88
31
配列array
変数count
前処理→何を初期化? 反復処理? →配列要素の添え字を利用 終了条件は? 後処理→何を出力?
-1 データ末尾
データ個数
カウント処理(配列)フローチャート
平均値算出 合計値÷データ個数→平均値
○合計値を求めるアルゴリズムとデータ個数を求めるアルゴリズムを組み合わせれば,平均値を求めるアルゴリズムが作成できるはず
前提:N個のデータが予め配列arrayに格納(Nは不明).
末尾にデータ終了を表すためにー1が格納.
目標:所与データ群の平均値を変数aveに求める
54
20
88
31
配列array
-1
平均値
変数ave
データ末尾
前処理→何を初期化? 反復処理? →配列要素の添え字を利用 終了条件は? 後処理→例外処理が必要
平均値算出フローチャート
最大値選出
54
20
88
a b c
3つの変数,a,b,c に格納されている値から最大値を選ぶには? aとbを比較して, aが大きければ→ ? bが大きければ→ ?
データが多くなると上記処理では対応できない. よって配列を利用して反復構造を適用する.
54
20
88
31
暫定最大値 暫定最大値
前提:N個のデータが予め配列arrayに格納(Nは既知). 目標:所与データ群からの最大値を変数maxに求める
N
個のデ|タ
配列array
最大値選出フローチャート
最小値選出
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
最小値選出フローチャート
開始
-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 を埋めよ
開始
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 流れ図のαは何回実行されるか?