ความรู้เบื้องต้นเกี่ยวกับ อัลกอริทึม (Algorithm)

Patiphan Phengpao
2 min readSep 18, 2017

--

ความรู้เบื้องต้นเกี่ยวกับ อัลกอริทึม (Algorithm)

อัลกอริทึม (Algorithm) หมายถึง ขั้นตอนหรือลำดับการประมวลผลในการแก้ปัญหาใดปัญหาหนึ่งซึ่งจะช่วยให้ผู้พัฒนาโปรแกรมเห็นขั้นตอนการเขียนโปรแกรมอย่างง่ายขึ้น

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

ขณะเดียวกันสามารถช่วยให้ผู้ที่เป็นจเ้าของงาน หรือผู้ที่รักผิดชอบได้ตรวจสอบขั้นตอนต่างๆ ในการทำงาน และความถูกต้องในแต่ละขั้นตอนการทำงาน โดยผู้ที่เป็นเจ้าของงานหรือผู้ที่รับผิดชอบนั้นๆ ไม่จำเป็นต้องเขียนโปรแกรมเป็น

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

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

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

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

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

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

รูปแบบของอัลกอริทึม

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

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

อัลกอริทึม การทอดไข่เจียว

  1. หยิบไข่ไก่
  2. ตอกไข่ไก่ใส่ภาชนะ
  3. ปรุงรส ด้วยเครื่องปรุง
  4. ตีไข่ด้วยช้อนส้อม
  5. ตั้งกระทะบนเตา
  6. เปิดแก๊ส และติดไฟ
  7. ใส่น้ำมันพืช
  8. นำไข่ที่ปรุงรสแล้วใส่ลงในกระทะที่ร้อน
  9. ทอดจนสุก
  10. ตักขั้นใส่จานที่เตรียมไว้

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

อัลกอริทึมตัดเกรดวิชาคอมพิวเตอร์

  1. คะแนนสอบของนักเรียน
  2. ตรวจสอบคะแนน (คะแนนที่สอบผ่าน 50 คะแนน)
  3. ถ้ามากกว่า 50 คะแนน สอบผ่าน
  4. ถ้าน้อยกว่า 50 คะแนน สอบตก
  5. ประกาศผล

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

อัลกอริทึมการซื้อมังคุด 1 กิโลกรัม

  1. หยิบถุงพลาสติก
  2. หยิบมังคุดมาเลือก โดยกดที่เปลือกที่นิ่มๆ
  3. ตรวจสอบเงื่อนไข (น้อยกว่า 1 กิโลกรัม)
  4. ถ้าจริง เลือกมังคุดต่อ
  5. ถ้าเท็จ หยุดเลือก
  6. จ่ายเงินให้กับผู้ที่ขาย

--

--

Patiphan Phengpao
Patiphan Phengpao

Responses (1)