งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design"— ใบสำเนางานนำเสนอ:

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 เท่าของอัตราปกติ


ดาวน์โหลด ppt การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design

งานนำเสนอที่คล้ายกัน


Ads by Google