หลักการเขียนผังงานระบบ
ผังงานระบบ คือ รูปภาพหรือสัญลักษณ์ที่ใช้แทนลำดับ หรือขั้นตอนในโปรแกรมรูปภาพหรือสัญลักษณ์ที่ใช้เป็นเอกลักษณ์ และแทนความหมายอย่างใดอย่างหนึ่ง
โดยทั่วไปผังงานคอมพิวเตอร์แบ่งเป็น 2 ประเภทใหญ่
1. ผังงานระบบ(SystemFlowchat)
เป็นผังงานที่แสดงถึงขั้นตอนการทำงานภายในระบบหนึ่ง ๆ โดยจะแสดงถึงความเกี่ยวข้องของส่วนที่สำคัญต่าง ๆ ในระบบนั้น เช่น เอกสารเบื้องต้น หรือสื่อบันทึกข้อมูลที่ใช้อยู่เป็นอะไร และผ่านไปยังหน่วยงานใด มีกิจกรรมอะไรในหน่วยงานนั้น แล้วจะส่งต่อไปหน่วยงานใด เป็นต้น ดังนั้นผังงานระบบอาจเกี่ยวข้องกับคน วัสดุ และเครื่องจักร ซึ่งแต่ละจุดจะประกอบไปด้วย การนำข้อมูลเข้า วิธีการประมวลผลและการแสดงผลลัพธ์ (Input – Process – Output) ว่ามาจากที่ใดอย่างกว้าง ๆ จึงสามารถเขียนโปรแกรมจากผังงานระบบได้
2. ผังงานโปรแกรม(Program Flowchat) หรือเรียกสั้น ๆ ว่า ผังงาน
ผังงานประเภทนี้แสดงถึงขั้นตอนของคำสั่งที่ใช้ในโปรแกรม ผังงานนี้อาจสร้างจากผังงานระบบโดยผู้เขียนผังงานจะดึงเอาแต่ละจุดที่เกี่ยวข้องการทำงานของเครื่องคอมพิวเตอร์ที่ปรากฏในผังงานระบบมาเขียน เพื่อให้ทราบว่าถ้าจะใช้คอมพิวเตอร์ทำงานในจุดนั้นเพื่อให้ได้ผลลัพธ์ที่ตามต้องการ ควรที่จะมีขั้นตอนคำสั่งอย่างไร และจะได้นำมาเขียนโปรแกรมคอมพิวเตอร์ทำงานต่อไป
การใช้งานผังงานระบบ
เพื่อให้ทราบถึงความเกี่ยวพันของระบบตังแต่เริ่มต้น ว่ามีการปฏิบัติแต่ละขั้นตอนอย่างไร ใช้วิธีการอะไรบ้าง เหมาะสำหรับผู้บริหาร ผู้วิเคราะห์ระบบ และผู้เขียนโปรแกรม จะไดทราบถึง ความสัมพันธ์ ของแผนกต่าง ๆ
ตัวอย่าง ผังงานระบบและผังงานโปรแกรมของการคำนวณพื้นที่สามเหลี่ยม 100 รูป
ประโยชน์และข้อจำกัดของผังงานระบบ
ผังงานระบบเป็นเอกสารประกอบโปรแกรม ซึ่งจะช่วยให้การศึกษาลำดับขั้นตอนของโปรแกรมง่ายขั้น จึงนิยมเขียนผังงานระบบประกอบการเขียนโปรแกรม ด้วยเหตุผลดังนี้
1 คนส่วนใหญ่สามารถเรียนรู้และเข้าใจผังงานระบบได้ง่าย เพราะผังงานระบบไม่ขั้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งโดยเฉพาะ
2 ผังงานระบบเป็นการสื่อความหมายด้วยภาพ ทำให้ง่ายและสะดวกต่อการพิจารณาถึงลำดับข้นตอนในการทำงาน ซึ่งน่าจะดีกว่าบรรยายเป็นตัวอักษร การใช้ข้อความหรือคำพูดอาจจะสื่อความหมายผิดไปได้
3 ในงานโปรแกรมที่ไม่สลับซับซ้อน สามารถใช้ผังงานระบบตรวจสอบความถูกต้องของลำดับขั้นตอนได้ง่าย ถ้ามีที่ผิดในโปรแกรมจะแก้ไขได้สะดวกและรวดเร็วขั้น
4 การเขียนโปรแกรมโดยพิจารณาจากผังงานระบบ สามารถทำให้รวดเร็วและง่ายขั้น
5 การบำรุงรักษาโปรแกรมหรือการเปลี่ยนแปลงแก้ไขโปรแกรมให้มีประสิทธิภาพถ้าดูจากผังงานระบบจะช่วยให้สามารถทบทวนงานในโปรแกรมก่อนปรับปรุงได้ง่ายขั้น
ข้อจำกัดของผังงานระบบ
ผู้เขียนโปรแกรมบางคนไม่นิยมการเขียนผังงานระบบก่อนที่จะเขียนโปรแกรมเพราะ
เสียเวลาในการเขียนเป็นรูปภาพหรือสัญลักษณ์ต่าง ๆ นอกจากนี้ยังมีเหตุผลอื่น ๆ ได้แก่
1 ผังงานระบบเป็นการสื่อความหมาระหว่างบุคคลต่อบุคคลมากกว่าที่จะสื่อความหมายระหว่างบุคคลกับเครื่อง เพราะผังงานระบบไม่ขึ้นอยู่กับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทำให้เครื่องไม่สามารถรับและเข้าใจว่าในผังงานระบบนั้นต้องการให้ทำอะไร
2 บางครั้งเมื่อพิจารณาจากผังงานระบบ จะไม่สามารถทราบได้ว่า ขั้นตอนการทำงานใดสำคัญกว่ากัน เพราะทุก ๆ ขั้นนอนจะใช้รูปาภพหรือสัญลักษณ์ในลักษณะเดียวกัน
3การเขียนผังงานระบบเป็นการสิ้นเปลือง เพราะจะต้องใช้กระดาษและอุปกรณ์อื่น ๆ ประกอบการเขียนภาพ บางครั้งการเขียนผังงานระบบอาจจะต้องใช้กระดาษมากกว่า 1 แผ่นทั้ง ๆ ที่การอธิบายงานเดียวกันจะใช้เนื้อที่เพียง 3-4 บรรทัดเท่านั้น
4 ผังงานระบบจะมีขนาดใหญ่ ถ้าโปรแกรมที่พัฒนาเป็นงานใหญ่ ทำให้ผังงานระบบแลดูเทอะทะไม่คล่องตัว และถ้ามีการปรับเปลี่ยนผังงานระบบจะทำได้ยาก บางครั้งอาจจะต้องเขียนผังงานขั้นใหม่
5 ในผังงานระบบจะบอกขั้นตอนการปฏิบัติงานว่าเป็นลำดับอย่างไร ปฏิบัติงานอะไรแต่จะไม่ระบุให้ทราบว่าทำไมจึงต้องเป็นลำดับและต้องปฏิบัติงานอย่างนั้น
6 ในภาษาคอมพิวเตอร์ที่ใช้กันในปัจจุบัน เช่น ภาษาซี ผังงานระบบไม่สามารถแทนลักษณะคำสั่งในภาษาได้ชัดเจน ตรงไปตรงมา
สัญลักษณ์ที่ใช้ในการเขียนผังงานระบบ
การเขียนผังงานระบบต้องใช้สัญลักษณ์ต่าง ๆ นำมาเรียงกัน เพื่อแสดงลำดับขั้นตอนการทำงาน โดยมีลูกศรเชื่อมระหว่างภาพต่าง ๆ สัญลักษณ์ที่ใช้ในการเขียนผังงานระบบที่นิยมใช้กันนั้นเป็นสัญลักษณ์ของหน่วยงานสถาบันมาตรฐานแห่งชาติสหรัฐอเมริกา (American National Standard Institute : ANSI) และองค์การมาตรฐานนานาชาติ
(International Standard Organization : ISO)หน่วยงานดังกล่าว ทำหน้าที่รวบรวมและกำหนดสัญลักษณ์มาตรฐานที่จะใช้เขียนผังงานระบบ ดังนี้
หลักเกณฑ์ในการวิเคราะห์งาน
การวิเคราะห์งานหรือการวิเคราะห์ปัญหา นับวาเป็นหัวใจสำคัญของการเขียนโปรแกรมหรือชุดคำสั่ง ต่าง ๆ เพื่อสั่งให้คอมพิวเตอร์ทำงาน การวิเคราะห์งานเป็นการศึกษาถึงลักษณะและรายละเอียดของปัญหาเกี่ยวกับงานที่ต้องการเขียนโปรแกรมเข้าเครื่องคอมพิวเตอร์นำมาศึกษา วิเคราะห์และดีความเพื่อช่วยให้เข้าใจง่ายนั้นได้ดียิ่งขั้นเช่น ต้องการให้เครื่องทำงานอะไร ลักษณะผลลัพธ์ที่ต้องการแสดง วิธีการประมวลผลที่ต้องใช้ และข้อมูลที่จะต้องป้อนเข้าไป
กล่าวโดยสรุป การวิเคราะห์งานจะเป็นการศึกษาผลลัพธ์(Output) ข้อมูลที่นำเข้า (Input) และวิธีการประมวลผล(Process) รวมทั้งการกำหนดชื่อตัวแปร (Variable) ที่จะใช้ในโปรแกรมนั่นเองวิธีการวิเคราะห์งานให้ได้ผลดีนั้นมีหลายแบบ แต่หลักเกณฑ์ใหญ่ ๆ ที่นิยมใช้กันอย่างทั่วไปสามารพแยกเป็นข้อ ๆ ด้ามลำดับดังต่อไปนี้
1 สิ่งที่โจทย์ต้องการ หมายถึง สิ่งที่ต้องการให้เครื่องคอมพิวเตอร์ทำให้ เช่น ต้องการให้คำนวณคะแนนเฉลี่ยของนักศึกษา ต้องการให้คำนวณเงินเดือนและค่าแรง เป็นต้นงานแต่ละชิ้นอายต้องกานใช้เครื่องทำงานให้มากว่าหนึ่งอย่าง ซึ่งควรจะเขียนไว้เป็นข้อ ๆ ให้ชัดเจน การพิจารณาถึงสิ่งที่โจทย์ต้องการเป็นส่วนที่สำคัญมาก เพราะถ้าไม่ทราบก็ไม่สามารถจะทำขั้นตอนต่อไปได้เลย หรือถ้าเข้าใจส่วนนี้ผิดก็จะทำให้งานขั้นตอนต่อไปผิดหมด
2 ผลลัพธ์ที่ต้องแสดง (Output) หมายถึง การวิเคราะห์ลักษณะของงาน หรือรูปแบบผลลัพธ์ที่ต้องการให้คอมพิวเตอร์แสดงออกมาว่าควรจะมีลักษณะอย่างไร มีรายละเอียดที่ต้องการให้แสดงในรายงานมากน้อยเพียงใด หรือรายละเอียดชนิดใดที่ไม่ต้องการให้แสดงออกมาในรายงาน ในกรณีนี้เป็นหน้าที่ของผู้เขียนโปรแกรมเองว่าจะต้องการรูปแบบรายงานออกมาโดยมีรายละเอียดที่จำเป็นและสวยงามเพียงใด เนื่องจากรายงานหรือผลลัพธ์นี้มีความสำคัญต่อผู้บริหาร เนื่องจากผู้บริหารจะใช้รายงานหรือผลลัพธ์ไปช่วยในการตัดสินใจวิเคราะห์และแก้ไขปัญหาต่าง ๆ ได้
3 ข้อมูลที่ต้องนำเข้า (Input) หมายถึง ข้อมูลที่ต้องป้อนเข้ามาเพื่อใช้ในการประมวลผล ซึ่งเป็นขั้นตอนที่ต่อเนื่องจากการวิเคราะห์ลักษณะของผลลัพธ์ คือ เมื่อพิจารณาถึงลักษณะของ Output ที่แน่นอนแล้ว ข้อมูลที่ต้องนำเข้าไปก็ควรจะพิจารณาให้เหมาะสมกับผลลัพธ์ที่ต้องการแสดงด้วย ทั้งนี้อาจจะต้องพิจารณาถึงขั้นตอนในการประมวลผลควบคู่ไปด้วย
4 ตัวแปรที่ใช้ (Variable) หมายถึง การกำหนดชื่อแทนความหมายของข้อมูลต่าง ๆ เพื่อความสะดวกในการอ้างถึงข้อมูลนั้น และการเขียนโปรแกรมด้วยการตั้งชื่อตัวแปรที่ใช้ควรคำนึงถึงความหมายที่เกี่ยวข้องกับข้อมูล การตั้งขื่อตัวแปรนี้จะขึ้นอยู่กับกฎเกณฑ์ของภาษาคอมพิวเตอร์ที่ใช้ในการเขียนโปรแกรม เพราะภาษาคอมพิวเตอร์แต่ละภาษามีกฎเกณฑ์และความสามารถในการตั้งตัวแปรแตกต่างกันไป แต่โดยทั่ว ๆ ไป การตั้งชื่อตัวแปรจะพิจารณาความหมายของข้อมูลว่าตรงกับคำใดในภาษาอังกฤษ แล้วนำมาตัดแปลงหรือย่อให้เข้ากับหลักเกณฑ์ของภาษาคอมพิวเตอร์ที่ใช้
5 วิธีการประมวลผล (Processing) หมายถึงวิธีการประมวลผลโดยแสดงขั้นตอนต่าง ๆ ที่ต้องทำตามาลำดับ เริ่มจาการรับข้อมูลนำไปประมวลผลจนได้ผลลัพธ์ ขั้นตอนนี้จะต้องแสดงการทำงานที่ต่อเนื่องตามลำดับ จึงต้องจัดลำดับก่อนหลังให้ถูกต้อง ในขั้นตอนของวิธีการนี้ถ้ายิ่งกระทำให้ละเอียดก็จะช่วยในการเขียนโปรแกรมยิ่งง่ายขึ้น
หลักทั่วไปในการเขียนผังงานระบบ
การเขียนผังงานระบบอาจจะเขียนลงในกระดาษที่มีแบบฟอร์มมาตรฐานที่เรียกว่า Flowchart Worksheet ซึ่งจะช่วยให้เขียนผังงานระบบได้สะดวกขึ้น ประหยัดเนื้อที่ ง่ายต่อการติดตามจุดต่อและดูเรียบร้อย หรือจะใช้กระดาษธรรมดาเขียนก็ได้ การเขียนรูปหรือสัญลักษณ์ต่าง ๆ ในผังงานระบบ จะใช้ Flowchart Template ซึ่งเป็นแผ่นพลาสติกที่มีช่องเจาะเป็นรูปสัญลักษณ์ต่าง ๆ ของผังงานระบบเข้าช่วยก็ได้ ปัจจุบันมีโปรแกรมคอมพิวเตอร์ที่ใช้เขียนผังงานระบบที่มีความสวยงามและเป็นมาตรฐานมากยิ่งขึ้น
ในการเขียนผังงานระบบที่ดี ควรมีหลักเกณฑ์ ดังนี้
1 มีจุดเริ่มต้นและจุดสิ้นสุดการทำงานเพียงจุดเดียวในหนึ่งผังงานระบบ
2 มีทางออกจากสัญลักษณ์ใด ๆ เพียงทางเดียว ยกเว้นสัญลักษณ์แสดงการตัดสินใจ สามารถมีทางออกมาตั้งแต่ 2 ทางได้
3 มีการเข้าสู่สัญลักษณ์ใด ๆ เพียงทางเดียว ถ้าต้องการกระทำกระบวนการเดียวกันควรใช้สัญลักษณ์ตัวเชื่อม
4 ทิศทางลำดับของขั้นตอน ควรจะเริ่มจากบนลงล่าง ซ้ายไปขวา
5 ข้อความที่บรรจุในสัญลักษณ์ควรสั้น กะทัดรัด เข้าใจง่าย
6 ขนาดของสัญลักษณ์ที่ใช้ควรมีขนาดที่เหมาะสม สวยงาม
7 เส้นทางที่ใช้ในผังงานควรเป็นระเบียบเรียบร้อย ชัดเจน ไม่พันกันไปมาจนไม่สามารถทราบจุดตั้งต้นและจุดสิ้นสุดที่แน่นอนได้
แบบฝึกหัด
1. ข้อใดอธิบายความหมายของผังงานถูกต้อง
ก. อธิบายขั้นตอนวิธีการทางานในลักษณะ ข้อความ
ข. อธิบายลำดับขั้นตอนในลักษณะรูปภาพ
ค. อธิบายลำดับขั้นตอนการแก้ปัญหา
ง. อธิบายขั้นตอนการทางานของโปรแกรมทั่วๆไป
2. ข้อใดคือความหมายของคำว่า “Algorithm”
ก. อธิบายลำดับขั้นตอนการทางานตั้งแต่ ขั้นตอนแรกถึงขั้นตอนสุดท้าย
ข. อธิบายวิธีการแก้ไขปัญหา
ค. ทดสอบลำดับขั้นตอนการแก้ปัญหา
ง. ถูกทุกข้อ
3. สัญลักษณ์การตัดสินใจมีทิศทางการไหลออกได้ กี่ทิศทาง
ก. 2
ข. 3
ค. 4
ง. 5
4. สัญลักษณ์ในข้อใดมีเฉพาะทิศทางออกเท่านั้น
ก. จุดเริ่มต้น
ข. จุดสิ้นสุด
ค. การแสดงผลลัพธ์ทางจอภาพ
ง. ถูกทั้งก. และข
5.สัญลักษณ์ในข้อใด สามารถมีเพียงสัญลักษณ์เดียวเท่านั้นในผังงาน
ก.การตัดสินใจ
ข.การประมวลผล
ค.การรับค่าข้อมูลง.จุดสิ้นสุดของผังงาน
6. ถ้าต้องการกำหนดให้ตัวแปร A เป็นข้อมูลที่รับเข้าทางแป้นพิมพ์ ต้องใช้สัญลักษณ์ในข้อใด
ก.Data
ข.Display
ค.Process
ง.Manual Input
7. การเขียนผังงานโปรแกรมต้องเริ่มด้วยสัญลักษณ์ในข้อใด
ก.Terminator
ข.Manual Input
ค.Process
ง.Data
8. ทิศทางของล าดับขั้นตอนการท างานในผังงาน นิยมเขียนอย่างไร
ก. ล่างขึ้นบน
ข. ขวาไปซ้าย
ค. บนลงล่าง
ง. ทิศทางใดก็ได้
9.ข้อใดคือประโยชน์ที่ได้จากผังงาน
ก. ทำให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่าย
ข. ผู้เขียนสามารถมองเห็นลำดับขั้นตอนวิธี การทำงานได้ชัดเจน
ค. การเขียนโปรแกรมทำได้สะดวกรวดเร็วง่าย
ง. ถูกทุกข้อ
10. สัญลักษณ์ข้อใดมีได้เพียงสัญลักษณ์เดียวเท่านั้นในผังงาน
ก. จุดเริ่มต้น
ข. จุดสิ้นสุด
ค. แสดงผลทางจอภาพ
ง. ถูกทั้งก.และข.
เฉลย
1.ข. อธิบายลาดับขั้นตอนในลักษณะรูปภาพ
2.ก. อธิบายลำดับขั้นตอนการทางานตั้งแต่ ขั้นตอนแรกถึงขั้นตอนสุดท้าย
3.ก. 2
4.ก. จุดเริ่มต้น
5.ง.จุดสิ้นสุดของผังงาน
6. ง.Manual Input
7. ก.Terminator
8.ค. บนลงล่าง
9.ง. ถูกทุกข้อ
10.ก. จุดเริ่มต้น