การเขียนรหัสลำลองและการเขียนผังงาน
การเขียนรหัสลำลองและการเขียนผังงาน
เป็นการคิดค้นกระบวนการต่าง ๆ ที่เป็นลำดับขั้นตอน ซึ่งต้องอาศัยประสบการณ์และความรู้ของผู้แก้ปัญหา โดยอาจนำวิธีที่เคยแก้ปัญหา หรือค้นหาวิธีการอื่นแล้วนำมาประยุกต์เข้ากับปัญหาที่กำลังแก้ไข เครื่องมือที่ใช้ในการวางแผนแก้ไขปัญหาสำหรับการพัฒนาโปรแกรม อาจเลือกใช้รหัสลำลอง หรือผังงาน โดยวิธีการแก้ปัญหาแบบนี้ เรียกว่า ขั้นตอนวิธีหรืออัลกอริทึม โดยเฉพาะรหัสลำลองซึ่งเป็นเครื่องมือหนึ่งที่ช่วยให้ผู้แก้ปัญหาสามารถแก้ปัญหาได้สำเร็จ
รหัสลำลอง (Pseudo code) เป็นคำบรรยายที่เขียนแสดงขั้นตอนวิธี (algorithm) ของการเขียนโปรแกรม โดยใช้ภาษาที่กะทัดรัด สื่อสารกับโปรแกรมเมอร์ผู้เขียนโปรแกรม โดยอาจใช้ภาษาที่ใช้ทั่วไปและอาจมีภาษาที่ใช้ในการเขียนโปรแกรมประกอบ แต่ไม่มีมาตรฐานแน่นอนในการเขียนรหัสลำลอง และไม่สามารถนำไปทำงานบนคอมพิวเตอร์โดยตรงเพราะไม่ใช่คำสั่งในภาษาคอมพิวเตอร์ และไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
หลักเกณฑ์การเขียนรหัสลำลอง
มีการสรุปหลักเกณฑ์ ในการเขียนรหัสลำลองดังนี้
1. ถ้อยคำหรือประโยคคำสั่ง (statement) ให้เขียนอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย
2. ในหนึ่งบรรทัด ให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
3. ควรใช้ย่อหน้าให้เป็นประโยชน์เพื่อแยกคำเฉพาะ (Keywords) ได้อย่างชัดเจน รวมถึงจัด
โครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย
4. แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่างโดยมีเพียงทางเข้าทางเดียวและมีทางออกทางเดียวเท่านั้น
5. กลุ่มของประโยคคำสั่งต่าง ๆ อาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกำหนดชื่อโมดูลเหล่านั้นด้วย เพื่อให้สามารถเรียกใช้โมดูลเหล่านั้นได้
ตัวอย่างการเขียนรหัสลำลอง (Pseudo Code)
อัลกอริทีม (Algorithm)Algorithm การหาพื้นที่สามเหลี่ยม Pseudocodes Algorithm triangle
เริ่มต้น START
รับค่าความยาวของฐานมาเก็บในตัวแปร x READ X
รับค่ความยาวของสูงมาเก็บในตัวแปร Y READ Y
คำนวณหาพื้นที่ Compute ARRAY =(X"Y)/2
แสดงผลพื้นที่ Print ARRAY
จบ END
ประโยชน์ของการเขียนรหัสลำลอง
1. เป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมแต่ละโปรแกรม
2. เป็นต้นแบบในการทบทวน ปรับปรุงแก้ไข และพัฒนาโปรแกรมของโปรแกรมเมอร์ และนักวิเคราะห์ระบบ
3. เป็นตัวกำหนดงานเขียนโปรแกรม เพื่อให้โปรแกรมเมอร์นำไปพัฒนาเป็นโปรแกรมคอมพิวเตอร์ เพื่อสั่งให้ คอมพิวเตอร์ทำงานตามกระบวนการที่ได้จำลองกระบวนการจริงไว้ในรหัสลำลอง
รหัสลำลองจึงมีความสำคัญต่อการแก้ปัญหาเป็นตัวแทนของอัลกอริทึม โดยมีถ้อยคำหรือประโยคคำสั่งที่เขียนอยู่ในรูปแบบของภาษาอังกฤษที่ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง โดยการเขียนรหัสลำลองจะต้องคำนึงถึงหลักเกณฑ์ของการเขียนรหัสลำลองคำสั่งให้เขียนลำดับจากบนลงล่างและมีเพียงทางเข้าทางเดียวและมีทางออกทางเดียว รหัสลำลองจึงเป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานเป็นตัวกำหนดงานเขียนโปรแกรมเพื่อการพัฒนาโปรแกรมต่อไป
การเขียนผังงาน
ความหมายของการเขียนผังงาน
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความหรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือ ข้อความ ทำได้ยากกว่าเมื่อใช้รูปภาพ หรือสัญลักษณ์
ประเภทของผังงาน
ในการเขียนผังงานนั้นสามารถจำแนกแบบของผังงานออกเป็น 2 แบบใหญ่ ๆ คือ
1. ผังงานระบบ (System Flowchart) หรือผังงานในระดับกว้าง ซึ่งจะเป็นการแสดงขั้นตอนการทำงานของระบบทั้งหมด ผังงานระบบมักจะมีลักษณะย่นย่อ รวบรัด และแสดงเฉพาะตัวงานที่จะต้องทำในระบบเท่านั้น ไม่มุ่งเน้นรายละเอียดในการปฏิบัติ ไม่ได้แสดงว่างานนั้นจะทำอย่างไร ความสำคัญของผังงานระบบอยู่ที่การแสดงความสัมพันธ์ระหว่างงานต่าง ๆ ในระบบว่ามีความสัมพันธ์กันอย่างไร ตั้งแต่เรื่องของวัสดุอุปกรณ์ บุคลากร และหน่วยงานที่เกี่ยวข้อง
2. ผังงานโปรแกรม (Program Flowchart) หรือผังงานระดับละเอียด เป็นภาพแผนผังที่แสดงลำดับขั้นตอนในการทำงานของโปรแกรม ซึ่งจะแยกย่อยมาจากผังงานระบบ คือในแต่ละขั้นตอนจะแสดงการทำงานแต่ละคำสั่งโดยละเอียด ใส่วิธีการ และจัดลำดับขั้นตอนของโปรแกรม สำหรับโปรแกรมนั้น ๆ ตั้งแต่เริ่มต้นจากการรับข้อมูล การประมวลผล และไปจนถึงการแสดงผลลัพธ์ที่ได้จากการประมวลผลที่ผู้เขียนโปรแกรมกำลังทำงานอยู่ ไม่ได้แสดงความสัมพันธ์ระหว่างโปรแกรมนั้นกับโปรแกรมอื่น ๆ
สัญลักษณ์ผังงานโปรแกรม ( Program Flowchart )
การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ที่เรียกว่า สัญลักษณ์ ANSI ( American National Standards Institute ) ในการสร้างผังงาน ดังตัวอย่างที่แสดงในรูปต่อไปนี้
ภาพที่ 1 สัญลักษณ์ ANSI
ลักษณะโครงสร้างของผังงาน
ผังงานทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ
1. โครงสร้างแบบเป็นลำดับ (Sequence structure)
2. โครงสร้างแบบมีการเลือก (Selection structure)
3. โครงสร้างแบบทำซ้ำ (Iteration structure)
โครงสร้างแบบเป็นลำดับ (Sequence Structure)
เป็นโครงสร้างพื้นฐานของผังงาน และเป็นลักษณะขั้นตอนการทำงานที่พบมากที่สุด คือทำงาน ทีละขั้นตอนลำดับ
ภาพที่ 2 โครงสร้างแบบเป็นลำดับ
โครงสร้างแบบมีตัวเลือก (Selection Structure)
โครงสร้างการทำงานแบบมีการเลือกมีรูปแบบที่ซับซ้อนกว่าโครงสร้างแบบเป็นลำดับรูปแบบที่ง่ายที่สุดของโครงสร้างแบบนี้คือ การเลือกแบบมีทางออก 2 ทาง ในการเลือกแบบมีทางออก 2 ทาง นี้จะมีทางออกจากสัญลักษณ์การตัดสินใจเพียง 2 ทาง คือ ใช่หรือไม่ใช่ เท่านั้น
ภาพที่ 3 โครงสร้างแบบมีตัวเลือก
โครงสร้างแบบทำซ้ำ (Iteration Structure)
โครงสร้างการทำงานแบบทำซ้ำ จะทำงานแบบเดียวกันซ้ำไปเรื่อย ๆ ในขณะที่ยังเป็นไปตามเงื่อนไขหรือเงื่อนไขเป็นจริง จนกระทั่งเงื่อนไขเป็นเท็จจึงทำงานอื่นต่อไป
ภาพที่ 4 โครงสร้างแบบทำซ้ำ
ประโยชน์ของผังงาน
ผังงานเป็นเครื่องมือที่ช่วยให้ลำดับขั้นตอนของโปรแกรมง่ายขึ้น จึงนิยมเขียนผังงานประกอบการเขียนโปรแกรม ด้วยเหตุผลดังนี้
1. การใช้ผังงานเป็นรูปแบบที่ไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทำให้เรียนรู้และทำความเข้าใจได้ง่าย
2. ผังงานช่วยลำดับเป็นขั้นเป็นตอน เน้นสื่อความหมายด้วยภาพทำให้ง่ายต่อการทำความเข้าใจ แตกต่างจากการใช้ข้อความหรือคำพูดอาจจะสื่อความหมายผิดไปได้
3. เมื่อเกิดข้อผิดพลาดในขั้นตอนการเขียนโปรแกรมจะช่วยให้ตรวจสอบความถูกต้องของลำดับขั้นตอน และแก้ไขโปรแกรมได้ง่าย
4. ผังงานช่วยทำให้ผู้ที่มาทำต่อหรือศึกษาต่อทำความเข้าใจการทำงานของโปรแกรมได้อย่างง่าย สะดวก และรวดเร็วมากขึ้น
ดังนั้นผังงานจึงเป็นแผนภาพแสดงลำดับขั้นตอนการทำงานของอัลกอริทึม เป็นเครื่องมือที่ใช้การรวบรวมจัดลำดับความคิด เพื่อให้เห็นขั้นตอนการทำงานที่ชัดเจนและใช้วางแผนการทำงานขั้นแรก โดยสัญลักษณ์ Flowchart แสดงถึงการทำงานลักษณะต่าง ๆ เชื่อมต่อกัน โดยแบ่งประเภทของผังงานออกเป็น 2 แบบใหญ่ ๆ ได้แก่ ผังงานระบบ และผังงานโปรแกรม สัญลักษณ์ผังงานโปรแกรมโดยใช้สัญลักษณ์ ANSI โดยลักษณะโครงสร้างของผังงานจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบ ได้แก่โครงสร้างแบบเป็นลำดับ โครงสร้างแบบมีการเลือก โครงสร้างแบบทำซ้ำ ซึ่งจะช่วยให้ลำดับรายละเอียดของคำสั่ง เป็นภาพแผนผังที่แสดงลำดับขั้นตอนในการทำงานของโปรแกรมได้