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

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

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

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


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

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

2 2 Structured Design  มักใช้ในงานที่มีความซับซ้อนมาก  วัตถุประสงค์เพื่อลดความยาวของผังงาน หรือซูโดโค้ดที่มีความยาวมาก  ใช้หลักการแบ่งงานออกเป็นส่วนหลัก ๆ จากนั้นจึงแบ่งส่วนหลักออกเป็นย่อย ๆ ลงไป อีกชั้นหนึ่ง

3 3 Structured Design  งานย่อยในขั้นสุดท้ายที่ได้จะเรียกว่า ปัญหา ย่อย หรือมีชื่อทั่วไปคือ –งานย่อย (subtask) –ฟังก์ชั่น (function) –โมดูล (module)

4 4 Top-Down Design  เป็นการออกแบบโปรแกรมแบบโครงสร้าง ชนิดหนึ่ง  ใช้หลักการของการแบ่งปัญหาออกเป็นส่วน หลัก ๆ แล้วจึงแยกออกเป็นโมดูลย่อย ๆ อีก ครั้ง  มีขั้นตอนการออกแบบ 6 ขั้นตอน

5 5 การออกแบบเป็นโมดูล …………….. Call SubA …………….. Return โปรแกรมหลัก SubA

6 6 การออกแบบเป็นโมดูล …………….. Call subX …………….. Call subY …………….. Call subX1 Return โปรแกรมหลักSubX …………….. Return SubY …………….. Return SubX1

7 7 Top-Down Design มีขั้นตอนการออกแบบ 6 ขั้นตอน 1. กำหนดปัญหา 2. แบ่งส่วนของงานออกเป็นงานย่อย 3. เขียนแผนภาพลำดับชั้น 4. กำหนดโมดูลหลักในรูปของซูโดโค้ด 5. พัฒนาซูโดโค้ดของทุกโมดูล 6. ตรวจสอบผลของอัลกอริทึมที่ได้

8 8 1. กำหนดปัญหา  โดยการแบ่งปัญหาออกเป็น 3 ส่วน –ส่วนการรับข้อมูล –ส่วนการประมวลผล –ส่วนการแสดงผลลัพธ์

9 9 2. แบ่งส่วนของงานออกเป็นงานย่อย  นำส่วนงานหลักแต่ละส่วนออกเป็นงานย่อย หรือที่เรียกว่า โมดูล  แต่ละโมดูลจะถูกกำหนดขึ้นมาเพื่อให้ทำงาน เฉพาะอย่าง และถือเป็นส่วนหนึ่งของงาน หลัก

10 10 3. เขียนแผนภาพลำดับชั้น  เขียนแผนภาพแบบลำดับชั้น (Hierarchy chart) เพื่อให้เห็นถึงโครงสร้างรวมของ โปรแกรม  เพื่อแสดงถึงความสัมพันธ์ของโมดูลหลักกับ โมดูลย่อย

11 11 4. กำหนดโมดูลหลักในรูปของซูโดโค้ด  กำหนดอัลกอริทึมของโมดูลหลักในรูปของซู โดโค้ด  บางครั้งอาจต้องมีการกำหนดค่าเริ่มต้นของตัว แปร หรืองานบางอย่างก่อนที่จะเข้าขั้นตอน การวนซ้ำ หรือหลังจากออกจากขั้นตอนการวน ซ้ำ

12 12 5. พัฒนาซูโดโค้ดของทุกโมดูล  พัฒนาซูโดโค้ดของทุกโมดูลย่อยที่อยู่ใน แผนภาพลำดับชั้น  การพัฒนาซูโดโค้ดจะเสร็จสิ้นลงได้ ถ้า เขียนซูโดโค้ดทุกโมดูลได้สำเร็จ

13 13 6. ตรวจสอบผลของอัลกอริทึมที่ได้  กำหนดตัวอย่างชุดข้อมูล และนำไปแทน ค่าตัวแปรในอัลกอริทึม เพื่อตรวจสอบความ ถูกต้องในระดับแรกก่อนที่จะพัฒนาเป็น โปรแกรมต่อไป

14 14 โครงสร้างการแก้ปัญหาการหาพื้นที่วงกลม ปัญหาพื้นที่วงกลม แสดงผลคำนวณพื้นที่รับข้อมูล รัศมี พื้นที่=พาย*รัศมี พื้นที่วงกลมรัศมี จงสร้างโปรแกรมคำนวณพื้นที่วงกลม โดยรับค่ารัศมี จากแป้นพิมพ์ และแสดงค่าพื้นที่ออกทางจอภาพ

15 15 ข้อดีของ Top-Down Design  ทำให้การวิเคราะห์และทำความเข้าใจใน ปัญหาง่ายขึ้น  การปรับปรุงแก้ไขโปรแกรมทำได้ง่าย เพียง แก้ไขที่โมดูลเท่านั้น  ทดสอบวิธีแก้ปัญหาได้ง่าย

16 16 ตัวอย่างที่ 1  จงออกแบบอัลกอริทึมให้แสดงข้อความ พร้อมที่จะรับอักษรสามตัว และเรียงลำดับ อักษรสามตัวนั้นจากน้อยไปหามาก แล้ว แสดงผลการเรียงลำดับบนจอภาพและรอรับ อักษรชุดใหม่ ทำเช่นนี้เรื่อยไปจนกว่าชุด อักษรที่เข้ามามีค่าเป็น ‘xxx’ จึงเลิกการ ทำงาน

17 17 วิธีทำ : กำหนดปัญหา  ส่วนที่ 1 รับตัวอักษร  ส่วนที่ 2 เรียงลำดับตัวอักษร  ส่วนที่ 3 แสดงผลการเรียงลำดับ

18 18 วิธีทำ : แบ่งส่วนของงานออกเป็นงานย่อย  ส่วนที่ 1 รับตัวอักษร –รับตัวอักษรตัวที 1, 2 และ 3 –ตรวจสอบว่าแต่ละตัวเป็น ‘x’ หรือไม่ –วนรับจนจบเงื่อนไข

19 19 แบ่งส่วนของงานออกเป็นงานย่อย  ส่วนที่ 2 เรียงลำดับตัวอักษร –เปรียบเทียบตัวที่ 1 กับตัวที่ 2 –เปรียบเทียบตัวที่ 2 กับตัวที่ 3 –เปรียบเทียบตัวที่ 1 กับตัวที่ 2 ซ้ำ  ส่วนที่ 3 แสดงผลการเรียงลำดับ –แสดงผลตัวอักษรที่ 1, 2 และ 3

20 20 วิธีทำ : เขียนแผนภาพลำดับชั้น ปัญหาเรียงตัวอักษร แสดงตัวอักษรจัดเรียงจากน้อยไปมากรับตัวอักษร เปรียบเทียบ กับ ‘xxx’ จับคู่ตัวอักษรเปรียบเทียบ

21 21 วิธีทำ : กำหนดโมดูลหลักในรูปของซูโดโค้ด  Begin –Call Input_Characters –Call Sort_Characters –Call Output_Characters  End

22 22 วิธีทำ : พัฒนาซูโดโค้ดของทุกโมดูล  Call Input_Characters Read char1, char2, char3 While (char1<>‘x’) AND (char2<>‘x’) AND (char3<>‘x’) DO... ENDDO

23 23 พัฒนาซูโดโค้ดของทุกโมดูล  Call Sort_Characters IF (char1>char2) THEN temp=char1 char1=char2 char2=temp ENDIF

24 24 พัฒนาซูโดโค้ดของทุกโมดูล IF (char2>char3) THEN temp=char2 char2=char3 char3=temp ENDIF

25 25 พัฒนาซูโดโค้ดของทุกโมดูล  Call Output_Characters Write char1, char2, char3

26 26 วิธีทำ : ตรวจสอบผลของอัลกอริทึมที่ได้  ป้อนชุดตัวอักษรเช่น ‘x’ ‘a’ ‘m’ –สังเกตว่าผลที่ได้คือ amx หรือไม่?  ป้อนชุดตัวอักษรเช่น ‘x’ ‘x’ ‘x’ –สังเกตว่าจบการทำงานหรือไม่?

27 27 ตัวอย่างที่ 2  จงออกแบบอัลกอริทึมสำหรับอ่านรหัส พนักงาน อัตราการจ่ายเงินเดือน จำนวน ชั่วโมงการทำงานในหนึ่งสัปดาห์ แล้ว คำนวณรายได้ของพนักงานคนนั้น เพื่อ แสดงออกมาบนจอภาพตามเงื่อนไขที่ กำหนด แล้วรอรับข้อมูลของพนักงานคน ต่อไป จนกระทั่งหมดข้อมูล

28 28 ตัวอย่างที่ 2 : เงื่อนไข 1  พนักงานทุกคนต้องมีชั่วโมงการทำงานน้อย กว่าหรือเท่ากับ 60 ชั่วโมง  ถ้ามีจำนวนชั่วโมงการทำงานมากกว่า 60 ให้ พิมพ์ข้อความ  ‘Hours worked exceeds limit of 60’

29 29 ตัวอย่างที่ 2 : เงื่อนไข 2  อัตราการจ่ายเงินมากที่สุดชั่วโมงละ 125 บาท  ถ้ามีอัตราการจ่ายเงินมากกว่า 125 บาทต่อ ชั่วโมง ให้พิมพ์ข้อความ  ‘Pay rate exceeds 125 baht’

30 30 ตัวอย่างที่ 2 : เงื่อนไข 3  ถ้ามีจำนวนชั่วโมงการทำงานมากกว่า 35 ชั่วโมง ส่วนที่เหลือคิดเป็น การทำงาน ล่วงเวลา  คำนวณอัตราการทำงานล่วงเวลาเป็น 1.5 เท่าของอัตราปกติ


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

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


Ads by Google