การเขียนอัลกอริทึมขั้นต้น
ความหมายของอัลกอริทึม (Algorithm)
มีผู้ให้ความหมายของอัลกอริทึมไว้ดังนี้
อัลกอริทึม หมายถึง ขั้นตอนวิธี ที่สามารถเข้าใจได้ และมีความยาวจำกัดบอกถึงลำดับ หรือวิธีการในการแก้ปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน ว่าทำอย่างไร เมื่อนำเข้าอะไรแล้วจะได้ผลลัพธ์เช่นไร (วิถีมีเดีย สารานุกรมเสรี)
อัลกอริทึม (Algorithm) หมายถึง กระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไรแล้วจะได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสำนึกหรือฮิวริสติก (Heuristic) (http://forums.thainetdev.com/index.php?showtopic=86)
อัลกอริทึม คือ กระบวนการในการทำงานที่ใช้การตัดสินใจด้วยหลักเหตุผลและคณิตศาสตร์ เป็นตัวช่วยในการเลือกวิธีการหรือขั้นตอนการดำเนินงานต่อไปจนกระทั่งขั้นตอนสุดท้าย เป็นวิธีการที่ใช้แยกย่อยและเรียงลำดับขั้นตอนของกระบวนการในการทำงานต่างๆ เพื่อเพิ่มประสิทธิภาพในการค้นหาและแก้ไขปัญหา (www.ismed.or.th)
อัลกอริทึม คือ กลุ่มของคำสั่งที่มีขั้นตอนที่ชัดเจน เพื่อนประมวลผลข้อมูลที่ได้รับเข้ามา และ สร้างข้อมูลออกอย่างถูกต้อง (www.cs.science.cmu.ac.th)
อัลกอริทึม หมายถึง ขั้นตอนวิธี ซึ่งจะอธิบายว่างาน ๆ นั้น ทำอย่างไร โดยประกอบด้วยชุดลำดับเป็นขั้นเป็นตอนที่ชัดเจน และรับประกันได้ว่าเมื่อได้ปฏิบัติอย่างถูกต้องตามขั้นตอนจนจบ ก็จะได้ผลลัพธ์ที่ถูกต้องตามต้องการ (http://it.msu.ac.th)
Algorithm หมายถึง ชุดคำสั่งที่สร้างไว้ตามขั้นตอน หรือ ลำดับขั้นตอนที่แน่นอน ซึ่งใช้ในการแก้ปัญหา (lexitron.nectec.or.th)
จากความหมายของอัลกอริทึมต่างๆ ที่กล่าวมาสรุปความหมายของอัลกอริทึมได้ดังนี้
อัลกอริทึม หมายถึง วิธีการในการทำงานอย่างใดอย่างหนึ่ง ที่มีลำดับการทำงานเป็นขั้นเป็นตอนชัดเจน และปฏิบัติตามขั้นตอนแล้วได้ผลลัพธ์ที่ถูกต้อง
คุณสมบัติของอัลกอริทึม
ในการแก้ปัญหาแต่ละปัญหามหลายวิธี ดังนั้นการเขียนอัลกอริทึมเพื่อแก้ปัญหาแต่ละปัญหาก็มีหลายวิธีด้วย แต่ละวิธีมีทั้งข้อเด่นข้อด้อย ดังนั้นต้องเลือกให้เหมาะสมกับงานและสภาพแวดบ้อมในขณะนั้น โดยทั่วไปอัลกอริทึมที่ดี ต้องคุณลักษณะดังต่อไปนี้
1. มีความถูกต้อง ความถูกต้องเป็นคุณสมบัติข้อแรกที่จะต้องพิจารณา นั่นคือเมื่อทำงานตามอัลกอริทึม แล้วจะต้องได้ผลลัพธ์ที่ถูกต้อง ซึ่งถ้าผลลัพธ์ที่ได้จากอัลกอริทึมไม่ถูกต้อง จะถือว่าไม่ใช่อัลกอริทึมที่ดี โดยที่ไม่จำเป็นต้องพิจารณาคุณสมบัติข้ออื่นๆ
2. ใช้เวลาในการปฏิบัติงานน้อยที่สุด
3. สั้น กระชับ มีเฉพาะขั้นตอนที่จำเป็นเท่านั้น
4. ใช้เนื้อที่ในหน่วยความจำน้อยที่สุด เนื้อที่ในหน่วยความจำจะถูกใช้สำหรับเก็บค่าของตัวแปร และเก็บคำสั่งที่ใช้ในการทำงาน ดังนั้น ถ้าอัลกอริทึมยาวเกินความจำเป็น จะทำให้ใช้เนื้อที่มาก และ ถ้ามีตัวแปรมากเกินความจำเป็น ก็จะทำให้เสียเนื้อที่ในหน่วยความจำไปด้วย
5. มีความยืดหยุ่นในการใช้งาน
6. ใช้เวลาในการพัฒนาน้อยที่สุด เมื่อนำอัลกอริทึมไปแปลงเป็นโปรแกรมภาษาคอมพิวเตอร์แล้วจะต้องใช้เวลาน้อยที่สุด
7. ง่ายต่อการทำความเข้าใจ
เครื่องมือช่วยในการเขียนอัลกอริทึม
การเขียนอัลกอริทึม เป็นการวางแผนเกี่ยวกับการแก้ปัญหา โดยจะอธิบายการทำงานที่ชัดเจนเพื่อเป็นแนวทางในการเขียนโปรแกรม ช่วยให้การเขียนโปรแกรมทำได้ง่ายขึ้น ช่วยให้โปรแกรมมีข้อผิดพลาดน้อยลง นอกจากนี้ยังช่วยตรวจสอบการทำงานของโปรแกรม ทำให้ทราบขั้นตอนการทำงานของโปรแกรมได้อย่างรวดเร็ว โดยไม่ต้องดูจากโปรแกรมจริง
ในการเขียนอัลกอริทึม มีเครื่องมือช่วยในการเขียนที่นิยมใช้ 3 แบบ คือ
1. บรรยาย (narrative description)
2. ผังงาน (flowchart)
3. รหัสเทียม (pseudo code)
การเขียนอัลกอริทึมแบบบรรยาย
ลักษณะของการเขียนอัลกอรึมแบบบรรยาย
เป็นการแสดงขั้นตอนการทำงานในลักษณะการบรรยายเป็นข้อความด้วยภาษาพูดใดๆ เช่น ภาษาไทย ภาษาอังกฤษ ภาษาเกาหลี ภาษาญี่ปุ่น หรือ ภาษาจีน เป็นต้น ขึ้นอยู่กับความถนัดของผู้เขียนอัลกอริทึม มักเขียนบรรยายขั้นตอนการทำงานเป็นข้อๆ เช่น
การปลูกต้นไม้ แสดงขั้นตอนการทำงานด้วยอัลกอริทึมแบบบรรยายได้ดังนี้
1. ขุดหลุม
2. ใส่ปุ๋ย
3. นำต้นไม้ลงหลุม
4. กลบดิน
5. ปักหลักยึดต้นไม้
6. รดน้ำ
ข้อดีของการเขียนอัลกอริทึมแบบบรรยาย
การเขียนอัลกอริทึมแบบบรรยาย มีข้อดี คือ ง่านในการเขียนบรรยาย เนื่องจากใช้ภาษาพูกที่ผู้เขียนอัลกอริทึมคุ้นเคยอยู่แล้ว ดังนั้นจึงง่ายในการเขียนบรรยาย
ข้อเสียของการเขียนอัลกอริทึมแบบบรรยาย
เนื่องจากการเขียนมีลักษณะบรรยาย ดังนั้น
§ ขอบเขตของการบรรยายกว้างเกินไปยืดเยื้อเกินไป
§ ยากต่อความเข้าใจ
§ ยากในตรวจสอบความถูกต้อง
§ ยากในการแปลงเป็นโปรแกรม
การเขียนอัลกอริทึมแบบผังงาน
ลักษณะการเขียนอัลกอริทึมแบบผังงาน
การเขียนอัลกอริทึมแบบบรรยาย จะเป็นการเขียนอัลกอริทึมแบบไม่เป็นมาตรฐาน เนื่องจากเขียนบรรยายด้วยภาษาพูดใดๆ ดังนั้นคนที่จะเข้าใจได้ ต้องเป็นคนที่เข้าใจภาษาพูดนั้นด้วย และทำความเข้าใจก็ขึ้นกับการตีความของคนนำไปใช้ แต่การเขียนอัลกอริทึมแบบผังงานจะแสดงขั้นตอนการทำงานในลักษณะของรูปภาพหรือสัญลักษณ์ ซึ่งเป็นสัญลักษณ์ที่เป็นมาตรฐาน ไม่อ้างอิงภาษาใดภาษาหนึ่ง ทำให้เห็นลำดับการทำงานก่อนหลังได้ชัดเจน เช่น
การปลูกต้นไม้ แสดงขั้นตอนการปลูกต้นไม้ด้วยผังงาน ดังภาพต่อไปนี้
ภาพที่ 3 ผังงานแสดงขั้นตอนการปลูกต้นไม้
ข้อดีของการเขียนอัลกอรทึมแบบผังงาน
§ ทำความเข้าใจได้ง่าย
§ ตรวจสอบความถูกต้องได้ง่าย
§ พัฒนาโปรแกรมได้ง่าย
§ ง่ายต่อการบำรุงรักษาโปรแกรม
วิธีการเขียนผังงานที่ดี
§ ใช้สัญลักษณ์ตามที่กำหนดไว้ ขนาดแตกต่างกันได้
§ ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากล่างขึ้นบนหรือซ้ายไปขวา
§ คำอธิบายในภาพควรสั้นกระทัดรัด และเข้าใจได้ง่าย
§ มีความเป็นระเบียบเรียบร้อย สะอาด
§ ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า – ออก
§ ผังงานควรสมดุลระหว่างซ้ายและขวา
§ ไม่ควรโยงเส้นเชื่อมผังงานี่อยู่ไกลมากๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
§ ผังงานควรทดสอบความถูกต้องของการทำงานก่อนนำไปเขียนโปรแกรม
การเขียนอัลกอริทึมแบบรหัสเทียม
ลักษณะการเขียนอัลกอริทึมแบบรหัสทียม
รหัสเทียมมาจากภาษาอังกฤษว่าpseudo code (ซูโดโค้ด) เรียกอีกอย่างว่า รหัสจำลอง เป็นการเขียนขั้นตอนการทำงานในลักษณะของคำอธิบายที่มีรูปแบบโครงสร้างชัดเจน ไม่ขึ้นกับภาษาใดภาษาหนึ่ง แต่สามารถเปลี่ยนเป็นภาษาคอมพิวเตอร์ได้ง่าย ดังนั้นโครงสร้างส่วนใหญ่จึงนิยมใช้คำสั่งเฉพาะที่มีอยู่ในคอมพิวเตอร์เพื่อแทนการทำงานต่างๆ เช่น Read if Case หรือ While/Do เป็นต้น การเขียนอัลกอริทึมมีลักษณะดังต่อไปนี้
§ รูปแบบเป็นภาษพูดง่าย ๆ ภาษอังกฤษ หรือภาษาไทยก็ได้
§ ไม่มีกฎที่แน่นอนตายตัว แต่ลักษณะคล้ายกับภาษาคอมพิวเตอร์
§ ไม่เจาะจงภาษาคอมพิวเตอร์ใดภาษาหนึ่ง
§ ใช้คำเฉพาะ (Keyword)
§ เริ่มต้น คือคำสั่งที่อยู่บรรทัดแรก และ สิ้นสุด คือ คำสั่งที่อยู่บรรทัดสุดท้าย
§ .ใช่ย่อหน้าในการเขียนการทำงานย่อยที่อยู่ภายใน
§ ไม่ระบุอุปกรณ์ในการรับข้อมูลหรือแสดงผลข้อมูล
§ ข้อมูลต่างๆที่ใช้ควรจะอยู่ในรูปของตัวแปร
ลักษณะที่ดีของรหัสเทียม
การเขียนรหัสเทียมที่ดี จะต้องมีลักษณะดังนี้
§ ชัดเจน
§ สั้น กระชับและได้ใจความ
§ รูปแบบแน่นอนกะทัดรัด และมองคล้ายภาษาคอมพิวเตอร์ระดับสูง
§ แปลเป็นภาษาคอมพิวเตอร์ได้เร็ว
ความคิดเห็น
แสดงความคิดเห็น