ขั้นตอนการแก้ปัญหาด้วยคอมพิวเตอร์
1. การนิยามปัญหา (Problem Definition)
ในขั้นแรกของการแก้ปัญหา สิ่งสำคัญที่สุด คือเราต้องทำความเข้าใจให้ได้ว่าปัญหาคืออะไร ประเด็นหลักอยู่ที่ใด และต้องการให้ได้ผลลัพธ์อะไร 2. การวิเคราะห์ปัญหา (Problem analysis) หลังจากที่เข้าใจปัญหาได้ดีแล้ว ขั้นต่อไป คือ การวิเคราะห์ปัญหา และพัฒนาสูตรเชิงคณิตศาสตร์ที่แทนวิธีการแก้ปัญหา วิเคราะห์ปัญหา ให้พิจารณาที่ผลลัพธ์ของปัญหาก่อน (output) ว่าคืออะไร และมีข้อมูลนำเข้า (input) อะไรบ้างที่จะทำให้ได้ผลลัพธ์เช่นนั้น จากนั้นจึงคิดสูตรเป็นสมการ หรือวิธีการที่จะแก้ปัญหานั้น เราต้องวิเคราะห์ให้ได้ว่า ข้อมูลอะไรที่นำเข้าจากผู้ใช้ ข้อมูลอะไรเกิดขึ้นจากการคำนวณ หรือข้อมูลใดเป็นค่าคงที่ ตัวอย่างเช่น โจทย์ต้องการให้เขียนโปรแกรมคำนวณหาจำนวนเงินที่ต้องการจ่ายให้พนักงานรายวัน แต่ละคน โดยมีค่าแรงเป็น 40 บาทต่อชั่วโมง ถ้าทำงานเกินจะมีค่าล่วงเวลาคิดเป็นอัตรา 7 บาทต่อชั่วโมง จากโจทย์ ผลลัพธ์ที่ต้องการ คือ จำนวนที่ต้องจ่ายให้แก่พนักงาน ข้อมูลนำเข้า คือ จำนวนชั่วโมงที่ทำงาน จากนั้นนำมาเขียนเป็นสูตร เชิงคณิตศาสตร์ดังนี้ ค่าแรงของพนักงาน = จำนวนชั่วโมงที่ทำงาน *40 "ถ้าจำนวนชั่วโมงน้อยกว่าหรือเท่ากับ 8" ค่าล่วงเวลา = (จำนวนชั่วโมงที่ทำงาน -8)*7 "ถ้าจำนวนชั่วโมงมากกว่า 8 ชั่วโมง" รวมจำนวนเงินค่าแรงของพนักงานแต่ละคน = ค่าแรงของพนักงาน + ค่าล่วงเวลา 3. การออกแบบอัลกอริธึม (Algorithm design) หรือการออกแบบขั้นตอนวิธีการแก้ปัญหา ในขั้นนี้เป็นการคิดหาขั้นตอนการแก้ปัญหาทีละขั้น เราต้องคิดว่าจะทำอย่างไรจึงจะแก้ปัญหาได้ และสามารถนำมาแปลงเป็นคำสั่งของภาษาโปรแกรมได้โดยง่าย ซึ่งเรียกขั้นตอนการแก้ปัญหาทีละขั้นนี้ว่าอัลกอริธึม (algorithm) ตัวอย่างจากโจทย์การคำนวณหาจำนวนเงินที่ต้องการจ่ายให้แก่พนักงาน เขียนอธิบายแต่ละขั้นไดดังนี้ ขั้นที่ 1 รับข้อมูลชั่วโมงทำงานของพนักงานจากแป้นพิมพ์ ขั้นที่ 2 เปรียบเทียบจำนวนชั่วโมงทำงานกับ 8 ถ้าจำนวนชั่วโมงทำงาน มากกว่า 8 แล้ว ให้คำนวณตามสูตรต่อไปนี้ ค่าแรงของพนักงาน = 8*40 ค่าล่วงเวลา = (จำนวนชั่วโมงที่ทำงาน – 8 ) *7 ถ้าจำนวนชั่วโมงทำงาน น้อยกว่าหรือเท่ากับ 8 แล้วให้คำนวณ ค่าแรงของพนักงาน = จำนวนชั่วโมงที่ทำงาน * 40 ค่าล่วงเวลา = 0 ขั้นที่ 3 คำนวณจำนวนเงินที่ต้องจ่ายให้แก่พนักงาน รวมจำนวนเงินค่าแรงของพนักงานแต่ละคน = ค่าแรงของพนักงาน + ค่าล่วงเวลา ขั้นที่ 4 แสดงผลลัพธ์ให้ผู้ใช้ทราบ ขั้นที่ 5 จบการทำงาน แต่ละขั้นตอนต้องมีความชัดเจนว่าจะทำอะไร แล้วได้ผลลัพธ์อะไรในแต่ละขั้น 4. การพัฒนาโปรแกรม (Program development) ในขั้นตอนนี้นักเขียนโปรแกรมต้องนำเอาคำอธิบายของขั้นตอนการแก้ปัญหาแต่ละขั้นจากอัลกอริธึมมาแปลงเป็นคำสั่งของภาษาโปรแกรมคอมพิวเตอร์ภาษาใดภาษาหนึ่ง เช่น เขียนด้วยภาษา c++ เป็นต้น การพัฒนาโปรแกรมจะทำได้ง่าย ถ้าอัลกอริธึมถูกต้อง และมีความชัดเจน 5. การทดสอบความถูกต้อง (Program Testing) หลังจากที่เราเขียนคำสั่งของภาษาโปแกรมคอมพิวเตอร์แล้ว ขั้นต่อไป คือ การทดสอบ (Testing) เพื่อหาข้อผิดพลาดจากการเขียนคำสั่งผิดไวยกรณ์ของภาษา หรือข้อผิดพลาดจากการคำนวณการทดสอบควรทดสอบทุกกรณีที่คาดว่าจะเกิดขึ้น ตัวอย่างเช่น การคิดจำนวนเงินที่ต้องจ่ายให้แก่พนักงานเราต้องทดสอบด้วยการป้อนจำนวนชั่วโมงทำงานประมาร 3 ค่า คือ ค่าที่มากกว่า 8 หรือค่าที่น้อยกว่า 8 หรือค่าที่เท่ากับ 8 เพื่อทดสอบว่าถูกต้องทุกกรณีตามสูตรที่ออกแบบไว้หรือไม่ 6. การจัดทำเอกสาร (Documentation) การจัดทำเอกสารถือว่าเป็นงานที่สำคัญที่นักเขียนโปรแกรมส่วนใหญ่ละเลย การจัดทำเอกสารมีได้สองแบบ คือจัดทำเอกสารคู่มือผู้ใช้ และเอกสารคู่มือพัฒนา ซึ่งเอกสารแบบหลังนี้มีความสำคัญต่อองค์กร เพราะช่วยให้การบำรุงรักษาโปรแกรมทำได้ง่ายขึ้น และใช้อ้างอิงในกรณีที่มีการเปลี่ยนแปลงใด ๆ ในระบบ การเขียนหมายเหตุในโปรแกรมถือว่าเป็นสิ่งจำเป็นที่ควรจะทำ เพื่ออธิบายความคิดว่าขณะนั้นได้คิดอะไร การเขียนหมายเหตุเป็นสิ่งที่ช่วยเตือนความทรงจำของตัวผู้เขียนเอง และคนอื่น 7. การบำรุงรักษา และการแก้ไข (Maintenance and modification) การพัฒนาโปรแกรมขึ้นมาใหม่ถือว่าเป็นเรื่องที่ง่ายการการบำรุงรักษา และการแก้ไข ต้นทุนการบำรุงรักษาโปรแกรมจะเพิ่มมากขึ้นหากการออกแบบโปรแกรมทำ |