วันเสาร์ที่ 29 มิถุนายน พ.ศ. 2556

ใบความรู้ที่ 1

เรื่องหลักการเขียนโปรแกรม

ประกอบการเรียนรู้วิชาการเขียนโปรแกรมเบื้องต้น(เพิ่มเติม)

ผลการเรียนรู้

     1. อธิบายหลักการเขียนโปรแกรมได้
     2. วิเคราะห์วิธีการเขียนโปรแกรมได้
 
หลักการเขียนโปรแกรม
     ในการแก้ปัญหาโดยอาศัยวิธีการเขียนโปรแกรม ประกอบด้วยขั้นตอนต่าง ๆ ดังนี้
     1. การวิเคราะห์และกำหนดรายละเอียดของปัญหา
         รายละเอียดของปัญหาในเบื้องต้นอาจยังไม่ชัดเจน ในขั้นตอนนี้ ผู้เขียนโปรแกรมจะต้องวิเคราะห์ปัญหาเพื่อกำหนดรายละเอียดของปัญหาที่ชัดเจนซึ่งได้แก่ รายละเอียดของข้อมูลนำเข้า (input data) และรายละเอียดของข้อมูลส่งออก (output data) รายละเอียดของข้อมูลนำเข้า หมายถึง ข้อมูลที่สามารถนำมาใช้แก้ปัญหา ซึ่งอาจเป็นข้อมูลที่กำหนดให้หรือข้อมูลที่รับเข้ามา สำหรับข้อมูลส่งออก หมายถึง ข้อมูลซึ่งเป็นผลที่ได้จากการแก้ปัญหา การกำหนดรายละเอียดข้อมูลนำเข้าและข้อมูลส่งออก สามารถทำได้โดยไม่ยุ่งยากจนเกินไป
    2. การออกแบบโปรแกรม
        ขั้นตอนการออกแบบโปรแกรมเป็นการออกแบบลำดับการทำงานหรือแก้ปัญหาซึ่งจะต้องสอดคล้องกับรายละเอียดของปัญหา โดยจะต้องคำนึงถึงการออกแบบโครงสร้างข้อมูลที่เหมาะสมที่จะใช้จัดเก็บข้อมูลเพื่อประมวลผลและการออกแบบขั้นตอนที่ใช้ประมวลผลข้อมูลในเบื้องต้นเราจะจัดเก็บข้อมูลที่ใช้สำหรับประมวลผลไว้ภายใต้ชื่อตัวแปรเช่นเดียวกับที่เราคุ้นเคยในการกำหนดตัวแปรสำหรับแก้ปัญหาทางคณิตศาสตร์ สำหรับขั้นตอนการประมวลผลข้อมูลที่กำหนดเป็นลำดับที่แน่นอนต่อเนื่องกันเพื่อใช้แก้ปัญหา เรียกว่า ขั้นตอนวิธี(algorithms) ขั้นตอนวิธีที่ดีจะต้องมีระบบระเบียบที่แน่นอนและชัดเจนในการแก้ปัญหา ขั้นตอนวิธีและโปรแกรมที่เราออกแบบจะอาศัยโครงสร้างควบคุมการทำงาน 3 อย่าง คือ
    •  โครงสร้างแบบตามลำดับ (sequential  structure) เป็นขั้นตอนการทำงานที่เป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น
    • โครงสร้างแบบมีทางเลือก (selection  structure) เป็นขั้นตอนการทำงานที่บางขั้นตอนจะได้รับหรือไม่ได้รับการประมวลผล ขึ้นอยู่กับเงื่อนไขบางประการ
    • โครงสร้างแบบทำซ้ำ (repetition  structure) เป็นขั้นตอนการทำงานที่บางขั้นตอนจะถูกประมวลผลซ้ำมากกว่า 1 ครั้ง ขึ้นอยู่กับเงื่อนไขบางประการ
    3. การเขียนโปรแกรม
        ในกรณีที่ได้วิเคราะห์ปัญหาและกำหนดรายละเอียดของปัญหา ตลอดจนออกแบบโปรแกรมอย่างครบถ้วนสมบูรณ์แล้วจะถึงขั้นตอนการเขียนโปรแกรม ในขั้นตอนนี้ก็สามารถทำให้สัมฤทธิ์ผลได้โดยง่าย ขั้นตอนการเขียนโปรแกรม หมายถึง กระบวนการใช้ภาษาคอมพิวเตอร์เพื่อกำหนดโครงสร้างของข้อมูลและกำหนดขั้นตอนวิธีเพื่อใช้แก้ปัญหาตามที่ได้ออกแบบไว้ โดยอาศัยหลักเกณฑ์การเขียนโปรแกรมภาษาคอมพิวเตอร์แต่ละภาษา หลังจากที่ผู้พัฒนาเขียนโปรแกรมภาษเสร็จแล้วจะต้องมีการตรวจสอบโปรแกรมที่เขียนว่าคำสั่งถูกต้องตามไวยกรณ์หรือกฎเกณฑ์ของภาษานั้นหรือไม่และแปลภาษาโปรแกรมให้เป็นรหัสที่เครื่องคอมพิวเตอร์สามารถเข้าใจ ซึ่งเราเรียกว่าการแปล (Compile) ซึ่งจะมีการสอบความถูกต้องของโปรแกรมตามกฎเกณฑ์การใช้ภาษาที่กำหนดขึ้นโดยตัวแปลภาษาหนึ่ง ๆ และแจ้งให้ผู้ใช้ทราบในกรณีที่ปรากฏข้อผิดพลาดขึ้น ข้อผิดพลาดที่ตรวจพบในขั้นตอนนี้เรียกว่า ข้อผิดพลาดทางไวยกรณ์ (Syntax Error) เมื่อผู้ใช้แก้ไขข้อผิดพลาดเรียบร้อยแล้ว จะต้องทำขั้นตอนการแปลใหม่อีกครั้งและทำเช่นนี้จนกว่าจะไม่พบข้อผิดพลาดทางไวยกรณ์ใดเลย จึงจะถือว่าโปรแกรมถูกต้อง และสามารถรันโปรแกรมเพื่อแก้โจทย์ปัญหาได้
    4. การตรวจสอบการทำงาน
        ข้อผิดพลาดจากการทำงานอาจเกิดขึ้นได้จากหลาย ๆ สาเหตุ เช่น ข้อผิดพลาดจากข้อมูลนำเข้า ข้อผิดพลาดจากโครงสร้างที่ใช้จัดเก็บข้อมูล ข้อผิดพลาดในขั้นตอนวิธีที่ใช้แก้ปัญหา เป็นต้น ซึ่งล้วนแต่ทำให้ผลลัพธ์ที่ได้จาการประมวลผลโปรแกรมไม่ถูกต้อง การตรวจหาและแก้ไขข้อผิดพลาดจึงเป็นขั้นตอนที่สำคัญขั้นตอนหนึ่งโดยในขั้นตอนนี้ผู้เขียนโปรแกรมจะตรวจสอบว่า ขั้นตอนวิธีและโปรแกรมที่เขียนขึ้นสอดคล้องกับรายละเอียดของปัญหาหรือไม่ นอกจากนี้จะต้องตรวจสอบว่าขั้นตอนวิธีและโปรแกรมสามารถทำงานได้อย่างถูกต้องและสมบูรณ์ โดยการประมวลผลโปรแกรมด้วยชุดข้อมูลทดสอบหลาย ๆ ชุด โดยคำนึงถึงทั้งชุดข้อมูลทดสอบที่ถูกต้อง และชุดข้อมูลทดสอบที่ไม่ถูกต้อง เพื่อให้เกิดความมั่นใจว่าโปรแกรมสามารถรองรับข้อมูลเข้าได้ทุกกรณี โดยไม่ทำให้เกิดการหยุดชะงักระหว่างการประมวลผลโปรแกรม ในกรณีที่พบข้อผิดพลาด ผู้เขียนโปรแกรมจะดำเนินการแก้ไขทั้งในส่วนของโปรแกรมและส่วนของรหัสลำลองหรือผังงาน ตามแต่ที่ผู้เขียนโปรแกรมเลือกใช้สำหรับเขียนขั้นตอนวิธีในขั้นตอนของการออกแบบโปรแกรม
     5. การบำรุงรักษาโปรแกรม
         เมื่อมีการนำโปรแกรมไปใช้งานระยะหนึ่ง เป็นไปได้ที่ว่ามีการเปลี่ยนแปลงเงื่อนไขในการแก้ปัญหา เช่น ในตัวอย่างการคำนวณรายได้ของบริษัทเคเบิลทีวี อาจมีการเปลี่ยนแปลงอัตราค่าติดตั้งอุปกรณ์รับสัญญาณเคเบิลทีวีาำหรับบ้านพักอาศัย ซึ่งได้กำหนดเป็นค่าคงที่ในโปรแกรมหรือบริษัทมีนโยบายในการให้ส่วนลดกับสมาชิกเก่า หรือบริษัทเพิ่มแผนโฆษณาเชิญชวนให้ลูกค้าสมัครเป็นสมาชิก โดยมีเงื่อนไขพิเศษมากมาย เป็นเหตุให้ผู้เขียนโปรแกรมจะต้องแก้ไขโปรแกรมให้สอดคล้องกับเงื่อนไขที่เปลี่ยนแปลงไป การแก้ไขในลักษณะนี้เรียกว่า การบำรุงรักษาโปรแกรม
     6. การทำเอกสารประกอบโปรแกรม
         การทำเอกสารประกอบโปรแกรมเป็นงานที่สำคัญของการพัฒนาโปรแกรม เอกสารประกอบโปรแกรมช่วยให้ผู้ใช้โปรแกรมเข้าใจวัตถุประสงค์ข้อมูลที่จะต้องใช้กับโปรแกรม ตลอดจนผลลัพธ์ที่จะได้จากโปรแกรม การทำโปรแกรมทุกโปรแกรมจึงควรต้องทำเอกสารกำกับ โดยรวบรวมรายละเอียดตั้งแต่การพัฒนาโปรแกรมจนถึงการทดสอบโปรแกรมเพื่อใช้สำหรับการอ้างอิง เมื่อจะใช้งานโปรแกรมและเมื่อต้องการแก้ไขปรับปรุงโปรแกรม
        เอกสารที่จัดทำขึ้นควรประกอบด้วย
        1. วัตถุประสงค์
        2. ประเภทและชนิดคอมพิวเตอร์และอุปกรณ์ที่ใช้ในโปรแกรม
        3. วิธีการใช้โปรแกรม
        4. แนวคิดเกี่ยวกับการออกแบบโปรแกรม
        5. รายละเอียดโปรแกรม
        6. ข้อมูลตัวแทนที่ใช้ทดสอบ
        7. ผลลัพธ์ของการทดสอบ
        จะเห็นได้ว่าแม้ผู้เขียนโปรแกรมจะดำเนินการนับจากขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหา การออกแบบโปรแกรม การเขียนโปรแกรม ตลอดจนการตรวจสอบการทำงานในเวลาเพียงน้อยนิด แต่ในขั้นตอนการบำรุงรักษาโปรแกรมจะมีช่วงเวลานานไปตลอดอายุการใช้งานของโปรแกรม ซึ่งนับเป็นสัดส่วนที่มากกว่า 4 ขั้นตอนแรกอย่างมาก
        กล่าวโดยสรุป ขั้นตอนวิธีการเขียนโปรแกรมจะประกอบด้วยการวิเคราะห์และกำหนดรายละเอียดของปัญหา เป็นการวิเคราะห์ข้อมูลนำเข้าและข้อมูลส่งออก  การออกแบบโปรแกรม เป็นการออกแบบลำดับการทำงานหรือแก้ปัญหา กำหนดขั้นตอนวิธีที่มีระบบระเบียบและชัดเจน โดยอาศัยโครงสร้างควบคุมทั้งโครงสร้างแบบลำดับ หรือ โครงสร้างแบบมีทางเลือก หรือ โครงสร้างแบบทำซ้ำ  การเขียนโปรแกรม กระบวนการที่ใช้ภาาาคอมพิวเตอร์ กำหนดโครงสร้างข้อมูลและขั้นตอนวิธีเพื่อแก้ปัญหาตามที่ออกแบบ ตั้งใช้หลักเกณฑ์ของภาษานั้น ๆ โดยไม่พบข้อผิดพลาด โปรแกรมจึงถูกต้อง และแก้โจทย์ปัญหาได้ การตรวจสอบการทำงาน คำนึงถึงชุดข้อมูลทดสอบที่ถูกต้องและไม่ถูกต้อง เพื่อความมั่นใจของโปรแกรมสามารถรองรับข้อมูลเข้าได้ทุกกรณี โดยไม่เกิดการหยุดชะงักการประมวลผลโปรแกรม  การบำรุงรักษาโปรแกรม  การเปลี่ยนแปลงเงื่อนไขในการแก้ปัญหาต้องแก้ไขโปรแกรมให้สอดคล้องกับเงื่อนไข  การทำเอกสารประกอบโปรแกรม งานสำคัญของการพัฒนาโปรแกรม เมื่อต้องการแก้ไขปรับปรุง
******************
หนังสืออ้างอิง

อนงค์นาฎ  ศรีวิหค.การโปรแกรมเบื้องต้นด้วยภาษาปาสคาล. สาขาคอมพิวเตอร์ สถาบันส่งเสริม
        การสอนวิทยาศาสตร์และเทคโนโลยี.