การออกแบบโปรแกรมอย่างมีโครงสร้าง...

30
1 กกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกก Structured Design SCC : Suthida Chaichomchuen [email protected]

Upload: juro

Post on 06-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design. SCC : Suthida Chaichomchuen [email protected]. Structured Design. มักใช้ในงานที่มีความซับซ้อนมาก วัตถุประสงค์เพื่อลดความยาวของผังงาน หรือซูโดโค้ดที่มีความยาวมาก - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

1

การออกแบบโปรแกรมอย่�างม โครงสร�างStructured Design

SCC : Suthida [email protected]

Page 2: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

2

Structured Design

ม�กใช้�ในงานที่ �ม ความซั�บซั�อนมาก ว�ตถุ�ประสงค�เพื่!�อลดความย่าวของผั�งงาน หร!อ

ซั'โดโค�ดที่ �ม ความย่าวมาก ใช้�หล�กการแบ�งงานออกเป(นส�วนหล�ก ๆ จาก

น�+นจ,งแบ�งส�วนหล�กออกเป(นย่�อย่ ๆ ลงไปอ กช้�+นหน,�ง

Page 3: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

3

Structured Design

งานย่�อย่ในข�+นส�ดที่�าย่ที่ �ได�จะเร ย่กว�า ป.ญหา ย่�อย่ หร!อม ช้!�อที่��วไปค!อ

– งานย่�อย่ (subtask)– ฟั.งก�ช้� �น (function)– โมด'ล (module)

Page 4: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

4

- Top Down Design

เป(นการออกแบบโปรแกรมแบบโครงสร�างช้น2ดหน,�ง

ใช้�หล�กการของการแบ�งป.ญหาออกเป(นส�วน หล�ก ๆ แล�วจ,งแย่กออกเป(นโมด'ลย่�อย่ ๆ อ ก

คร�+ง ม ข� +นตอนการออกแบบ 6 ข�+นตอน

Page 5: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

5

การออกแบบเป(นโมด'ล

……………..……………..Call SubA

……………..……………..

……………..……………..

Return

โปรแกรมหล�กSubA

Page 6: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

6

การออกแบบเป(นโมด'ล

……………..……………..Call subX

……………..……………..Call subY

……………..

……………..Call subX1

Return

โปรแกรมหล�ก SubX

……………..……………..

Return

SubY

……………..……………..

Return

SubX1

Page 7: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

7

- Top Down Design

ม ข� +นตอนการออกแบบ 6 ข�+นตอน 1. ก3าหนดป.ญหา

2. แบ�งส�วนของงานออกเป(นงานย่�อย่ 3. เข ย่นแผันภาพื่ล3าด�บช้�+น 4. ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด 5. พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

6. ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�

Page 8: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

8

1. ก3าหนดป.ญหา

โดย่การแบ�งป.ญหาออกเป(น 3 ส�วน– ส�วนการร�บข�อม'ล– ส�วนการประมวลผัล– ส�วนการแสดงผัลล�พื่ธ์�

Page 9: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

9

2. แบ�งส�วนของงานออกเป(นงานย่�อย่

น3าส�วนงานหล�กแต�ละส�วนออกเป(นงานย่�อย่ หร!อที่ �เร ย่กว�า โมด'ล

แต�ละโมด'ลจะถุ'กก3าหนดข,+นมาเพื่!�อให�ที่3างาน เฉพื่าะอย่�าง และถุ!อเป(นส�วนหน,�งของงานหล�ก

Page 10: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

10

3. เข ย่นแผันภาพื่ล3าด�บช้�+น

เข ย่นแผันภาพื่แบบล3าด�บช้�+น (Hierarchy chart) เพื่!�อให�เห8นถุ,งโครงสร�างรวมของโปรแกรม

เพื่!�อแสดงถุ,งความส�มพื่�นธ์�ของโมด'ลหล�กก�บโมด'ลย่�อย่

Page 11: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

11

4. ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด

ก3าหนดอ�ลกอร2ที่,มของโมด'ลหล�กในร'ปของซั'โดโค�ด

บางคร�+งอาจต�องม การก3าหนดค�าเร2�มต�นของ ต�วแปร หร!องานบางอย่�างก�อนที่ �จะเข�าข� +นตอน

การวนซั3+า หร!อหล�งจากออกจากข�+นตอนการวนซั3+า

Page 12: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

12

5. พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

พื่�ฒนาซั'โดโค�ดของที่�กโมด'ลย่�อย่ที่ �อย่'�ในแผันภาพื่ล3าด�บช้�+น

การพื่�ฒนาซั'โดโค�ดจะเสร8จส2+นลงได� ถุ�าเข ย่นซั'โดโค�ดที่�กโมด'ลได�ส3าเร8จ

Page 13: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

13

6. ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�

ก3าหนดต�วอย่�างช้�ดข�อม'ล และน3าไปแที่นค�าต�ว แปรในอ�ลกอร2ที่,ม เพื่!�อตรวจสอบความถุ'กต�อง

ในระด�บแรกก�อนที่ �จะพื่�ฒนาเป(นโปรแกรมต�อไป

Page 14: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

14

โครงสร�างการแก�ป.ญหาการหาพื่!+นที่ �วงกลม

ป.ญหาพื่!+นที่ �วงกลม

แสดงผัลค3านวณพื่!+นที่ �ร �บข�อม'ล

ร�ศม พื่!+นที่ �=พื่าย่*ร�ศม พื่!+นที่ �วงกลมร�ศม

จงสร�างโปรแกรมค3านวณพื่!+นที่ �วงกลม โดย่ร�บค�าร�ศม จากแป;นพื่2มพื่� และแสดงค�าพื่!+นที่ �ออกที่างจอภาพื่

Page 15: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

15

ข�อด ของ Top-Down Design

ที่3าให�การว2เคราะห�และที่3าความเข�าใจในป.ญหาง�าย่ข,+น

การปร�บปร�งแก�ไขโปรแกรมที่3าได�ง�าย่ เพื่ ย่งแก�ไขที่ �โมด'ลเที่�าน�+น

ที่ดสอบว2ธ์ แก�ป.ญหาได�ง�าย่

Page 16: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

16

ต�วอย่�างที่ �1

จงออกแบบอ�ลกอร2ที่,มให�แสดงข�อความพื่ร�อม ที่ �จะร�บอ�กษรสามต�ว และเร ย่งล3าด�บอ�กษรสาม

ต�วน�+นจากน�อย่ไปหามาก แล�วแสดงผัลการ เร ย่งล3าด�บบนจอภาพื่และรอร�บอ�กษรช้�ดใหม�

ที่3าเช้�นน +เร!�อย่ไปจนกว�าช้�ดอ�กษรที่ �เข�ามาม ค�า เป(น ‘xxx’ จ,งเล2กการที่3างาน

Page 17: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

17

ว2ธ์ ที่3า : ก3าหนดป.ญหา

ส�วนที่ � 1 ร�บต�วอ�กษร ส�วนที่ � 2 เร ย่งล3าด�บต�วอ�กษร ส�วนที่ � 3 แสดงผัลการเร ย่งล3าด�บ

Page 18: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

18

ว2ธ์ ที่3า : แบ�งส�วนของงานออกเป(นงานย่�อย่

ส�วนที่ � 1 ร�บต�วอ�กษร– ร�บต�วอ�กษรต�วที่ 1 2, และ3– ‘ตรวจสอบว�าแต�ละต�วเป(น x’ หร!อไม�– วนร�บจนจบเง!�อนไข

Page 19: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

19

แบ�งส�วนของงานออกเป(นงานย่�อย่

ส�วนที่ � 2 เร ย่งล3าด�บต�วอ�กษร– เปร ย่บเที่ ย่บต�วที่ � 1 ก�บต�วที่ �2– เปร ย่บเที่ ย่บต�วที่ � 2 ก�บต�วที่ �3– เปร ย่บเที่ ย่บต�วที่ � 1 ก�บต�วที่ � 2 ซั3+า

ส�วนที่ � 3 แสดงผัลการเร ย่งล3าด�บ– แสดงผัลต�วอ�กษรที่ � 1 2, และ3

Page 20: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

20

ว2ธ์ ที่3า : เข ย่นแผันภาพื่ล3าด�บช้�+น

ป.ญหาเร ย่งต�วอ�กษร

แสดงต�วอ�กษรจ�ดเร ย่งจากน�อย่ไปมากร�บต�วอ�กษร

เปร ย่บเที่ ย่บ ก�บ ‘xxx’

จ�บค'�ต�วอ�กษรเปร ย่บเที่ ย่บ

Page 21: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

21

ว2ธ์ ที่3า : ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด

Begin– Call Input_Characters– Call Sort_Characters– Call Output_Characters

End

Page 22: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

22

ว2ธ์ ที่3า : พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

Call Input_CharactersRead char1, char2, char3While (char1<>‘x’) AND (char2<>‘x’) AND (char3<>‘x’) DO. . .ENDDO

Page 23: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

23

พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

Call Sort_Characters IF (char1>char2) THEN

temp=char1char1=char2char2=temp

ENDIF

Page 24: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

24

พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

IF (char2>char3) THENtemp=char2char2=char3char3=temp

ENDIF

Page 25: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

25

พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล

Call Output_Characters 1 2 3Write char , char , char

Page 26: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

26

ว2ธ์ ที่3า : ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�

‘ป;อนช้�ดต�วอ�กษรเช้�น x’ ‘a’ ‘m’– ส�งเกตว�าผัลที่ �ได�ค!อ amx หร!อไม�?

‘ป;อนช้�ดต�วอ�กษรเช้�น x’ ‘x’ ‘x’– ส�งเกตว�าจบการที่3างานหร!อไม�?

Page 27: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

27

ต�วอย่�างที่ �2

จงออกแบบอ�ลกอร2ที่,มส3าหร�บอ�านรห�ส พื่น�กงาน อ�ตราการจ�าย่เง2นเด!อน จ3านวนช้��วโมง

การที่3างานในหน,�งส�ปดาห� แล�วค3านวณราย่ได� ของพื่น�กงานคนน�+น เพื่!�อแสดงออกมาบน

จอภาพื่ตามเง!�อนไขที่ �ก3าหนด แล�วรอร�บข�อม'ล ของพื่น�กงานคนต�อไป จนกระที่��งหมดข�อม'ล

Page 28: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

28

ต�วอย่�างที่ � 2 : เง!�อนไข1

พื่น�กงานที่�กคนต�องม ช้� �วโมงการที่3างานน�อย่ กว�าหร!อเที่�าก�บ 60 ช้��วโมง

ถุ�าม จ3านวนช้��วโมงการที่3างานมากกว�า 60

ให�พื่2มพื่�ข�อความ‘Hours worked exceeds limit of 60’

Page 29: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

29

ต�วอย่�างที่ � 2 : เง!�อนไข2

อ�ตราการจ�าย่เง2นมากที่ �ส�ดช้��วโมงละ 125

บาที่ ถุ�าม อ�ตราการจ�าย่เง2นมากกว�า 125 บาที่

ต�อช้��วโมง ให�พื่2มพื่�ข�อความ‘Pay rate exceeds 125 baht’

Page 30: การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

30

ต�วอย่�างที่ � 2 : เง!�อนไข3

ถุ�าม จ3านวนช้��วโมงการที่3างานมากกว�า 35

ช้��วโมง ส�วนที่ �เหล!อค2ดเป(น การที่3างานล�วงเวลา ค3านวณอ�ตราการที่3างานล�วงเวลาเป(น 15.

เที่�าของอ�ตราปกต2