Fundamental of Program Design

31
Fundamental of Program Design บบบบบ 1 บบบบบบบบบบบบบบบบ บบบบบบบ

description

Fundamental of Program Design. บทที่ 1 พื้นฐาน การออกแบบโปรแกรม. วัตถุประสงค์เพื่อ. บอกขั้นตอนการพัฒนาโปรแกรมได้ เข้าใจหลักการพื้นฐานด้านกรรมวิธีการออกแบบโปรแกรมในรูปแบบต่างๆ บอกความแตกต่างระหว่างการเขียนโปรแกรมแบบ Procedural และ Object- O riented ได้ - PowerPoint PPT Presentation

Transcript of Fundamental of Program Design

Page 1: Fundamental of Program Design

Fundamental of Program Design

บทท่ี 1 พื้นฐานการออกแบบโปรแกรม

Page 2: Fundamental of Program Design

วตัถปุระสงค์เพื่อ• บอกขัน้ตอนการพฒันาโปรแกรมได้• เขา้ใจหลักการพื้นฐานด้านกรรมวธิกีารออกแบบโปรแกรมในรูปแบบต่างๆ

• บอกความแตกต่างระหวา่งการเขยีนโปรแกรมแบบProcedural และ Object-Oriented ได้

• ทราบวตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง

• บอกความหมายของอัลกอรทึิมและซูโดโค้ดได้• เขา้ใจหลักปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์เพื่อนำาไปสูก่ารเขยีนซูโดโค้ดได้อยา่งถกูหลักวธิี

Page 3: Fundamental of Program Design

หัวขอ้ท่ีบรรยาย• ขัน้ตอนการพฒันาโปรแกรม• กรรมวธิกีารออกแบบโปรแกรม• การเขยีนโปรแกรมแบบ Procedural และ Object-

Oriented• วตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง

• ความรูเ้บื้องต้นเกี่ยวกับอัลกอรทิึมและซูโดโค้ด• ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์• โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ

Page 4: Fundamental of Program Design

ขัน้ตอนการพฒันาโปรแกรม• กำาหนดปัญหา• รา่งรายละเอียดแนวทางการแก้ไขปัญหา• พฒันาอัลกอรทิึม• ตรวจสอบความถกูต้องของอัลกอรทึิม• เขยีนโปรแกรม• ทดสอบโปรแกรม• จดัทำาเอกสารและบำารุงรกัษาโปรแกรม

Page 5: Fundamental of Program Design

กรรมวธิกีารออกแบบโปรแกรม• การออกแบบโปรแกรมแบบ Procedure-Driven• การออกแบบโปรแกรมแบบ Event-Driven• การออกแบบโปรแกรมแบบ Data-Driven

Page 6: Fundamental of Program Design

การออกแบบโปรแกรมแบบ Procedure-Driven

• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความ คิดของคณุสมบติัโปรแกรม

• มกีระบวนการ (Process) หรอืฟงัก์ชัน่ (Functions) อะไรบา้ง

• มขีอ้มูลเขา้- ออก อยา่งไร• แตกฟงัก์ชัน่การทำางานออกเป็ยสว่นยอ่ยๆ

Page 7: Fundamental of Program Design

การออกแบบโปรแกรมแบบ Event-Driven

• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความคิดของแต่ละเหตกุารณ์หรอืการโต้ตอบจากภายนอก

• พจิารณาจากสถานะของโปรแกรมที่จะเปล่ียนแปลงไป

• ยกตัวอยา่ง การคล้ิกเมาสข์องผู้ใช้ การกดแป้น พมิพ์ การสัง่งานด้วยเสยีง การทำาสญัญาณมอื

เป็นต้น

Page 8: Fundamental of Program Design

การออกแบบโปรแกรมแบบ Data-Driven

• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความคิดของขอ้มูลในโปรแกรมมากกวา่กระบวนการ

• เริม่จากกการวเิคราะหข์อ้มูลและความสมัพนัธข์องขอ้มูล

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

Page 9: Fundamental of Program Design

การเขยีนโปรแกรมแบบ Procedural และ Object-Oriented

• การเขยีนโปรแกรมแบบบนลงล่าง“Functional Decomposition”

• การออกแบบโปรแกรมในลักษณะโมดลู• การโปรแกรมเชงิวตัถุ

Page 10: Fundamental of Program Design

รูปแบบการโปรแกรมแบบบนลงล่างหรอืแบบโมดลู

Page 11: Fundamental of Program Design

ตังอยา่งคลาสไดอะแกรมท่ีออกแบบขึน้เพื่อการโปรแกรมเชงิวตัถุ

Page 12: Fundamental of Program Design

วตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง

• ต้องการใหโ้ปรแกรมมคีณุภาพ• แก้ไขปรบัปรุงได้ง่ายในอนาคต• ทำาใหข้ัน้ตอนการเขยีนโปรแกรมเป็นระบบ• ลดเวลาในการพฒันาโปรแกรม

Page 13: Fundamental of Program Design

ความรูเ้บื้องต้นเก่ียวกับอัลกอรทึิมและซูโดโค้ด

ความหมายของอัลกอรทึิมอัลกอรทึิม “คือ กลุ่มของขัน้ตอนหรอืกฎ

”เกณฑ์ที่จะนำาพาไปสูก่ารแก้ปัญหาได้

อัลกอรทึิม คือ “ขัน้ตอนวธิซีึ่งจะใชอ้ธบิายวา่งานงานนัน้ทำาอยา่งไรโดยจะประกอบได้ด้วยชุด

ลำาดับเป็นขัน้เป็นตอนที่ชดัเจน และรบัประกันวา่ เมื่อ ได้ปฏิบติัถกูต้องตามขัน้ตอนจนครบ ก็จะได้ผลลัพธ์

”ท่ีถกูต้องตามต้องการ

Page 14: Fundamental of Program Design

คณุสมบติัพื้นฐานของอัลกอรทึิมที่ดี• อัลกอรทึิมต้องไมก่ำากวม อ่านแล้วควรเขา้ใจง่าย• อัลกอรทึิมต้องมคีวามถกูต้องในผลลัพธท์ี่ใชแ้ก้ไขปัญหาในกรณีต่างๆ

• กระบวนการหรอืขัน้ตอนที่ระบุไวใ้นอัลกอรทิึมต้อง มคีวามเรยีบง่าย เพยีงพอต่อการดำาเนินงานเพื่อ

ประมวลผลในคอมพวิเตอรไ์ด้• อัลกอรทึิมต้องมจุีดสิน้สดุ

Page 15: Fundamental of Program Design

ตัวอยา่ง : อัลกอรทิึมในการใชเ้ครื่องคิดเลขรวมตัวเลข

turn on calculatorclear calculatorrepeat the following instructions

key in baht amountkey in decimal point(.)key in satang amountpress addition(+) key

until all prices have been enteredwrite down total priceTurn off calculator

Page 16: Fundamental of Program Design

ปัญหาเชงิอัลกอรทึิมและการแก้ไขปัญหา

Page 17: Fundamental of Program Design

ความหมายของซูโดโค้ด (Pseudo Code)

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

”ใดภาษาหนึ่ง

Page 18: Fundamental of Program Design

หลักวธิกีารเขยีนซูโดโค้ด• ถ้อยคำาหรอืประโยคคำาสัง่ (Statement) ใหเ้ขยีนอยูใ่นรูปแบบของภาษาอังกฤษอยา่งง่าย

• ในหนึ่งบรรทัด ใหเ้ขยีนประโยคคำาสัง่เพยีงคำาสัง่เดียว• ควรใชย้อ่หน้าใหเ้ป็นประโยชน์เพื่อแยกคำาเฉพาะ

(Keywords) ได้อยา่งชดัเจน รวมถึงจดัโครงสรา้งการ ควบคมุใหเ้ป็นสดัสว่น ซึ่งการกระทำาดังกล่าวจะทำาให้

อ่านง่าย• แต่ละประโยคคำาสัง่ใหเ้ขยีนลำาดับจากบนลงล่าง โดยมีเพยีงทางเขา้ทางเดียวและมทีางออกทางเดียวเท่านัน้

• กลุ่มของประโยคคำาสัง่ต่างๆ อาจจดัรวมกลุ่มเขา้ด้วย กันในรูปแบบของโมดลู แต่ต้องกำาหนดชื่อโมดลูเหล่า

นัน้ด้วย เพื่อใหส้ามารถเรยีกใชง้านโมดลูนัน้ได้

Page 19: Fundamental of Program Design

ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์

• คอมพวิเตอรส์ามารถรบัขอ้มูลได้• คอมพวิเตอรส์ามารถแสดงผลลัพธไ์ด้• คอมพวิเตอรส์ามารถคำานวณได้• คอมพวิเตอรส์ามารถกำาหนดค่าตัวแปรได้• คอมพวิเตอรส์ามารถเปรยีบเทียบและเลือกการทำางานได้

• คอมพวิเตอรส์ามารถทำางานซำ้าๆ ได้

Page 20: Fundamental of Program Design

คอมพวิเตอรส์ามารถรบัขอ้มูลได้read studentNameget systemDateread number1,number2get taxCode

Page 21: Fundamental of Program Design

คอมพวิเตอรส์ามารถแสดงผลลัพธไ์ด้

print “Program Completed”write customer record to master fileput name, address and postcodeoutput totalTaxdisplay “End of data”

Page 22: Fundamental of Program Design

คอมพวิเตอรส์ามารถคำานวณได้divide totalMarks by studentCountsalesTax = costPrice * 0.10compute C = (F - 32) * 5 / 9

Page 23: Fundamental of Program Design

คอมพวิเตอรส์ามารถกำาหนดค่าตัวแปรได้

initialize totalPrice to zeroset studentCount to 0totalPrice = costPrice + salesTaxtotalPrice costPrice + salesTaxstore customerId in lastCustomerId

Page 24: Fundamental of Program Design

คอมพวิเตอรส์ามารถเปรยีบเทียบและเลือกการทำางานได้

if employeeStatus is partTime THENadd 1 to partTimeCount

else add 1 to fullTimeCount

end if

Page 25: Fundamental of Program Design

คอมพวิเตอรส์ามารถทำางานซำ้าๆ ได้dowhile file_flag <> “eof”

read student recordprint studentName, address to reportadd 1 to studentTotal

enddo

Page 26: Fundamental of Program Design

โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ

• แบบเรยีงลำาดับ (Sequence)• แบบเลือกการทำางาน (Selection)• แบบทำางานซำ้า (Repetition)

Page 27: Fundamental of Program Design

แบบเรยีงลำาดับ (Sequence)

Statement aStatement bStatement c

::

Page 28: Fundamental of Program Design

แบบเลือกการทำางาน (Selection)

if condition p is true thenstatement(s) in true case

elsestatement(s) in false case

end if

Page 29: Fundamental of Program Design

แบบทำางานซำ้า (Repetition)dowhile condition p is true

statement blockenddo

repeatstatementstatement

::

until condition is true

Page 30: Fundamental of Program Design

สรุปท้ายบทท่ี 1

• ขัน้ตอนการพฒันาโปรแกรม ประกอบด้วย 7 ขัน้ตอนพื้นฐาน

• กรรมวธิกีารออกแบบโปรแกรมมี 3 รูปแบบ• อัลกอรทึิม• ซูโดโค้ด• ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์• โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ

Page 31: Fundamental of Program Design

Any Question ?