Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラムの基本構造と 構造化チャート(PAD)

Similar presentations


Presentation on theme: "プログラムの基本構造と 構造化チャート(PAD)"— Presentation transcript:

1 プログラムの基本構造と 構造化チャート(PAD)

2 復習 プログラムの3つの基本構造 処理1 条件 ループ 条件 処理 処理2 処理2 処理1 ループ 順次構造 選択構造 繰り返し構造 成立
 条件  不成立 処理 処理2 処理2 処理1 ループ 順次構造 選択構造 繰り返し構造

3 選択構造 条件 処理2 処理1 条件 処理1 IF 条件 Then 処理1 Else 処理2 End If IF 条件 Then 処理1
  処理1 Else   処理2 End If 条件 成立 不成立 処理2 処理1 条件 成立 IF 条件 Then   処理1 End If 不成立 処理1

4 選択構造 A>=60 不合格と表示 合格と表示
もし、Aが60以上ならTextBox1に“合格” 、そうでないなら、 “不合格” と表示する。 Start IF A>=60 Then   TextBox1.text=“合格” Else   TextBox1.text=“不合格” End If 成立 A>=60 不成立 不合格と表示 合格と表示 End

5 回数を指定しての繰り返し For Next 文を使う 条件を指定しての繰り返し Do Loop 文を使う 前判定の繰り返し 後判定の繰り返し
繰り返し構造   回数を指定しての繰り返し  For Next 文を使う   条件を指定しての繰り返し  Do Loop 文を使う   前判定の繰り返し   後判定の繰り返し ループ ループ  条件  処理 処理  条件  ループ ループ 前判定 後判定

6 回数を指定しての繰り返し処理 ループ For 変数 = 初期値 To 最終値   処理 Next 変数 変数 = 初期値~最終値 処理 ループ

7 回数を指定しての繰り返し ループ i=1~10 処理1 ループ 処理1を10回実行する Start For i = 1 To 10 処理1
  処理1 Next i ループ i=1~10 処理1 ループ End

8 回数を指定しての繰り返し s ← 0 ループ i=1~10 s ← s + i ループ TextBox1.Text ← s
Start s = 0 For i= 1 To 10   s = s + i Next i TextBox1.Text = s s ← 0 ループ i=1~10 s ← s + i ループ TextBox1.Text ← s End

9 回数を指定しての繰り返し s ← 0 ループ i= 0~9 s ← s +TextBox1.Lines(i) ループ
TextBox1に入力された10個のデータの合計をTextBox2に出力する Start s = 0 For i = 0 To 9    s  =  s +TextBox1.Lines(i) Next i TextBox2.Text = s s ← 0 ループ i= 0~9 s ← s +TextBox1.Lines(i) ループ TextBox2.Text ← s End

10 回数を指定しての繰り返し s ← 0 ループ i= 0~9 s ← s +TextBox1.Lines(i) ループ h ← s / 10
TextBox1に入力された10個のデータの平均をTextBox2に出力する Start s = 0 For i = 0 To 9    s  = s + TextBox1.Lines(i) Next i h = s / 10 TextBox2.Text = h s ← 0 ループ i= 0~9 s ← s +TextBox1.Lines(i) ループ h ← s / 10 TextBox2.Text ← h End

11 条件を指定しての繰り返し 前判定 後判定 ループ 条件 条件 条件 処理 処理 処理 ループ ループ 処理 処理 処理 条件 ループ 条件
条件が成立している間繰り返す 条件が成立するまで繰り返す ループ  条件  条件 不成立 条件 成立 前判定 処理 成立 不成立 処理 処理 ループ 条件が成立している間繰り返す 条件が成立するまで繰り返す ループ 後判定 処理 処理 処理  条件  ループ 条件 条件 成立 不成立 不成立 成立 ループ端記号を使った表現 判断記号を使ったループの表現

12 条件を指定しての繰り返し ループ 条件 処理 ループ ループ 処理 条件 ループ Do While 条件 処理 Loop
条件が成立している間繰り返す 条件が成立するまで繰り返す ループ Do While 条件   処理 Loop Do Until 条件   処理 Loop  条件  処理 ループ 前判定 条件が成立している間繰り返す 条件が成立するまで繰り返す Do    処理 Loop While 条件 Do    処理 Loop Until 条件 ループ 処理  条件  ループ 後判定

13 条件を指定しての繰り返し x = 1 x ← 1 Do Until x^2 > 100 x = x + 1 ループ
Start x = 1 Do Until x^2 > 100   x = x + 1 Loop TextBox1.Text = x x ← 1 ループ x2 > 100 が成立するまで x← x + 1 ループ TextBox1.Text ← x End

14 Max < TextBox1.Lines(i)
TextBox1に入力された10個のデータの最大値を求め,Textbox2に表示せよ. Start Max = TextBox1.Lines(0) For i= 1 to 9 IF Max < TextBox1.Lines(i) Then Max = TextBox1.Lines(i) End If Next  i TextBox2.Text = Max Max←TextBox1.Lines(0) ループ i =  1 ~ 9 成立 Max < TextBox1.Lines(i) 不成立 Max←TextBox1.Lines(i)    ループ   TextBox2.Text ← Max End

15 Max > TextBox1.Lines(i)
TextBox1に入力された10個のデータの最小値を求め,Textbox2に表示せよ. Start Max = TextBox1.Lines(0) For i= 1 to 9 IF Max >TextBox1.Lines(i) Then Max = TextBox1.Lines(i) End If Next  i TextBox2.Text = Max Max←TextBox1.Lines(0) ループ i =  1 ~ 9 成立 Max > TextBox1.Lines(i) 不成立 Max←TextBox1.Lines(i)    ループ   TextBox2.Text ← Max End

16 Min > TextBox1.Lines(i)
TextBox1に入力された10個のデータの最小値を求め,Textbox2に表示せよ. Start Min= TextBox1.Lines(0) For i= 1 to 9 IF Min > TextBox1.Lines(i) Then Min = TextBox1.Lines(i) End IF Next  i TextBox2.Text = Min Min←TextBox1.Lines(0) ループ i =  1 ~ 9 成立 Min > TextBox1.Lines(i) 不成立 Min←TextBox1.Lines(i)    ループ   TextBox2.Text ← Min End

17 i = 1 ~ 9 i = 1 ~ 9 TextBox2.Text ← Max TextBox3.Text ← Min
TextBox1に入力された10個のデータの最大値、最小値を求めTextBox2,3に表示せよ. Start 1 Max←TextBox1.Lines(0) Min←TextBox1.Lines(0) ループ ループ i =  1 ~ 9 i =  1 ~ 9 成立 成立 Max < TextBox1.Lines(i) Min > TextBox1.Lines(i) 不成立 不成立 Max←TextBox1.Lines(i) Min←TextBox1.Lines(i)    ループ      ループ   TextBox2.Text ← Max TextBox3.Text ← Min 1 End

18 i = 1 ~ 9 TextBox2.Text ← Max TextBox3.Text ← Min Start
最大値 最小値 Start Max = TextBox1.Lines(0) Min = TextBox1.Lines(0)  For i= 1 to 9 IF Max < TextBox1.Lines(i) Then Max = TextBox1.Lines(i) End If IF Min > TextBox1.Lines(i) Then Min = TextBox1.Lines(i) Next i TextBox2.Text = Max TextBox3.Text = Min Max←TextBox1.Lines(0) Min←TextBox1.Lines(0) ループ i =  1 ~ 9 成立 Max < TextBox1.Lines(i) 不成立 Max←TextBox1.Lines(i) 成立 Min > TextBox1.Lines(i) 不成立 Min←TextBox1.Lines(i)    ループ   TextBox2.Text ← Max TextBox3.Text ← Min End

19 各基本構造の処理の部分に3つの基本構造のいずれかを入れてよい。
プログラムの3つの基本構造 処理1 条件 成立 ループ  条件  不成立 処理 処理2 処理2 処理1 ループ 順次構造 選択構造 繰り返し構造 各基本構造の処理の部分に3つの基本構造のいずれかを入れてよい。

20 階層構造 条件 条件 処理2 処理1 ループ 条件 処理2 処理3 ループ ループ 条件 処理 ループ 選択構造
成立 不成立 条件 成立 処理2 処理1 不成立 ループ  条件  処理2 選択構造 処理3 ループ ループ  条件  処理 選択構造の中に繰り返し構造が入った形 ループ 繰り返し構造

21 階層構造 ループ ループ 条件 条件 処理 条件 ループ 処理2 処理1 条件 ループ 処理2 処理1 繰り返し構造
 条件   条件  処理 条件 成立 ループ 不成立 処理2 処理1 繰り返し構造 条件 成立 ループ 不成立 繰り返し構造の中に選択構造が入った形 処理2 処理1 選択構造

22 構造化されていないアルゴリズム JISフローチャートだと構造化されてないアルゴリズムも記述できてしまう。 条件A 処理1 処理2 条件B
成立 条件A 不成立 処理1 処理2 成立 条件B 不成立 処理4 処理3 JISフローチャートだと構造化されてないアルゴリズムも記述できてしまう。

23 構造化されていないプログラムを構造化する
成立 成立 条件A 条件A 処理234 処理13 不成立 不成立 処理1 処理1 処理2 処理2 処理34 処理3 成立 条件B 条件B 成立 不成立 不成立 処理4 処理3 処理4 処理3 Visual Basic は、構造化されていないプログラムを書くのは難しい。 アルゴリズムを構造化すると プログラムの保守性が増す。

24 構造化チャート ○順次構造、選択構造、繰り返し構造の3構造のみを記述できる。 ○プログラムの構造を把握しやすい。
 ○順次構造、選択構造、繰り返し構造の3構造のみを記述できる。  ○プログラムの構造を把握しやすい。      縦軸は処理の流れを、横方向は制御の主従関係を表す。  NSチャート (アメリカ)  PAD (日立)  HCP(NTT)  SPD(NEC)  YACⅡ(富士通)  HIPO(アメリカ IBM) 

25 PAD ループ ループ 処理1 条件 条件 処理 処理 処理2 処理2 処理1 条件 ループ ループ 処理1 処理1 条件 処理 条件 処理
成立  条件  不成立 処理 処理 処理2 処理2 処理1  条件  ループ ループ 繰り返し構造(前判定) 繰り返し構造(後判定) 順次構造 選択構造 処理1 処理1 条件 処理 条件 処理 条件 処理2 処理2

26 選択構造 A>=60 不合格と表示 合格と表示
もし、Aが60以上ならTextBox1に“合格” 、そうでないなら、“不合格” と表示する。 不合格と表示 合格と表示 A>=60 Start 成立 IF A>=60 Then   TextBox1.text=“合格” Else   TextBox1.text=“不合格” End If A>=60 不成立 不合格と表示 合格と表示 End

27 回数を指定しての繰り返し ループ i=1~10 処理1 処理1 ループ 処理1を10回実行する Start For i = 1 To 10
  処理1 Next i i=1~10 i=1~10 処理1 処理1 ループ End

28 回数を指定しての繰り返し s ← 0 s ← 0 ループ i=1~10 s ← s + i TextBox1.Text ← s ループ
Start s = 0 For i = 1 To 10   s = s + i Next i TextBox1.Text = s s ← 0 s ← 0 ループ i=1~10 s ← s + i i=1~10 s ← s + i TextBox1.Text ← s ループ TextBox1.Text ← s End

29 条件を指定しての繰り返し x = 0 x ← 0 Do Until x^2 > 100 x← 0 x = x + 1 ループ
Start x = 0 Do Until x^2 > 100   x = x + 1 Loop TextBox1.Text = x x ← 0 x← 0 ループ x2 > 100 が成立するまで x2 > 100  が 成立するまで x ← x + 1 x← x + 1 ループ TextBox1.Text ← x TextBox1.Text ← x End

30 Max < TextBox1.Lines(i)
最大値 ループ    ループ   Max←TextBox1.Lines(0) Start End TextBox2.Text ← Max i =  1 ~ 9 Max < TextBox1.Lines(i) Max←TextBox1.Lines(i) 不成立 成立 Max = TextBox1.Lines(0) For i= 1 to 9  IF Max < TextBox1.Lines(i) Then   Max = TextBox1.Lines(i)   End IF Next  i TextBox2.Text = Max Max←TextBox1.Lines(0) Max←TextBox1.Lines(i) i=1~9 Max < TextBox1.Lines(i) TextBox2.Text ← Max

31 i = 1 ~ 9 TextBox2.Text ← Max TextBox3.Text ← Min Start
最大値 最小値 Start Max = TextBox1.Lines(0) Min = TextBox1.Lines(0)  For i= 1 to 9 IF Max < TextBox1.Lines(i) Then Max = TextBox1.Lines(i) End IF IF Min > TextBox1.Lines(i) Then Min = TextBox1.Lines(i) Next  i TextBox2.Text = Max TextBox3.Text = Min Max←TextBox1.Lines(0) Min←TextBox1.Lines(0) ループ i =  1 ~ 9 成立 Max < TextBox1.Lines(i) 不成立 Max←TextBox1.Lines(i) 成立 Min > TextBox1.Lines(i) 不成立 Min←TextBox1.Lines(i)    ループ   TextBox2.Text ← Max TextBox3.Text ← Min End

32 Max < TextBox1.Lines(i) Max←TextBox1.Lines(0)
最大値 最小値 Max←TextBox1.Lines(i) i=1~9 Min←TextBox1.Lines(0) TextBox2.Text ← Max Max < TextBox1.Lines(i) Max←TextBox1.Lines(0) TextBox3.Text ← Min Min←TextBox1.Lines(i) Min > TextBox1.Lines(i) Max = TextBox1.Lines(0) Min = TextBox1.Lines(0)  For i= 1 to 9   IF Max < TextBox1.Lines(i) Then     Max = TextBox1.Lines(i)   End IF   IF Min > TextBox1.Lines(i) Then     Min = TextBox1.Lines(i) Next i TextBox2.Text = Max TextBox3.Text = Min プログラムのインデント(字下げ)とPADの列が同じ. インデント,PADの列は制御の主従関係を表す. <左が命令をする側><右が命令をされる側>


Download ppt "プログラムの基本構造と 構造化チャート(PAD)"

Similar presentations


Ads by Google