ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยPhannee Kadesadayurat ได้เปลี่ยน 10 ปีที่แล้ว
1
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
SCC : Suthida Chaichomchuen
2
Structured Design มักใช้ในงานที่มีความซับซ้อนมาก
วัตถุประสงค์เพื่อลดความยาวของผังงาน หรือซูโดโค้ดที่มีความยาวมาก ใช้หลักการแบ่งงานออกเป็นส่วนหลัก ๆ จากนั้นจึงแบ่งส่วนหลักออกเป็นย่อย ๆ ลงไปอีกชั้นหนึ่ง
3
Structured Design งานย่อยในขั้นสุดท้ายที่ได้จะเรียกว่า ปัญหา ย่อย หรือมีชื่อทั่วไปคือ งานย่อย (subtask) ฟังก์ชั่น (function) โมดูล (module)
4
Top-Down Design เป็นการออกแบบโปรแกรมแบบโครงสร้างชนิดหนึ่ง
ใช้หลักการของการแบ่งปัญหาออกเป็นส่วนหลัก ๆ แล้วจึงแยกออกเป็นโมดูลย่อย ๆ อีกครั้ง มีขั้นตอนการออกแบบ 6 ขั้นตอน
5
การออกแบบเป็นโมดูล …………….. Call SubA Return โปรแกรมหลัก SubA
6
การออกแบบเป็นโมดูล …………….. Call subX Call subY Call subX1 Return
โปรแกรมหลัก SubX SubY SubX1
7
Top-Down Design มีขั้นตอนการออกแบบ 6 ขั้นตอน 1. กำหนดปัญหา
2. แบ่งส่วนของงานออกเป็นงานย่อย 3. เขียนแผนภาพลำดับชั้น 4. กำหนดโมดูลหลักในรูปของซูโดโค้ด 5. พัฒนาซูโดโค้ดของทุกโมดูล 6. ตรวจสอบผลของอัลกอริทึมที่ได้
8
1. กำหนดปัญหา โดยการแบ่งปัญหาออกเป็น 3 ส่วน ส่วนการรับข้อมูล
ส่วนการประมวลผล ส่วนการแสดงผลลัพธ์
9
2. แบ่งส่วนของงานออกเป็นงานย่อย
นำส่วนงานหลักแต่ละส่วนออกเป็นงานย่อย หรือที่เรียกว่า โมดูล แต่ละโมดูลจะถูกกำหนดขึ้นมาเพื่อให้ทำงานเฉพาะอย่าง และถือเป็นส่วนหนึ่งของงานหลัก
10
3. เขียนแผนภาพลำดับชั้น
เขียนแผนภาพแบบลำดับชั้น (Hierarchy chart) เพื่อให้เห็นถึงโครงสร้างรวมของโปรแกรม เพื่อแสดงถึงความสัมพันธ์ของโมดูลหลักกับโมดูลย่อย
11
4. กำหนดโมดูลหลักในรูปของซูโดโค้ด
กำหนดอัลกอริทึมของโมดูลหลักในรูปของซูโดโค้ด บางครั้งอาจต้องมีการกำหนดค่าเริ่มต้นของตัวแปร หรืองานบางอย่างก่อนที่จะเข้าขั้นตอนการวนซ้ำ หรือหลังจากออกจากขั้นตอนการวนซ้ำ
12
5. พัฒนาซูโดโค้ดของทุกโมดูล
พัฒนาซูโดโค้ดของทุกโมดูลย่อยที่อยู่ในแผนภาพลำดับชั้น การพัฒนาซูโดโค้ดจะเสร็จสิ้นลงได้ ถ้าเขียนซูโดโค้ดทุกโมดูลได้สำเร็จ
13
6. ตรวจสอบผลของอัลกอริทึมที่ได้
กำหนดตัวอย่างชุดข้อมูล และนำไปแทนค่าตัวแปรในอัลกอริทึม เพื่อตรวจสอบความถูกต้องในระดับแรกก่อนที่จะพัฒนาเป็นโปรแกรมต่อไป
14
โครงสร้างการแก้ปัญหาการหาพื้นที่วงกลม
จงสร้างโปรแกรมคำนวณพื้นที่วงกลม โดยรับค่ารัศมีจากแป้นพิมพ์ และแสดงค่าพื้นที่ออกทางจอภาพ ปัญหาพื้นที่วงกลม แสดงผล คำนวณพื้นที่ รับข้อมูล รัศมี พื้นที่=พาย*รัศมี พื้นที่วงกลม
15
ข้อดีของ Top-Down Design
ทำให้การวิเคราะห์และทำความเข้าใจในปัญหาง่ายขึ้น การปรับปรุงแก้ไขโปรแกรมทำได้ง่าย เพียงแก้ไขที่โมดูลเท่านั้น ทดสอบวิธีแก้ปัญหาได้ง่าย
16
ตัวอย่างที่ 1 จงออกแบบอัลกอริทึมให้แสดงข้อความพร้อมที่จะรับอักษรสามตัว และเรียงลำดับอักษรสามตัวนั้นจากน้อยไปหามาก แล้วแสดงผลการเรียงลำดับบนจอภาพและรอรับอักษรชุดใหม่ ทำเช่นนี้เรื่อยไปจนกว่าชุดอักษรที่เข้ามามีค่าเป็น ‘xxx’ จึงเลิกการทำงาน
17
วิธีทำ : กำหนดปัญหา ส่วนที่ 1 รับตัวอักษร ส่วนที่ 2 เรียงลำดับตัวอักษร
ส่วนที่ 3 แสดงผลการเรียงลำดับ
18
วิธีทำ : แบ่งส่วนของงานออกเป็นงานย่อย
ส่วนที่ 1 รับตัวอักษร รับตัวอักษรตัวที 1, 2 และ 3 ตรวจสอบว่าแต่ละตัวเป็น ‘x’ หรือไม่ วนรับจนจบเงื่อนไข
19
แบ่งส่วนของงานออกเป็นงานย่อย
ส่วนที่ 2 เรียงลำดับตัวอักษร เปรียบเทียบตัวที่ 1 กับตัวที่ 2 เปรียบเทียบตัวที่ 2 กับตัวที่ 3 เปรียบเทียบตัวที่ 1 กับตัวที่ 2 ซ้ำ ส่วนที่ 3 แสดงผลการเรียงลำดับ แสดงผลตัวอักษรที่ 1, 2 และ 3
20
วิธีทำ : เขียนแผนภาพลำดับชั้น
ปัญหาเรียงตัวอักษร แสดงตัวอักษร จัดเรียงจากน้อยไปมาก รับตัวอักษร เปรียบเทียบกับ ‘xxx’ จับคู่ตัวอักษรเปรียบเทียบ
21
วิธีทำ : กำหนดโมดูลหลักในรูปของซูโดโค้ด
Begin Call Input_Characters Call Sort_Characters Call Output_Characters End
22
วิธีทำ : พัฒนาซูโดโค้ดของทุกโมดูล
Call Input_Characters Read char1, char2, char3 While (char1<>‘x’) AND (char2<>‘x’) AND (char3<>‘x’) DO . . . ENDDO
23
พัฒนาซูโดโค้ดของทุกโมดูล
Call Sort_Characters IF (char1>char2) THEN temp=char1 char1=char2 char2=temp ENDIF
24
พัฒนาซูโดโค้ดของทุกโมดูล
IF (char2>char3) THEN temp=char2 char2=char3 char3=temp ENDIF
25
พัฒนาซูโดโค้ดของทุกโมดูล
Call Output_Characters Write char1, char2, char3
26
วิธีทำ : ตรวจสอบผลของอัลกอริทึมที่ได้
ป้อนชุดตัวอักษรเช่น ‘x’ ‘a’ ‘m’ สังเกตว่าผลที่ได้คือ amx หรือไม่? ป้อนชุดตัวอักษรเช่น ‘x’ ‘x’ ‘x’ สังเกตว่าจบการทำงานหรือไม่?
27
ตัวอย่างที่ 2 จงออกแบบอัลกอริทึมสำหรับอ่านรหัสพนักงาน อัตราการจ่ายเงินเดือน จำนวนชั่วโมงการทำงานในหนึ่งสัปดาห์ แล้วคำนวณรายได้ของพนักงานคนนั้น เพื่อแสดงออกมาบนจอภาพตามเงื่อนไขที่กำหนด แล้วรอรับข้อมูลของพนักงานคนต่อไป จนกระทั่งหมดข้อมูล
28
ตัวอย่างที่ 2 : เงื่อนไข 1
พนักงานทุกคนต้องมีชั่วโมงการทำงานน้อยกว่าหรือเท่ากับ 60 ชั่วโมง ถ้ามีจำนวนชั่วโมงการทำงานมากกว่า 60 ให้พิมพ์ข้อความ ‘Hours worked exceeds limit of 60’
29
ตัวอย่างที่ 2 : เงื่อนไข 2
อัตราการจ่ายเงินมากที่สุดชั่วโมงละ 125 บาท ถ้ามีอัตราการจ่ายเงินมากกว่า 125 บาทต่อชั่วโมง ให้พิมพ์ข้อความ ‘Pay rate exceeds 125 baht’
30
ตัวอย่างที่ 2 : เงื่อนไข 3
ถ้ามีจำนวนชั่วโมงการทำงานมากกว่า 35 ชั่วโมง ส่วนที่เหลือคิดเป็น การทำงานล่วงเวลา คำนวณอัตราการทำงานล่วงเวลาเป็น 1.5 เท่าของอัตราปกติ
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.