บทที่ 4

การเขียนผังงาน
สาระการเรียนรู้
1.ความหมายของผังงาน
2.ประโยชน์ของผังงาน
3.ประเภทของผังงาน
4.สัญลักษณ์ที่ใช้ในการเขียนผังงาน
5.หลักเกณฑ์การเขียนผังงาน
6.ลักษณะของโครงสร้างในการเขียนผังงาน
7.ตัวอย่างการเขียนผังงาน
จุดประสงค์การเรียนรู้
1.บอกความหมายของผังงานได้
2.บอกประโยชน์ของผังงานได้
3.บอกความหมายของสัญลักษณ์ที่ใช้ในการเขียนผังงานได้
4.เขียนสัญลักษณ์ที่ใช้ในการเขียนผังงานได้ถูกต้อง
5.อธิบายลักษณะการเขียนผังงานที่ดีได้
6.เขียนผังงานสำหรับวิธีการประมวลผลที่กำหนดไว้ได้
7.มีความสนใจใฝ่เรียนรู้ ตั้งใจเรียน
8.มีวินัย เข้าเรียนทันเวลา ปฏิบัติตามกฎระเบียบของวิทยาลัยฯ
9.มีความรับผิดชอบงานที่ได้รับมอบหมาย
10.มีความคิดริเริ่มสร้างสรรค์ มีความเชื่อมั่นกล้าลองผิดลองถูก
11.มีความซื่อสัตย์ต่อตนเองและผู้อื่น
ความหมายของผังงาน
ผังงาน (Flowchart) ในทางคอมพิวเตอร์หมายถึง แผนภาพ (Diagram) หรือสัญลักษณ์แสดงการอธิบายลาดับขั้นตอนการทำงานการแก้ปัญหา หรือการพัฒนาโปรแกรมของคอมพิวเตอร์ โดยใช้สัญลักษณ์ต่าง ๆประกอบเข้าด้วยกัน และมีทิศทางแสดงลาดับขั้นตอนการทำงานตั้งแต่ขั้นตอนแรกจนถึงขั้นตอนสุดท้าย ว่ามีลำดับขั้นตอนการทำงานอย่างไรบ้าง ซึ่งเป็นสัญลักษณ์ที่เป็นมาตรฐานเดียวกันทั่วโลก การเขียนผังงานอธิบายลาดับขั้นตอนการแก้ปัญหา ถ้าลักษณะของปัญหาไม่มีความซับซ้อนมาก การพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา (Algorithm Development) สามารถเขียนอธิบายลำดับขั้นตอนการทำงานเป็นลักษณะข้อความ (Algorithm)
ได้สะดวก ถ้าปัญหามีความซับซ้อนมากการอธิบายลำดับขั้นตอนการทำงานโดยใช้ผังงานจะช่วยให้ขั้นตอนในการพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหาสามารถพัฒนาได้สะดวกยิ่งขึ้น
การเขียนผังงานแสดงขั้นตอนการทำงาน เป็นเครื่องมือที่ช่วยในการเขียนโปรแกรมและช่วยออกแบบขั้นตอนการทำงาน จะใช้ลูกศรสื่อถึงลาดับการทำงาน ซึ่งจะทำให้ทราบขั้นตอนและลำดับการทำงานของโปรแกรมได้อย่างถูกต้อง
ประโยชน์ของการเขียนผังงาน
ประโยชน์ของผังงาน ใช้สาหรับช่วยในการพัฒนาลำดับขั้นตอนวิธีการแก้ปัญหา เนื่องจาก
ผังงานเป็นการอธิบายขั้นตอนการทำงานในลักษณะของรูปภาพ ให้สามารถเห็นลำดับของขั้นตอนวิธีการทำงานได้ชัดเจนกว่าการอธิบายในลักษณะข้อความ การใช้ผังงานเพื่อช่วยสาหรับ
การหาขั้นตอนวิธีการทำงาน จะทำให้สามารถเขียนอธิบายขั้นตอนการทำงานในลักษณะข้อความ
ได้สะดวกขึ้น ช่วยให้ผู้เขียนโปรแกรมสามารถกำหนดขั้นตอนการทำงานก่อนหลังของโปรแกรม
ได้อย่างเป็นระบบ และจะช่วยให้การเขียนโปรแกรมเป็นไปอย่างถูกต้อง สามารถตรวจสอบและ
แก้ไขโปรแกรมได้ง่ายหากมีการปรับปรุงโปรแกรมที่เกิดขึ้นได้ในอนาคต สรุปได้ดังนี้

1.ช่วยอธิบายขั้นตอนการทำงานแต่ละขั้นให้เข้าใจการทำงานของโปรแกรมได้ง่ายและรวดเร็ว
2.สามารถวิเคราะห์ความถูกต้องของโปรแกรมก่อนเขียนโปรแกรมจริง และตรวจสอบขั้นตอนการทำงานเพื่อหาข้อผิดพลาดที่เกิดขึ้นได้สะดวก
3.ทาให้ทราบถึงโครงสร้างของโปรแกรมทั้งหมดที่จะเขียน
4.ใช้เป็นสื่อในการติดต่อประสานงานกันระหว่างนักวิเคราะห์ระบบ นักออกแบบโปรแกรม กับนักเขียนโปรแกรมและผู้ใช้ ให้สามารถเข้าใจขั้นตอนทั้งหมดได้ เพราะไม่ใช่ภาษาคอมพิวเตอร์
5.ช่วยให้เขียนโปรแกรมได้ง่าย
6.ช่วยให้การกระจายงานให้นักเขียนโปรแกรมหลาย ๆ คนช่วยเขียนโปรแกรมเป็นส่วนๆ ได้ เพราะทราบขั้นตอนการทำงานของโปรแกรมที่ชัดเจน สามารถบางส่วน และประมาณการทำงานได้อย่างต่อเนื่อง
7.สามารถนำผังลำดับการทำงานของโปรแกรม มาเป็นต้นแบบในการพัฒนาโปรแกรมอื่น ๆ ที่มีลำดับข้นตอนการทำงานคล้าย ๆ กันได้
8.การบำรุงรักษาโปรแกรม (Program Maintenance) ทำได้ง่ายและมีประสิทธิภาพมากขึ้น
ประเภทของผังงาน
ในการเขียนผังงานนั้นสามารถจำแนกแบบของผังงานออกเป็น 2 แบบใหญ่ ๆ คือ

1.ผังงานระบบ (System Flowchart) หรือผังงานในระดับกว้าง ซึ่งจะเป็นการแสดงขั้นตอนการทำงานของระบบทั้งหมด ผังงานระบบมักจะมีลักษณะย่นย่อ รวบรัด และแสดงเฉพาะตัวงานที่จะต้องทำในระบบเท่านั้น ไม่มุ่งเน้นรายละเอียดในการปฏิบัติ ไม่ได้แสดงว่างานนั้นจะทำอย่างไร ความสำคัญของผังงานระบบอยู่ที่การแสดงความสัมพันธ์ระหว่างงานต่างๆ ในระบบว่ามีความสัมพันธ์กันอย่างไร ตั้งแต่เรื่องของวัสดุอุปกรณ์ บุคลากร และหน่วยงานที่เกี่ยวข้อง ตัวอย่างเช่น2.ผังงานโปรแกรม (Program Flowchart) หรือผังงานระดับละเอียด เป็นภาพแผนผังที่แสดงลำดับขั้นตอนในการทำงานของโปรแกรม ซึ่งจะแยกย่อยมาจากผังงานระบบ คือในแต่ละขั้นตอนจะแสดงการทำงานแต่ละคำสั่งโดยละเอียด ใส่วิธีการ และจัดลาดับขั้นตอนของโปรแกรม สำหรับโปรแกรมนั้น ๆ ตั้งแต่เริ่มต้นจากการรับข้อมูล การประมวลผล และไปจนถึงการแสดงผลลัพธ์ที่ได้จากการประมวลผลที่ผู้เขียนโปรแกรมกาลังทำงานอยู่ ไม่ได้แสดงความสัมพันธ์ระหว่างโปรแกรมนั้นกับโปรแกรมอื่น ๆ ตัวอย่างเช่นการใช้ผังงานในการออกแบบโปรแกรม โดยเริ่มจากผังงานระบบลงมายังผังงานโปรแกรม
เป็นเทคนิคการออกแบบจากบนลงล่าง (Top-Down Design) แต่นักโปรแกรมไม่ค่อยใช้ผังงาน
กันมากนัก เพราะจะต้องเขียนและทดสอบโปรแกรมบ่อยครั้งทำให้การเขียนโปรแกรมล่าช้าด้วย

 สัญลักษณ์การเขียนผังงาน (Flowchart Symbols)
สัญลักษณ์ที่ใช้ในการเขียนผังงานโปรแกรม (Program Flowchart) มีหลายสัญลักษณ์ด้วยกัน และสัญลักษณ์ในแต่ละแบบก็จะมีความหมายและการใช้งานที่แตกต่างกันออกไป ดังนี้
สัญลักษณ์
ชื่อที่เรียก
ความหมาย
ตัวอย่างการใช้งาน
Terminals
สาหรับแทนจุดเริ่มต้นของการทำงาน และจุดสิ้นสุดของการทางาน
STOP
START
Processing
แทนการประมวลผลที่เกิดขึ้น เช่น การกำหนดค่าให้กับตัวแปร,การคำนวณ
Total = Total + OT
Input / Output
การนำเข้าข้อมูลหรือการแสดงผลลัพธ์ของข้อมูล โดยไม่ได้ระบุอุปกรณ์ว่าเป็นชนิดใด
Print A, B, C
Read A, B, C
Manual Input
ใช้แทนการรับข้อมูลเข้าทางคีย์บอร์ด
Name

Display
ใช้แทนการแสดงผลลัพธ์ทางจอภาพ
Name
Document
แทนเอกสารหรือการแสดงผลทางเครื่องพิมพ์
Name, Salary
                                                        


Decision
แสดงถึงเงื่อนไขการตัดสินใจ หรือการเลือกทางเลือกจากเงื่อนไขของการตรวจสอบค่าที่นำมาเปรียบเทียบ
Score > 80
หลักเกณฑ์ทั่วไปในการเขียนผังงาน
เพื่อให้เป็นมาตรฐานเดียวกัน การเขียนผังงานควรมีลักษณะดังนี้
1.จะต้องเขียนโดยใช้สัญลักษณ์ต่าง ๆ ที่ถูกต้องตามมาตรฐานที่กำหนดไว้
2.สัญลักษณ์หรือภาพหนึ่งจะต้องแทนหนึ่งคาสั่งเท่านั้น
3.ควรเขียนผังงานให้จบภายในหน้าเดียว ถ้าเขียนมากกว่าหนึ่งหน้าต้องใช้สัญลักษณ์ในการเชื่อมต่อจุดหน้าระหว่าง
4.การใช้สัญลักษณ์จุดเริ่มต้นและจุดสิ้นสุด จะต้องมีเพียงอย่างละหนึ่งแห่งเท่านั้น ยกเว้นการเขียนในลักษณะเพิ่มเติมที่เป็นโมดูล (Module) หรือโปรแกรมย่อย (Subprogram) ซึ่งเป็นส่วนหนึ่งของผังงาน จึงจะสามารถสร้างขึ้นมาใหม่เพื่อเป็นจุดบอกการเริ่มต้นและสิ้นสุดของโมดูลหรือโปรแกรมย่อยนั้น ๆ
5.ทุกสัญลักษณ์ที่เขียนจะต้องมีทิศทางเข้าและออกเพียงหนึ่งแห่งเท่านั้น ยกเว้นสัญลักษณ์จุดเริ่มต้น จุดต่อ จุดสิ้นสุด และทางเลือกในการตัดสินใจ
6.การเขียนอธิบายขั้นตอนการทำงานโดยเรียงลำดับก่อนหลัง ดังนี้
(1) กำหนดค่าเริ่มต้นให้กับตัวแปร
(2) Input คือ การรับข้อมูลเข้า
(3) Process คือ ขั้นตอนการประมวลผลหรือคำนวณ
(4) Output คือ การแสดงผลลัพธ์หรือค่าตัวแปรที่ได้จากการประมวลผล
7.ทิศทางการเขียนผังงาน ควรเรียงลำดับจากบนลงล่างหรือจากซ้ายไปขวาเท่านั้น
8.ไม่ควรเขียนขั้นตอนการทำงานแบบข้ามลาดับ สลับไปมาแบบยุ่งยาก และไม่มีเส้นทิศทางโยงไปมาตัดกัน
9.ควรมีการทดสอบผังงานก่อนที่จะนำไปเขียนโปรแกรม
10.ควรเขียนหัวลูกศรกำกับทิศทางการไหลของข้อมูลเสมอ
11.ไม่ควรปล่อยทิ้งเส้นการไหลของข้อมูล (Floe Line) เอาไว้เฉย ๆ โดยไม่ได้มีการเชื่อมต่อระหว่างขั้นตอนหนึ่งไปสู่อีกขั้นตอนหนึ่ง
12.คาอธิบายภายในผังงานควรเขียนด้วยข้อความที่สั้น ๆ และเข้าใจง่าย
13.ในบางกรณีอาจใช้สัญลักษณ์หมายเหตุ (Remark) เพื่ออธิบายส่วนของผังงานเพิ่มเติมเพื่อความเข้าใจ และอธิบายกระบวนการต่าง ๆ ของอัลกอริทึมที่ได้ออกแบบเอาไว้
14.ควรเขียนชื่อผังงาน ชื่อผู้เขียน วันที่เขียน และหมายเลขหน้า รวมทั้งเขียนผังงานให้สะอาด เรียบร้อย
โครงสร้างการควบคุมการทางานของผังงาน
1.การเขียนผังงานกับโครงสร้างควบคุมแบบลำดับ
ลักษณะของผังงานที่มีโครงสร้างควบคุมแบบลำดับจะเป็นลักษณะการทำงานเป็นลำดับเรียงกันไปจากบนลงล่าง ไม่มีการย้อนกลับไปทาลำดับที่ผ่านมาได้ ในผังงานเราใช้สัญลักษณ์ Process Symbol แทนโครงสร้างควบคุมแบบลำดับ ดังนี้