top of page

การออกแบบอัลกอริทึม (Algorithm)

การเขียนอัลกอริทึมมีหลายรูปแบบ โดยผู้เขียนสามารถใช้อัลกอริทึมหลายรูปแบบประกอบกันในการออกแบบอัลกอริทึมนั้นเพื่อใช้ในการแก้ปัญหาการเขียนโปรแกรมได้

 1.แบบลำดับ (Sequential) มีลักษณะการทำงานจะเป็นไปตามขั้นตอน ก่อน-หลัง ต่อเนื่องกันไปเป็นลำดับ โดยการทำงานแต่ละขั้นตอนต้องทำให้เสร็จก่อน แล้วจึงไปทำขั้นตอนต่อไป

 2.แบบทางเลือก (Decision) อัลกอริทึมรูปแบบนี้ มีเงื่อนไขเป็นตัวกำหนดเส้นทางการทำงานของกระบวนการแก้ปัญหา โดยตัวเลือกนั้นอาจจะมีตั้งแต่ 2 ตัวขึ้นไป เช่น สอบข้อเขียน คะแนนเต็ม 50 ได้คะแนน 30 สอบผ่าน ถ้าต่ำกว่า 30 สอบไม่ผ่าน

 3.แบบทำซ้ำ (Repetition) อัลกอริทึมแบบนี้คล้ายกับแบบทางเลือก คือ มีการตรวจสอบเงื่อนไข แต่แตกต่างกันตรงที่เมื่อการทำงานตรงตามเงื่อนไขที่กำหนด โปรแกรมจะกลับไปทำงานอีกครั้งวนการทำงานแบบนี้เรื่อย ๆ จนกระทั่งไม่ตรงกับเงื่อนไขที่กำหนดไว้จึงหยุดการทำงานหรือทำงานในขั้นต่อไป

การออกแบบอัลกอริทึม (Algorithm)

   1.แบบลำดับ (Sequential) มีลักษณะการทำงานจะเป็นไปตามขั้นตอน ก่อน-หลัง ต่อเนื่องกันไปเป็นลำดับ โดยการทำงานแต่ละขั้นตอนต้องทำให้เสร็จก่อน แล้วจึงไปทำขั้นตอนต่อไป

ตัวอย่างเช่น อัลกอริทึมแบบลำดับ การทอดไข่เจียว

  1. เริ่มต้น

  2. หยิบไข่ไก่

  3. ตอกไข่ไก่ใส่ภาชนะ

  4. ปรุงรส ด้วยเครื่องปรุง

  5. ตีไข่ด้วยช้อนส้อม

  6. ตั้งกระทะบนเตา

  7. เปิดแก๊ส และติดไฟ

  8. ใส่น้ำมันพืช

  9. นำไข่ที่ปรุงรสแล้วใส่ลงในกระทะที่ร้อน

  10. ทอดจนสุก

  11. ตักขั้นใส่จานที่เตรียมไว้

  12. จบการทำงาน

  2.แบบทางเลือก (Decision) อัลกอริทึมรูปแบบนี้ มีเงื่อนไขเป็นตัวกำหนดเส้นทางการทำงานของกระบวนการแก้ปัญหา โดยตัวเลือกนั้นอาจจะมีตั้งแต่ 2 ตัวขึ้นไป เช่น สอบข้อเขียน คะแนนเต็ม 50 ได้คะแนน 30 สอบผ่าน ถ้าต่ำกว่า 30 สอบไม่ผ่าน

ตัวอย่างการเขียนอัลกอริทึมแบบทางเลือก อัลกอริทึมตัดเกรดวิชาคอมพิวเตอร์

  1. เริ่มต้น

  2. คะแนนสอบของนักเรียน

  3. ตรวจสอบคะแนน (คะแนนที่สอบผ่าน 50 คะแนน)

  4. ถ้ามากกว่า 50 คะแนน สอบผ่าน

  5. ถ้าน้อยกว่า 50 คะแนน สอบตก

  6. ประกาศผล

  7. จบการทำงาน

  3.แบบทำซ้ำ (Repetition) อัลกอริทึมแบบนี้คล้ายกับแบบทางเลือก คือ มีการตรวจสอบเงื่อนไข แต่แตกต่างกันตรงที่เมื่อการทำงานตรงตามเงื่อนไขที่กำหนด โปรแกรมจะกลับไปทำงานอีกครั้งวนการทำงานแบบนี้เรื่อย ๆ จนกระทั่งไม่ตรงกับเงื่อนไขที่กำหนดไว้จึงหยุดการทำงานหรือทำงานในขั้นต่อไป

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

  1. เริ่มต้น

  2. หยิบถุงพลาสติก

  3. หยิบมังคุดมาเลือก โดยกดที่เปลือกที่นิ่มๆ

  4. ตรวจสอบเงื่อนไข (น้อยกว่า 1 กิโลกรัม)

  5. ถ้าจริง เลือกมังคุดต่อ

  6. ถ้าเท็จ หยุดเลือก

  7. จ่ายเงินให้กับผู้ที่ขาย

  8. จบการทำงาน

หลักการเขียนอัลกอริทึม

  1. กระบวนการสำคัญเริ่มต้นที่จุดจุดเดียวในการมีจุดเริ่มต้นหลายที่จะทำให้กระบวนการวิธีสับสน จนในที่สุดอาจทำให้ผลลัพธ์ที่ได้ไม่ตรงกับความต้องการ หรืออาจทำให้อัลกอริทึมนั้นไม่สามารถทำงานได้เลย

  2. กำหนดการทำงานเป็นขั้นเป็นตอนอย่างชัดเจน การกำหนดอัลกอริทึมที่ดีควรมีขั้นตอนที่ชัดเจนไม่คลุมเครือ เสร็จจากขั้นตอนหนึ่ง ไปยังขั้นตอนที่สองมีเงื่อนไขการทำงานอย่างไร ควรกำหนดให้ชัดเจน

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

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

  5. การออกแบบอัลกอริทึมที่ดี ควรออกแบบให้ครอบคลุมการทำงานในหลายรูปแบบ เช่น การออกแบบโดยคิดไว้ล่วงหน้าว่าหากผู้ใช้โปรแกรมป้อนข้อมูลเข้าผิดประเภท โปรแกรมจะมีการเตือนว่าผู้ใช้งานมีการใส่ข้อมูลที่ผิดประเภทโดยโปรแกรมจะไม่รับข้อมูลนั้น เพื่อให้ใส่ข้อมูลใหม่อีกครั้ง เพื่อป้องกันการเกิดจุดบกพร่องของโปรแกรมได้

อ้างอิงจาก หนังสือเรียนรายวิชาพื้นฐานวิทยาศาสตร์  เทคโนโลยี (วิทยาการคำนวณ) สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธิการ

bottom of page