32
1 プププププププププププ プププププププPAD)

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

Embed Size (px)

DESCRIPTION

プログラムの基本構造と 構造化チャート( PAD). 復習. プログラムの3つの基本構造. 成立. 条件. ループ. 処理1.  条件 . 不成立. 処理. 処理2. 処理2. 処理1. ループ. 順次構造. 選択構造. 繰り返し構造. IF  条件  Then   処理1 Else   処理2 End If. 成立. 条件. 選択構造. 不成立. 処理2. 処理1. 成立. 条件. IF  条件  Then   処理1 End If. 不成立. 処理1. - PowerPoint PPT Presentation

Citation preview

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

1

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

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

2

復習

• プログラムの3つの基本構造

条件

処理2 処理1

成立

不成立

処理

ループ  条 件 

ループ

処理2

処理1

順次構造 選択構造 繰り返し構造

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

3

条件

処理2 処理1

成立

不成立

IF  条件  Then

  処理1

Else

  処理2

End If

条件

処理1

成立

不成立

IF  条件  Then

  処理1

End If

• 選択構造

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

• 選択構造

4

A>=60

不 合 格 と 表示

合 格 と 表示

成立

不成立

もし、 A が 60 以上なら TextBox1 に“合格” 、そうでないなら、 “不合格” と表示する。

IF   A>=60   Then

    TextBox1.text=“ 合格”

Else

   TextBox1.text=“ 不合格”

End If

Start

End

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

5

• 繰り返し構造

  回数を指定しての繰り返し   For   Next  文を使う

  条件を指定しての繰り返し   Do   Loop  文を使う

  前判定の繰り返し

  後判定の繰り返し

処理

ループ  条 件 

ループ

前判定

処理

ループ

ループ

後判定

  条 件 

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

6

• 回数を指定しての繰り返し処理

処理

ループ変数 = 初期値~最終値

ループ

For  変数 = 初期値  To  最

終値

  処理

Next  変数

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

7

• 回数を指定しての繰り返し

処理1

ループi = 1 ~10

ループ

For   i  =  1   To   10

  処理1

Next   i

処理1を 10 回実行する

Start

End

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

8

• 回数を指定しての繰り返し

s ← s + i

ループi = 1 ~ 10

ループ

s = 0

For   i =  1   To  

10

   s = s + i

Next   i

TextBox1.Text = s

1 から 10 までの整数の合計を計算し, TextBox1 に出力する

s ← 0

Start

End

TextBox1.Text ← s

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

9

• 回数を指定しての繰り返し

s ← s +TextBox1.Lines(i)

ループi = 0 ~ 9

ループ

s = 0

For   i   =   0   To   9

    s   =   s

+TextBox1.Lines(i)

Next   i

TextBox2.Text = s

TextBox1 に入力された 10 個のデータの合計を TextBox2 に出力する

s ← 0

Start

End

TextBox2.Text ← s

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

10

• 回数を指定しての繰り返し

s ← s +TextBox1.Lines(i)

ループi = 0 ~ 9

ループ

s = 0

For   i   =   0   To   9

    s   =   s +

TextBox1.Lines(i)

Next   i

h = s / 10

TextBox2.Text = h

TextBox1 に入力された 10 個のデータの平均を TextBox2 に出力する

s ← 0

Start

End

h ← s / 10

TextBox2.Text ← h

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

11

• 条件を指定しての繰り返し

処理

ループ  条 件 

ループ

前判定

処理

ループ

  条 件 ループ

後判定

条件

処理

不成立

成立

条件

処理

成立

不成立

条件

処理

不成立

成立 条件

処理

成立

不成立

条件が成立している間繰り返す

条件が成立するまで繰り返す

条件が成立している間繰り返す

条件が成立するまで繰り返す

判断記号を使ったループの表現 ループ端記号を使った表現

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

12

• 条件を指定しての繰り返し

処理

ループ  条 件 

ループ

前判定

処理

ループ

  条 件 ループ

後判定

Do   While  条件

  処理

Loop

Do

   処理

Loop   While   条

Do   Until  条件

  処理

Loop

Do

   処理

Loop   Until  条件

条件が成立している間繰り返す

条件が成立するまで繰り返す

条件が成立している間繰り返す

条件が成立するまで繰り返す

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

13

• 条件を指定しての繰り返し

x← x + 1

ループ

ループ

x = 1

Do   Until   x^2   >   100

   x   =   x   +   1

Loop

TextBox1.Text = x

整数 x の2乗が 100 を超える最小の x を求めよ.

x ← 1

Start

End

TextBox1.Text ← x

x2 > 100 が成立するまで

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

14

TextBox1 に入力された 10 個のデータの最大値を求め, Textbox2 に表示せよ.

ループ

   ループ  

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

不成立

成立

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

15

TextBox1 に入力された 10 個のデータの最小値を求め, Textbox2 に表示せよ.

ループ

   ループ  

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

不成立

成立

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

16

TextBox1 に入力された 10 個のデータの最小値を求め, Textbox2 に表示せよ.

ループ

   ループ  

Min←TextBox1.Lines(0)

Start

End

TextBox2.Text ← Min

i   =   1 ~  9

Min > TextBox1.Lines(i)

Min←TextBox1.Lines(i)

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

不成立

成立

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

17

TextBox1 に入力された 10 個のデータの最大値、最小値を求め TextBox2,3 に表示せよ.

ループ

   ループ  

Max←TextBox1.Lines(0)

Start

TextBox2.Text ← Max

i   =   1 ~  9

Max < TextBox1.Lines(i)

Max←TextBox1.Lines(i)

End1

1

ループ

   ループ  

Min←TextBox1.Lines(0)

TextBox3.Text ← Min

i   =   1 ~  9

Min > TextBox1.Lines(i)

Min←TextBox1.Lines(i)不成立

成立

不成立

成立

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

18

ループ

   ループ  

Min←TextBox1.Lines(0)

Start

TextBox2.Text ← Max

i   =   1 ~  9

Max < TextBox1.Lines(i)

Max←TextBox1.Lines(i)

End

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 I f

IF Min > TextBox1.Lines(i) Then

Min = TextBox1.Lines(i)

End I f

Next i

TextBox2.Text = Max

TextBox3.Text = Min

Max←TextBox1.Lines(0)

不成立

成立

不成立

成立

最大値

最小値

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

19

• プログラムの3つの基本構造

条件

処理2 処理1

成立

不成立

処理

ループ  条 件 

ループ

処理2

処理1

順次構造 選択構造 繰り返し構造

• 各基本構造の処理の部分に 3 つの基本構造のいずれかを入れてよい。

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

20

階層構造

条件

処理2

成立

不成立

処 理3

ループ  条 件 

ループ

選択構造の中に繰り返し構造が入った形

条件

処理2 処理1

成立

不成立

選択構造

処理

ループ  条 件 

ループ

繰り返し構造

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

21

階層構造

繰り返し構造の中に選択構造が入った形

条件

処理2 処理1

成立

不成立

選択構造

処理

ループ  条 件 

ループ

繰り返し構造

条件

処理2 処理1

成立

不成立

ループ

ループ  条 件 

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

22

• 構造化されていないアルゴリズム

条件A

処理2 処理1

成立

不成立

条件B

処理 4 処理 3

成立

不成立

• JIS フローチャートだと構造化されてないアルゴリズムも記述できてしまう。

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

23

• 構造化されていないプログラムを構造化する

条件A

処理2 処理1

成立

不成立

条件B

処理 4 処理 3

成立

不成立

条件A

処理2 処理1

成立

不成立

条件B

処理 4 処理 3

成立

不成立

処理 3

処理13処理 234

処理 34

• Visual Basic  は、構造化されていないプログラムを書くのは難しい。

• アルゴリズムを構造化すると プログラムの保守性が増す。

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

24

構造化チャート ○順次構造、選択構造、繰り返し構造の 3 構造のみを記述で

きる。 ○プログラムの構造を把握しやすい。     縦軸は処理の流れを、横方向は制御の主従関係を表

す。   NS チャート (アメリカ)  PAD  (日立)  HCP ( NTT )  SPD(NEC)

  YACⅡ (富士通)  HIPO (アメリカ  IBM ) 

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

25

PAD

条件

処理2 処理1

成立

不成立 処理

ループ  条 件 

ループ処理2

処理1

順次構造 選択構造繰り返し構造(前判定)

処理

ループ

ループ

処理2

処理1

処理2

処理1条件 処理条件 処理条件

繰り返し構造(後判定)

  条 件 

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

26

A>=60

不 合 格 と 表示

合 格 と 表示

成立

不成立

もし、 A が 60 以上なら TextBox1 に“合格” 、そうでないなら、“不合格” と表示する。

IF   A>=60   Then

    TextBox1.text=“ 合格”

Else

   TextBox1.text=“ 不合格”

End If

• 選択構造

Start

End

不 合 格 と 表示

合格と表示A>=60

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

27

• 回数を指定しての繰り返し

処理1

ループi = 1 ~10

ループ

For   i  =  1   To

  10

  処理1

Next   i

処理1を 10 回実行する

Start

End

処理 1i = 1 ~10

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

28

• 回数を指定しての繰り返し

s ← s + i

ループi = 1 ~ 10

ループ

s = 0

For   i   =   1  

To   10

   s = s + i

Next   i

TextBox1.Text = s

1 から 10 までの整数の合計を計算し, TextBox1 に出力する

s ← 0

Start

End

TextBox1.Text ← s

s ← s + ii = 1 ~ 10

s ← 0

TextBox1.Text ← s

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

29

• 条件を指定しての繰り返し

x← x + 1

ループ

ループ

x = 0

Do   Until   x^2   >

100

   x   =   x   +  

1

Loop

TextBox1.Text = x

整数 x の2乗が 100 を超える最小の x を求めよ.

x ← 0

Start

End

TextBox1.Text ← x

x2 > 100 が成立するまで x ← x + 1x2 > 100  

が成 立 す る まで

x← 0

TextBox1.Text ← x

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

30

最大値

ループ

   ループ  

Max←TextBox1.Lines(0)

Start

End

TextBox2.Text ← Max

i   =   1 ~  9

Max < TextBox1.Lines(i)

Max←TextBox1.Lines(i)不成立

成立

Max←TextBox1.Lines(i)i = 1 ~ 9

Max←TextBox1.Lines(0)

TextBox2.Text ← Max

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

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

31

ループ

   ループ  

Min←TextBox1.Lines(0)

Start

TextBox2.Text ← Max

i   =   1 ~  9

Max < TextBox1.Lines(i)

Max←TextBox1.Lines(i)

End

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)

End IF

Next   i

TextBox2.Text = Max

TextBox3.Text = Min

Max←TextBox1.Lines(0)

不成立

成立

不成立

成立

最大値

最小値

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

32

最大値

最小値

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)        End IFNext iTextBox2.Text = MaxTextBox3.Text = Min

プログラムのインデント(字下げ)と PAD の列が同じ.

インデント, PAD の列は制御の主従関係を表す.

<左が命令をする側><右が命令をされる側>