อัลกอริทึม (Algorithm)
การจำลองความคิดเพื่อวางแผนขั้นตอนในการเขียนโปรแกรมทางคอมพิวเตอร์เรียกได้อีกอย่างว่า อัลกอริทึม (Algorithm)
การจำลองความคิดประกอบด้วย 2 ลักษณะ คือ
1. ข้อความคำบรรยายหรือรหัสเทียม (pseudo code)
รหัสเทียม(Pseudo code) เป็นการใช้คำบรรยายเพื่ออธิบายขั้นตอนวิธีในการแก้ปัญหา การเขียนรหัสลำลองไม่มีรูปแบบที่แน่นอน
ขึ้นอยู่กับประสบการณ์และความถนัดของผู้เขียน ซึ่งอาจจะเขียนอย่างละเอียดหรือเขียนแบบย่อ ในบางครั้งอาจอธิบายในลักษณะคล้าย
ภาษาพูด หรืออาจจะเขียนในรูปแบบคล้ายภาษาโปรแกรมก็ได้
รหัสเทียม(Pseudo code) เป็นการจำลองขั้นตอนวิธีแก้ปัญหา โดยการอธิบาย ด้วยคำพูดที่เข้าใจได้ง่ายเป็นขั้นๆ
ตัวอย่าง การวางแผนไปโรงเรียน การจำลองความคิดด้วยรหัสเทียม
เริ่มต้น
ตื่นนอน
อาบน้ำแต่งตัว
รับประทานอาหารเช้า
ไปโรงเรียน
จบ
ลักษณะของรหัสเทียม (Pseudo code)
- ใช้ข้อความสั้นๆ ได้ใจความ
- ใช้ข้อความที่สื่อให้ผู้อ่านเข้าใจได้ง่าย
- เขียนเรียงลำดับทีละบรรทัด
- มีลักษณะใกล้เคียงกับภาษามนุษย์
- ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
ข้อดีของรหัสเทียม (Pseudo code)
- เขียนง่าย ไม่ต้องคำนึงถึงวิธีการแก้ปัญหา และไม่ต้องกังวลว่าจะเขียนผิดรูปแบบ
- ถ้าผู้เขียนมีความชำนาญ การเขียนรหัสลำลอง (Pseudo code) ในรูปแบบที่คล้าย กับภาษาโปรแกรมจะทำให้สามารถดัดแปลงไปเป็นโปรแกรมคอมพิวเตอร์ได้ง่าย
- เป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมแต่ละโปรแกรม
- เป็นต้นแบบในการทบทวน ปรับปรุงแก้ไข และพัฒนาโปรแกรมของโปรแกรมเมอร์ และนักวิเคราะห์ระบบ
- เป็นตัวกำหนดงานเขียนโปรแกรม เพื่อให้โปรแกรมเมอร์นำไปพัฒนาเป็นโปรแกรมคอมพิวเตอร์ เพื่อสั่งให้ คอมพิวเตอร์ทำงานตามกระบวนการที่ได้จำลองกระบวนการจริงไว้ในซูโดโค้ด
วิธีการเขียนรหัสเทียม (Pseudo code)
- ประโยคคำสั่ง (Statement) จะอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย
- ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
- ควรใช้ย่อหน้า เพื่อแยกคำเฉพาะ (Keywords) ได้ชัดเจน รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งช่วยให้อ่านโค้ดได้ง่าย
- แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงลาง โดยมีทางเข้าเพียงทางเดียว และมีทางออกทางเดียวเท่านั้น
- กลุ่มของประโยคคำสั่งต่าง ๆ อาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องมีการกำหนดชื่อของโมดูลด้วย เพื่อให้สามารถเรียกใช้งานโมดูลนั้นได้
- ต้องมีการเริ่มต้น (Start/Begin) ตามด้วยชื่อของกิจกรรมนั้น และต้องมี จุดสิ้นสุด (End) เสมอ
2. สัญลักษณ์หรือ ผังงาน (Flowchart)
เป็นเครื่องมือชนิดหนึ่งที่ใช้รูปภาพแสดงการไหลของข้อมูลในระบบตั้งแต่แรกจนได้ผลลัพธ์ตาม ต้องการจะแสดงการทำงานของโปรแกรมโดยละเอียดในแต่ละขั้นตอนผังงานโปรแกรมเป็นสิ่งจำเป็นสำหรับ ผู้เขียนโปรแกรมเพราะต้องใช้เป็นแนวทางในการเขียนโปรแกรมและเมื่อโปรแกรมเกิดข้อผิดพลาดการเข้าไป วิเคราะห์ผังงานโปรแกรมจะทำได้ง่ายกว่าการเข้าไปวิเคราะห์ตัวโปรแกรมโดยตรง
ประโยชน์ของผังงาน
- คนส่วนใหญ่สามารถเรียนรู้และเข้าใจผังงานได้ง่าย เพราะผังงานไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง เป็นเครื่องมือที่ใช้ในการสื่อสารได้ทุกภาษา
- ผังงานเป็นการสื่อความหมายด้วยภาพ ช่วยลำดับขั้นตอนการทำงานของโปรแกรมให้ง่ายและสะดวกต่อการทำความเข้าใจ สามารถนำไปเขียนโปรแกรมได้โดยไม่สับสน ซึ่งถ้าหากใช้ข้อความหรือคำพูดอาจจะสื่อความหมายผิดไปได้
- ในงานโปรแกรมที่ไม่สลับซับซ้อน ช่วยในการตรวจสอบความถูกต้องของลำดับขั้นตอน และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
- ช่วยให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมได้อย่างง่าย สะดวก และรวดเร็วมากขึ้น
- การบำรุงรักษาโปรแกรมหรือการเปลี่ยนแปลงแก้ไขโปรแกรมในภายหลัง ให้มีประสิทธิภาพ ถ้าพิจารณาจากผังงานจะช่วยให้สามารถทบทวนงานในโปรแกรมก่อนปรับปรุง แก้ไขได้สะดวกและง่ายขึ้น
ลักษณะของผังงานที่ดี
- ใช้สัญลักษณ์ตามที่กำหนดไว้
- ผังงานจะต้องมีจุดเริ่มต้น (Start)และสิ้นสุด (Stop/End/Finish)
- ใช้หัวลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่างหรือซ้ายไปขวา (ยกเว้นที่ต้องทำซ้ำ)
- ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า 1 เส้นและออก 1 เส้นโดยไม่มีการปล่อยจุดใดจุดหนึ่งไว้
- เขียนคำอธิบายการทำงานในแต่ละขั้นตอนโดยใช้ข้อความที่สั้น กะทัดรัด ชัดเจนและเข้าใจได้ง่าย
- ควรหลีกเลี่ยงโยงเส้นไปมาทำให้เกิดจุดตัดมากเพราะจะทำให้เกิดข้อผิดพลาดง่าย ควรใช้สัญลักษณ์เชื่อมจุดต่อเนื่องแทน
- ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
- ผังงานที่ดีควรมีความเป็นระเบียบเรียบร้อย สะอาดและชัดเจน สามารถเข้าใจได้ง่าย
- ผังงานควรมีการทดสอบความถูกต้องของการทำงานก่อนไปเขียนโปรแกรม
ข้อจำกัดของผังงาน
- ผังงานเป็นการสื่อความหมายระหว่างบุคคลต่อบุคคลมากกว่าที่จะสื่อความหมายบุคคลกับเครื่องคอมพิวเตอร์ เพราะผังงานไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ ภาษาใดภาษาหนึ่ง ทาให้เครื่องคอมพิวเตอร์ไม่สามารถรับรู้และเข้าใจว่าผังงานต้องการอะไร
- ผังงานไม่สามารถแทนลักษณะคำสั่งของภาษาคอมพิวเตอร์บางคำสั่งได้อย่างชัดเจน
- กรณีที่งานมีขนาดใหญ่ ผังงานจะมีขนาดใหญ่ด้วย ถ้ามีการเปลี่ยนแปลงแก้ไขจำได้ยาก ควรเขียนแยกเป็นส่วน ๆ แล้วค่อยสร้างจุดเชื่อมโยงในแต่ละส่วน
- การเขียนผังงานอาจเป็นการสิ้นเปลืองกระดาษและอุปกรณ์อื่น ๆ ประกอบการเขียนภาพ ทั้ง ๆ ที่การอธิบายงานหรือการเขียนโปรแกรมจะใช้เนื้อที่เพียง 3 – 4 บรรทัดเท่านั้น