310 likes | 446 Views
Fundamental of Program Design. บทที่ 1 พื้นฐาน การออกแบบโปรแกรม. วัตถุประสงค์เพื่อ. บอกขั้นตอนการพัฒนาโปรแกรมได้ เข้าใจหลักการพื้นฐานด้านกรรมวิธีการออกแบบโปรแกรมในรูปแบบต่างๆ บอกความแตกต่างระหว่างการเขียนโปรแกรมแบบ Procedural และ Object- O riented ได้
E N D
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 calculator clear calculator repeat the following instructions key in baht amount key in decimal point(.) key in satang amount press addition(+) key until all prices have been entered write down total price Turn off calculator
ปัญหาเชิงอัลกอริทึมและการแก้ไขปัญหาปัญหาเชิงอัลกอริทึมและการแก้ไขปัญหา
ความหมายของซูโดโค้ด (Pseudo Code) “รหัสจำลองที่ใช้เป็นตัวแทนของอัลกอริทึมโดยมีถ้อยคำหรือประโยคคำสั่งที่เขียนอยู่ในรูปแบบของภาษาอังกฤษที่ไม่ขึ้นกับภาษาคอมพิวเตอร์ใดภาษาหนึ่ง”
หลักวิธีการเขียนซูโดโค้ดหลักวิธีการเขียนซูโดโค้ด • ถ้อยคำหรือประโยคคำสั่ง (Statement) ให้เขียนอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย • ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว • ควรใช้ย่อหน้าให้เป็นประโยชน์เพื่อแยกคำเฉพาะ (Keywords) ได้อย่างชัดเจน รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย • แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่าง โดยมีเพียงทางเข้าทางเดียวและมีทางออกทางเดียวเท่านั้น • กลุ่มของประโยคคำสั่งต่างๆ อาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกำหนดชื่อโมดูลเหล่านั้นด้วย เพื่อให้สามารถเรียกใช้งานโมดูลนั้นได้
ปฏิบัติการพื้นฐาน 6 ประการของคอมพิวเตอร์ • คอมพิวเตอร์สามารถรับข้อมูลได้ • คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้ • คอมพิวเตอร์สามารถคำนวณได้ • คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้ • คอมพิวเตอร์สามารถเปรียบเทียบและเลือกการทำงานได้ • คอมพิวเตอร์สามารถทำงานซ้ำๆ ได้
คอมพิวเตอร์สามารถรับข้อมูลได้คอมพิวเตอร์สามารถรับข้อมูลได้ read studentName get systemDate read number1,number2 get taxCode
คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้คอมพิวเตอร์สามารถแสดงผลลัพธ์ได้ print “Program Completed” write customer record to master file put name, address and postcode output totalTax display “End of data”
คอมพิวเตอร์สามารถคำนวณได้คอมพิวเตอร์สามารถคำนวณได้ divide totalMarks by studentCount salesTax = costPrice * 0.10 compute C = (F - 32) * 5 / 9
คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้คอมพิวเตอร์สามารถกำหนดค่าตัวแปรได้ initialize totalPrice to zero set studentCount to 0 totalPrice = costPrice + salesTax totalPricecostPrice + salesTax store customerId in lastCustomerId
คอมพิวเตอร์สามารถเปรียบเทียบและเลือกการทำงานได้คอมพิวเตอร์สามารถเปรียบเทียบและเลือกการทำงานได้ if employeeStatus is partTime THEN add 1 to partTimeCount else add 1 to fullTimeCount end if
คอมพิวเตอร์สามารถทำงานซ้ำๆ ได้ dowhilefile_flag <> “eof” read student record print studentName, address to report add 1 to studentTotal enddo
โครงสร้างการควบคุมพื้นฐาน 3 รูปแบบ • แบบเรียงลำดับ (Sequence) • แบบเลือกการทำงาน (Selection) • แบบทำงานซ้ำ (Repetition)
แบบเรียงลำดับ (Sequence) Statement a Statement b Statement c : :
แบบเลือกการทำงาน (Selection) if condition p is true then statement(s) in true case else statement(s) in false case end if
แบบทำงานซ้ำ (Repetition) dowhile condition p is true statement block enddo repeat statement statement : : until condition is true
สรุปท้ายบทที่ 1 • ขั้นตอนการพัฒนาโปรแกรม ประกอบด้วย 7 ขั้นตอนพื้นฐาน • กรรมวิธีการออกแบบโปรแกรมมี 3 รูปแบบ • อัลกอริทึม • ซูโดโค้ด • ปฏิบัติการพื้นฐาน 6 ประการของคอมพิวเตอร์ • โครงสร้างการควบคุมพื้นฐาน 3 รูปแบบ