Fundamental of Program Design
description
Transcript of Fundamental of Program Design
Fundamental of Program Design
บทท่ี 1 พื้นฐานการออกแบบโปรแกรม
วตัถปุระสงค์เพื่อ• บอกขัน้ตอนการพฒันาโปรแกรมได้• เขา้ใจหลักการพื้นฐานด้านกรรมวธิกีารออกแบบโปรแกรมในรูปแบบต่างๆ
• บอกความแตกต่างระหวา่งการเขยีนโปรแกรมแบบProcedural และ Object-Oriented ได้
• ทราบวตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง
• บอกความหมายของอัลกอรทึิมและซูโดโค้ดได้• เขา้ใจหลักปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์เพื่อนำาไปสูก่ารเขยีนซูโดโค้ดได้อยา่งถกูหลักวธิี
หัวขอ้ท่ีบรรยาย• ขัน้ตอนการพฒันาโปรแกรม• กรรมวธิกีารออกแบบโปรแกรม• การเขยีนโปรแกรมแบบ Procedural และ Object-
Oriented• วตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง
• ความรูเ้บื้องต้นเกี่ยวกับอัลกอรทิึมและซูโดโค้ด• ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์• โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ
ขัน้ตอนการพฒันาโปรแกรม• กำาหนดปัญหา• รา่งรายละเอียดแนวทางการแก้ไขปัญหา• พฒันาอัลกอรทิึม• ตรวจสอบความถกูต้องของอัลกอรทึิม• เขยีนโปรแกรม• ทดสอบโปรแกรม• จดัทำาเอกสารและบำารุงรกัษาโปรแกรม
กรรมวธิกีารออกแบบโปรแกรม• การออกแบบโปรแกรมแบบ Procedure-Driven• การออกแบบโปรแกรมแบบ Event-Driven• การออกแบบโปรแกรมแบบ Data-Driven
การออกแบบโปรแกรมแบบ Procedure-Driven
• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความ คิดของคณุสมบติัโปรแกรม
• มกีระบวนการ (Process) หรอืฟงัก์ชัน่ (Functions) อะไรบา้ง
• มขีอ้มูลเขา้- ออก อยา่งไร• แตกฟงัก์ชัน่การทำางานออกเป็ยสว่นยอ่ยๆ
การออกแบบโปรแกรมแบบ Event-Driven
• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความคิดของแต่ละเหตกุารณ์หรอืการโต้ตอบจากภายนอก
• พจิารณาจากสถานะของโปรแกรมที่จะเปล่ียนแปลงไป
• ยกตัวอยา่ง การคล้ิกเมาสข์องผู้ใช้ การกดแป้น พมิพ์ การสัง่งานด้วยเสยีง การทำาสญัญาณมอื
เป็นต้น
การออกแบบโปรแกรมแบบ Data-Driven
• เป็นการออกแบบโปรแกรมท่ีตัง้อยูบ่นแนวความคิดของขอ้มูลในโปรแกรมมากกวา่กระบวนการ
• เริม่จากกการวเิคราะหข์อ้มูลและความสมัพนัธข์องขอ้มูล
• การกำาหนดโครงสรา้งขอ้มูล• ความต้องการผลลัพธข์องขอ้มูล โดยพจิารณากระบวนการใดที่จะทำาการเปล่ียนแปลงขอ้มูลนำาเขา้เพื่อนำาไปสูผ่ลลัพธท์ี่ต้องการ
การเขยีนโปรแกรมแบบ Procedural และ Object-Oriented
• การเขยีนโปรแกรมแบบบนลงล่าง“Functional Decomposition”
• การออกแบบโปรแกรมในลักษณะโมดลู• การโปรแกรมเชงิวตัถุ
รูปแบบการโปรแกรมแบบบนลงล่างหรอืแบบโมดลู
ตังอยา่งคลาสไดอะแกรมท่ีออกแบบขึน้เพื่อการโปรแกรมเชงิวตัถุ
วตัถปุระสงค์ของเทคนิคการออกแบบโปรแกรมเชงิโครงสรา้ง
• ต้องการใหโ้ปรแกรมมคีณุภาพ• แก้ไขปรบัปรุงได้ง่ายในอนาคต• ทำาใหข้ัน้ตอนการเขยีนโปรแกรมเป็นระบบ• ลดเวลาในการพฒันาโปรแกรม
ความรูเ้บื้องต้นเก่ียวกับอัลกอรทึิมและซูโดโค้ด
ความหมายของอัลกอรทึิมอัลกอรทึิม “คือ กลุ่มของขัน้ตอนหรอืกฎ
”เกณฑ์ที่จะนำาพาไปสูก่ารแก้ปัญหาได้
อัลกอรทึิม คือ “ขัน้ตอนวธิซีึ่งจะใชอ้ธบิายวา่งานงานนัน้ทำาอยา่งไรโดยจะประกอบได้ด้วยชุด
ลำาดับเป็นขัน้เป็นตอนที่ชดัเจน และรบัประกันวา่ เมื่อ ได้ปฏิบติัถกูต้องตามขัน้ตอนจนครบ ก็จะได้ผลลัพธ์
”ท่ีถกูต้องตามต้องการ
คณุสมบติัพื้นฐานของอัลกอรทึิมที่ดี• อัลกอรทึิมต้องไมก่ำากวม อ่านแล้วควรเขา้ใจง่าย• อัลกอรทึิมต้องมคีวามถกูต้องในผลลัพธท์ี่ใชแ้ก้ไขปัญหาในกรณีต่างๆ
• กระบวนการหรอืขัน้ตอนที่ระบุไวใ้นอัลกอรทิึมต้อง มคีวามเรยีบง่าย เพยีงพอต่อการดำาเนินงานเพื่อ
ประมวลผลในคอมพวิเตอรไ์ด้• อัลกอรทึิมต้องมจุีดสิน้สดุ
ตัวอยา่ง : อัลกอรทิึมในการใชเ้ครื่องคิดเลขรวมตัวเลข
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
ปัญหาเชงิอัลกอรทึิมและการแก้ไขปัญหา
ความหมายของซูโดโค้ด (Pseudo Code)
“รหสัจำาลองที่ใชเ้ป็นตัวแทนของอัลกอรทิึมโดยมถ้ีอยคำาหรอืประโยคคำาสัง่ที่เขยีนอยูใ่นรูปแบบของภาษาอังกฤษท่ีไมข่ึ้นกับภาษาคอมพวิเตอร์
”ใดภาษาหนึ่ง
หลักวธิกีารเขยีนซูโดโค้ด• ถ้อยคำาหรอืประโยคคำาสัง่ (Statement) ใหเ้ขยีนอยูใ่นรูปแบบของภาษาอังกฤษอยา่งง่าย
• ในหนึ่งบรรทัด ใหเ้ขยีนประโยคคำาสัง่เพยีงคำาสัง่เดียว• ควรใชย้อ่หน้าใหเ้ป็นประโยชน์เพื่อแยกคำาเฉพาะ
(Keywords) ได้อยา่งชดัเจน รวมถึงจดัโครงสรา้งการ ควบคมุใหเ้ป็นสดัสว่น ซึ่งการกระทำาดังกล่าวจะทำาให้
อ่านง่าย• แต่ละประโยคคำาสัง่ใหเ้ขยีนลำาดับจากบนลงล่าง โดยมีเพยีงทางเขา้ทางเดียวและมทีางออกทางเดียวเท่านัน้
• กลุ่มของประโยคคำาสัง่ต่างๆ อาจจดัรวมกลุ่มเขา้ด้วย กันในรูปแบบของโมดลู แต่ต้องกำาหนดชื่อโมดลูเหล่า
นัน้ด้วย เพื่อใหส้ามารถเรยีกใชง้านโมดลูนัน้ได้
ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์
• คอมพวิเตอรส์ามารถรบัขอ้มูลได้• คอมพวิเตอรส์ามารถแสดงผลลัพธไ์ด้• คอมพวิเตอรส์ามารถคำานวณได้• คอมพวิเตอรส์ามารถกำาหนดค่าตัวแปรได้• คอมพวิเตอรส์ามารถเปรยีบเทียบและเลือกการทำางานได้
• คอมพวิเตอรส์ามารถทำางานซำ้าๆ ได้
คอมพวิเตอรส์ามารถรบัขอ้มูลได้read studentNameget systemDateread number1,number2get taxCode
คอมพวิเตอรส์ามารถแสดงผลลัพธไ์ด้
print “Program Completed”write customer record to master fileput name, address and postcodeoutput totalTaxdisplay “End of data”
คอมพวิเตอรส์ามารถคำานวณได้divide totalMarks by studentCountsalesTax = costPrice * 0.10compute C = (F - 32) * 5 / 9
คอมพวิเตอรส์ามารถกำาหนดค่าตัวแปรได้
initialize totalPrice to zeroset studentCount to 0totalPrice = costPrice + salesTaxtotalPrice costPrice + salesTaxstore customerId in lastCustomerId
คอมพวิเตอรส์ามารถเปรยีบเทียบและเลือกการทำางานได้
if employeeStatus is partTime THENadd 1 to partTimeCount
else add 1 to fullTimeCount
end if
คอมพวิเตอรส์ามารถทำางานซำ้าๆ ได้dowhile file_flag <> “eof”
read student recordprint studentName, address to reportadd 1 to studentTotal
enddo
โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ
• แบบเรยีงลำาดับ (Sequence)• แบบเลือกการทำางาน (Selection)• แบบทำางานซำ้า (Repetition)
แบบเรยีงลำาดับ (Sequence)
Statement aStatement bStatement c
::
แบบเลือกการทำางาน (Selection)
if condition p is true thenstatement(s) in true case
elsestatement(s) in false case
end if
แบบทำางานซำ้า (Repetition)dowhile condition p is true
statement blockenddo
repeatstatementstatement
::
until condition is true
สรุปท้ายบทท่ี 1
• ขัน้ตอนการพฒันาโปรแกรม ประกอบด้วย 7 ขัน้ตอนพื้นฐาน
• กรรมวธิกีารออกแบบโปรแกรมมี 3 รูปแบบ• อัลกอรทึิม• ซูโดโค้ด• ปฏิบติัการพื้นฐาน 6 ประการของคอมพวิเตอร์• โครงสรา้งการควบคมุพื้นฐาน 3 รูปแบบ
Any Question ?