การออกแบบโปรแกรมอย่างมีโครงสร้าง...
DESCRIPTION
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design. SCC : Suthida Chaichomchuen [email protected]. Structured Design. มักใช้ในงานที่มีความซับซ้อนมาก วัตถุประสงค์เพื่อลดความยาวของผังงาน หรือซูโดโค้ดที่มีความยาวมาก - PowerPoint PPT PresentationTRANSCRIPT
2
Structured Design
ม�กใช้�ในงานที่ �ม ความซั�บซั�อนมาก ว�ตถุ�ประสงค�เพื่!�อลดความย่าวของผั�งงาน หร!อ
ซั'โดโค�ดที่ �ม ความย่าวมาก ใช้�หล�กการแบ�งงานออกเป(นส�วนหล�ก ๆ จาก
น�+นจ,งแบ�งส�วนหล�กออกเป(นย่�อย่ ๆ ลงไปอ กช้�+นหน,�ง
3
Structured Design
งานย่�อย่ในข�+นส�ดที่�าย่ที่ �ได�จะเร ย่กว�า ป.ญหา ย่�อย่ หร!อม ช้!�อที่��วไปค!อ
– งานย่�อย่ (subtask)– ฟั.งก�ช้� �น (function)– โมด'ล (module)
4
- Top Down Design
เป(นการออกแบบโปรแกรมแบบโครงสร�างช้น2ดหน,�ง
ใช้�หล�กการของการแบ�งป.ญหาออกเป(นส�วน หล�ก ๆ แล�วจ,งแย่กออกเป(นโมด'ลย่�อย่ ๆ อ ก
คร�+ง ม ข� +นตอนการออกแบบ 6 ข�+นตอน
5
การออกแบบเป(นโมด'ล
……………..……………..Call SubA
……………..……………..
……………..……………..
Return
โปรแกรมหล�กSubA
6
การออกแบบเป(นโมด'ล
……………..……………..Call subX
……………..……………..Call subY
……………..
……………..Call subX1
Return
โปรแกรมหล�ก SubX
……………..……………..
Return
SubY
……………..……………..
Return
SubX1
7
- Top Down Design
ม ข� +นตอนการออกแบบ 6 ข�+นตอน 1. ก3าหนดป.ญหา
2. แบ�งส�วนของงานออกเป(นงานย่�อย่ 3. เข ย่นแผันภาพื่ล3าด�บช้�+น 4. ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด 5. พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
6. ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�
8
1. ก3าหนดป.ญหา
โดย่การแบ�งป.ญหาออกเป(น 3 ส�วน– ส�วนการร�บข�อม'ล– ส�วนการประมวลผัล– ส�วนการแสดงผัลล�พื่ธ์�
9
2. แบ�งส�วนของงานออกเป(นงานย่�อย่
น3าส�วนงานหล�กแต�ละส�วนออกเป(นงานย่�อย่ หร!อที่ �เร ย่กว�า โมด'ล
แต�ละโมด'ลจะถุ'กก3าหนดข,+นมาเพื่!�อให�ที่3างาน เฉพื่าะอย่�าง และถุ!อเป(นส�วนหน,�งของงานหล�ก
10
3. เข ย่นแผันภาพื่ล3าด�บช้�+น
เข ย่นแผันภาพื่แบบล3าด�บช้�+น (Hierarchy chart) เพื่!�อให�เห8นถุ,งโครงสร�างรวมของโปรแกรม
เพื่!�อแสดงถุ,งความส�มพื่�นธ์�ของโมด'ลหล�กก�บโมด'ลย่�อย่
11
4. ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด
ก3าหนดอ�ลกอร2ที่,มของโมด'ลหล�กในร'ปของซั'โดโค�ด
บางคร�+งอาจต�องม การก3าหนดค�าเร2�มต�นของ ต�วแปร หร!องานบางอย่�างก�อนที่ �จะเข�าข� +นตอน
การวนซั3+า หร!อหล�งจากออกจากข�+นตอนการวนซั3+า
12
5. พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
พื่�ฒนาซั'โดโค�ดของที่�กโมด'ลย่�อย่ที่ �อย่'�ในแผันภาพื่ล3าด�บช้�+น
การพื่�ฒนาซั'โดโค�ดจะเสร8จส2+นลงได� ถุ�าเข ย่นซั'โดโค�ดที่�กโมด'ลได�ส3าเร8จ
13
6. ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�
ก3าหนดต�วอย่�างช้�ดข�อม'ล และน3าไปแที่นค�าต�ว แปรในอ�ลกอร2ที่,ม เพื่!�อตรวจสอบความถุ'กต�อง
ในระด�บแรกก�อนที่ �จะพื่�ฒนาเป(นโปรแกรมต�อไป
14
โครงสร�างการแก�ป.ญหาการหาพื่!+นที่ �วงกลม
ป.ญหาพื่!+นที่ �วงกลม
แสดงผัลค3านวณพื่!+นที่ �ร �บข�อม'ล
ร�ศม พื่!+นที่ �=พื่าย่*ร�ศม พื่!+นที่ �วงกลมร�ศม
จงสร�างโปรแกรมค3านวณพื่!+นที่ �วงกลม โดย่ร�บค�าร�ศม จากแป;นพื่2มพื่� และแสดงค�าพื่!+นที่ �ออกที่างจอภาพื่
15
ข�อด ของ Top-Down Design
ที่3าให�การว2เคราะห�และที่3าความเข�าใจในป.ญหาง�าย่ข,+น
การปร�บปร�งแก�ไขโปรแกรมที่3าได�ง�าย่ เพื่ ย่งแก�ไขที่ �โมด'ลเที่�าน�+น
ที่ดสอบว2ธ์ แก�ป.ญหาได�ง�าย่
16
ต�วอย่�างที่ �1
จงออกแบบอ�ลกอร2ที่,มให�แสดงข�อความพื่ร�อม ที่ �จะร�บอ�กษรสามต�ว และเร ย่งล3าด�บอ�กษรสาม
ต�วน�+นจากน�อย่ไปหามาก แล�วแสดงผัลการ เร ย่งล3าด�บบนจอภาพื่และรอร�บอ�กษรช้�ดใหม�
ที่3าเช้�นน +เร!�อย่ไปจนกว�าช้�ดอ�กษรที่ �เข�ามาม ค�า เป(น ‘xxx’ จ,งเล2กการที่3างาน
17
ว2ธ์ ที่3า : ก3าหนดป.ญหา
ส�วนที่ � 1 ร�บต�วอ�กษร ส�วนที่ � 2 เร ย่งล3าด�บต�วอ�กษร ส�วนที่ � 3 แสดงผัลการเร ย่งล3าด�บ
18
ว2ธ์ ที่3า : แบ�งส�วนของงานออกเป(นงานย่�อย่
ส�วนที่ � 1 ร�บต�วอ�กษร– ร�บต�วอ�กษรต�วที่ 1 2, และ3– ‘ตรวจสอบว�าแต�ละต�วเป(น x’ หร!อไม�– วนร�บจนจบเง!�อนไข
19
แบ�งส�วนของงานออกเป(นงานย่�อย่
ส�วนที่ � 2 เร ย่งล3าด�บต�วอ�กษร– เปร ย่บเที่ ย่บต�วที่ � 1 ก�บต�วที่ �2– เปร ย่บเที่ ย่บต�วที่ � 2 ก�บต�วที่ �3– เปร ย่บเที่ ย่บต�วที่ � 1 ก�บต�วที่ � 2 ซั3+า
ส�วนที่ � 3 แสดงผัลการเร ย่งล3าด�บ– แสดงผัลต�วอ�กษรที่ � 1 2, และ3
20
ว2ธ์ ที่3า : เข ย่นแผันภาพื่ล3าด�บช้�+น
ป.ญหาเร ย่งต�วอ�กษร
แสดงต�วอ�กษรจ�ดเร ย่งจากน�อย่ไปมากร�บต�วอ�กษร
เปร ย่บเที่ ย่บ ก�บ ‘xxx’
จ�บค'�ต�วอ�กษรเปร ย่บเที่ ย่บ
21
ว2ธ์ ที่3า : ก3าหนดโมด'ลหล�กในร'ปของซั'โดโค�ด
Begin– Call Input_Characters– Call Sort_Characters– Call Output_Characters
End
22
ว2ธ์ ที่3า : พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
Call Input_CharactersRead char1, char2, char3While (char1<>‘x’) AND (char2<>‘x’) AND (char3<>‘x’) DO. . .ENDDO
23
พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
Call Sort_Characters IF (char1>char2) THEN
temp=char1char1=char2char2=temp
ENDIF
24
พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
IF (char2>char3) THENtemp=char2char2=char3char3=temp
ENDIF
25
พื่�ฒนาซั'โดโค�ดของที่�กโมด'ล
Call Output_Characters 1 2 3Write char , char , char
26
ว2ธ์ ที่3า : ตรวจสอบผัลของอ�ลกอร2ที่,มที่ �ได�
‘ป;อนช้�ดต�วอ�กษรเช้�น x’ ‘a’ ‘m’– ส�งเกตว�าผัลที่ �ได�ค!อ amx หร!อไม�?
‘ป;อนช้�ดต�วอ�กษรเช้�น x’ ‘x’ ‘x’– ส�งเกตว�าจบการที่3างานหร!อไม�?
27
ต�วอย่�างที่ �2
จงออกแบบอ�ลกอร2ที่,มส3าหร�บอ�านรห�ส พื่น�กงาน อ�ตราการจ�าย่เง2นเด!อน จ3านวนช้��วโมง
การที่3างานในหน,�งส�ปดาห� แล�วค3านวณราย่ได� ของพื่น�กงานคนน�+น เพื่!�อแสดงออกมาบน
จอภาพื่ตามเง!�อนไขที่ �ก3าหนด แล�วรอร�บข�อม'ล ของพื่น�กงานคนต�อไป จนกระที่��งหมดข�อม'ล
28
ต�วอย่�างที่ � 2 : เง!�อนไข1
พื่น�กงานที่�กคนต�องม ช้� �วโมงการที่3างานน�อย่ กว�าหร!อเที่�าก�บ 60 ช้��วโมง
ถุ�าม จ3านวนช้��วโมงการที่3างานมากกว�า 60
ให�พื่2มพื่�ข�อความ‘Hours worked exceeds limit of 60’
29
ต�วอย่�างที่ � 2 : เง!�อนไข2
อ�ตราการจ�าย่เง2นมากที่ �ส�ดช้��วโมงละ 125
บาที่ ถุ�าม อ�ตราการจ�าย่เง2นมากกว�า 125 บาที่
ต�อช้��วโมง ให�พื่2มพื่�ข�อความ‘Pay rate exceeds 125 baht’
30
ต�วอย่�างที่ � 2 : เง!�อนไข3
ถุ�าม จ3านวนช้��วโมงการที่3างานมากกว�า 35
ช้��วโมง ส�วนที่ �เหล!อค2ดเป(น การที่3างานล�วงเวลา ค3านวณอ�ตราการที่3างานล�วงเวลาเป(น 15.
เที่�าของอ�ตราปกต2