วิชา การประมวลผลข้อมูลอิเล็กทรอนิกส์ (Electronic Data Processing)
 
เนื้อหารายวิชา
หน่วยที่  5
ผังงาน (Flowchart)
ความหมายของผังงาน
ประโยชน์ของผังงาน
ประเภทของผังงาน
สัญลักษณ์ที่ใช้ในการเขียนผังงาน
หลักเกณฑ์ในการเขียนผังงาน
ลักษณะโครงสร้างของผังงาน
   
ความหมายของผังงาน
          ผังงาน (Flowchart)  คือแผนภาพซึ่งแสดงลำดับขั้นตอนของการทำงาน โดยแต่ละขั้นตอนจะถูกแสดงโดยใช้สัญลักษณ์ซึ่งมีความหมายบ่งบอกว่าขั้นตอนนั้น ๆ  มีลักษณะการทำงานแบบใด  และแต่ละขั้นตอนจะถูกเชื่อมโยงกันด้วยลูกศรเพื่อแสดงลำดับการทำงาน ทำให้ง่ายต่อการทำความเข้าใจว่าในการทำงานนั้น ๆ  มีขั้นตอนอะไรบ้าง และมีลำดับอย่างไร
     
ประโยชน์ของผังงาน
1. ช่วยให้สามารถทำความเข้าใจลำดับขั้นตอนการทำงานของโปรแกรมหรือระบบใด ๆ
    ได้อย่างรวดเร็ว
2. ช่วยแสดงลำดับขั้นตอนการทำงาน ทำให้สามารถเขียนโปรแกรมได้อย่างเป็นระบบ
    ไม่สับสน นอกจากนี้ผังงานยังเป็นอิสระต่อภาษาที่ใช้ในการเขียนโปรแแกรม
    กล่าวคือ จากผังงานเดียวกันสามารถนำไปเขียนโปรแกรมด้วยภาษาใดก็ได้
     
ประเภทของผังงาน
  1. ผังงานระบบ (System flowchart)  เป็นผังงานซึ่งแสดงขอบเขต  และลำดับขั้นตอนการทำงานของ ระบบหนึ่ง ๆ รวมทั้งแสดงรูปแบบของข้อมูลนำเข้า (input)  และข้อมูลออก (output) ว่าถูกรับเข้าหรือแสดงผลโดยผ่านสื่อประเภทใด เนื่องจากผังงานระบบเป็นแผนภาพที่แสดงถึงระบบโดยรวม ดังนั้นกระบวนการหรือ โปรแกรมหนึ่ง ๆ  อาจถูกแสดงเป็นเพียงขั้นตอนหนึ่งในผังงานระบบเท่านั้น
  2. ผังงานโปรแกรม (Program flowchart)  เป็นผังงานซึ่งแสดงลำดับขั้นตอนการทำงานของโปรแกรมหนึ่ง
สัญลักษณ์ที่ใช้ในการเขียนผังงาน

          การเขียนผังงาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการทำงาน โดยนำภาพสัญลักษณ์ต่าง ๆ มาเรียงต่อกัน สัญลักษณ์ที่นิยมใช้ในการเขียนผังงานนั้น หน่วยงานที่ชื่อว่า American National Standards Institute (ANSI) และ International Standard Organization (ISO) ได้ร่วมกันกำหนดสัญลักษณ์มาตรฐานเพื่อใช้ในการเขียนผังงานดังแสดงในตาราง

สัญลักษณ์
ชื่อ
คำอธิบาย
เทอร์มินัล
(terminal symbol)
แสดงจุดเริ่มต้นและจุดจบการทำงาน
การรับเข้าหรือแสดงผล
(input/output symbol)
แสดงการรับข้อมูลเข้าหรือแสดงผลลัพธ์โดยไม่ระบุชนิดของอุปกรณ์
ที่ใช้ในการรับเข้าหรือแสดงผล
การนำข้อมูลเข้าด้วยมือ
(manual input symbol)
แสดงการนำข้อมูลเข้าโดยมนุษย์ เช่น อาจใช้แป้นพิมพ์ หรือเมาส์
บัตรเจาะรู
(punched card symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้บัตรเจาะรูเป็นสื่อ
เทปกระดาษเจาะรู
(magnetic tape symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้เทปกระดาษเจาะรูเป็นสื่อ
เทปแม่เหล็ก
(magnetic tape symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้เทปแม่เหล็กเป็นสื่อ
จานแม่เหล็ก
(magnetic disk symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้จานแม่เหล็กเป็นสื่อ
ดรัมแม่เหล็ก
(magnetic drum symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้ดรัมแม่เหล็กเป็นสื่อ
แกนแม่เหล็ก
(core symbol)
แสดงการรับข้อมูลเข้า หรือแสดงผลโดยใช้แกนแม่เหล็กเป็นสื่อ
การประมวลผล
(process symbol)
แสดงการประมวลผล ได้แก่ การคำนวณและการกำหนดค่า
เอกสาร
(document symbol)
แสดงการแสดงผลลัพธ์บนกระดาษโดยใช้เครื่องพิมพ์
การแสดงผล
(display symbol)
แสดงการแสดงผลลัพธ์ในขณะที่ยังมีการประมวลผลอยู่ ตัวอย่างเช่น การแสดงผลลัพธ์ทางหน้าจอ
การตัดสินใจ
(dicision symbol)
แสดงการตัดสินใจหรือเปรียบเทียบ
การเตรียม
(preparation symbol)
แสดงการกำหนดค่าต่าง ๆ ล่วงหน้าในการทำงานหนึ่ง ๆ ที่มีการทำงานซ้ำ ๆ
จุดต่อภายหน้า
(on-page connector symbol)
แสดงจุดต่อเนื่องของผังงานที่อยู่ในหน้าเดียวกัน แต่ไม่สะดวกที่จะใช้เส้นโยงหากัน ภายในสัญลักษณ์นี้จะมีหมายเลขหรืออักษรกำกับ เพื่อไม่ให้สับสนว่าจากจุดใดไปต่อที่จุดใดในกรณีที่มีการใช้สัญลักษณ์นี้หลายครั้งในผังงานเดียวกัน
จุดต่อเนื่องที่อยู่คนละหน้า
(off-page connector symbol)
แสดงจุดต่อเนื่องของผังงานเดียวกันซึ่งอยู่คนละหน้า ภายในสัญลักษณ์นี้จะมีหมายเลขหรืออักษรกำกับ เพื่อไม่ให้สับสนว่าจากจุดใดไปต่อที่จุดใดในกรณีที่มีการใช้สัญลักษณ์นี้หลายที่ในผังงานเดียวกัน
ลูกศรแสดงลำดับการทำงาน
(flow line)
แสดงลำดับการทำงาน ใช้แสดงลำดับขั้นตอนการทำงาน โดยหัวลูกศรจะชี้ขั้นตอนในลำดับต่อ ๆ ไป
การเชื่อมโยงสื่อสาร
(communication link symbol)
แสดงถึงการส่งข้อมูลผ่านระบบโทรคมนาคม ได้แก่ โทรศัพท์ โทรสาร และไมโครเวฟ เป็นต้น
การอธิบาย
(comment or annotation symbol)
อธิบายส่วนใด ๆ ของผังงานเพิ่มเติมเพื่อให้เกิดความเข้าใจมากขึ้น
การรวม
(merge symbol)
แสดงการนำข้อมูลตั้งแต่ 2 ชุดขึ้นไปมารวมเป็นชุดเดียวกัน
การแยก
(extract symbol)
แสดงการแยกข้อมูล 1 ชุดออกเป็นข้อมูลหลาย ๆ ชุด
การรวมและการแยก
(collate symbol)
แสดงให้เห็นถึงการได้มาของข้อมูลตั้งแต่ 2 ชุดขึ้นไป จากข้อมูลตั้งแต่ 2 ชุดขึ้นไป
การเรียง
(sort symbol)
แสดงการเรียงลำดับข้อมูลให้เป็นไปตามลำดับที่ต้องการ
     
หลักเกณฑ์ในการเขียนผังงาน
  1. สัญลักษณ์ที่ใช้อาจมีขนาดต่าง ๆ กันได้ แต่จะต้องมีรูปร่างเป็นสัดส่วนตามมาตรฐาน
  2. ทิศทางของลูกศรในผังงาน ควรจะมีทิศทางจากบนลงล่าง หรือจากซ้ายไปขวาเสมอ
  3. ผังงานควรมีความเรียบร้อย สะอาด พยายามหลีกเลี่ยงการเขียนลูกศรที่ทำให้เกิดจุดตัด เพราะจะทำให้อ่านและทำความเข้าใจได้ยาก และถ้าในผังงานมีการเขียนข้อความอธิบายใด ๆ ควรทำให้สั้นกระทัดรัดและได้ใจความ
     
ลักษณะโครงสร้างของผังงาน

        ผังงานโดยทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ

  1. โครงสร้างแบบเป็นลำดับ (sequence structure)
  2. โครงสร้างแบบมีการเลือก (selection structure)
  3. โครงสร้างแบบทำซ้ำ (iteration structure)
โครงสร้างแบบเป็นลำดับ (Sequence structure)
 
          เป็นส่วนงานที่ต้องทำตามลำดับก่อน-หลัง ดังแสดงในรูป
          จากรูป หมายความว่า ต้องทำงานที่คำสั่ง A ก่อนแล้วจึงทำคำสั่ง B และคำสั่ง C ตามลำดับ
     
โครงสร้างแบบมีการเลือก (selection structure)
     
          แบ่งเป็น 2 ประเภท คือ
          1) การเลือกระหว่างรายการสองทางเลือก เรียกว่า IF-THEN-ELSE ดังแสดงในรูป
          จากรูป แสดงการเลือกเงื่อนไข A ระหว่างทางเลือก b และ c โดยทดสอบเงื่อนไข A ถ้าเงื่อนไข A มีค่าเท่ากับ b ให้ไปทำงานตามทางเลือก b คือทำคำสั่ง B แต่ถ้าเงื่อนไข A มีค่าเท่ากับ c ให้ไปทำงานตามทางเลือก c คือทำคำสั่ง C
     
          2) การเลือกจากกลุ่มรายการที่มีจำนวนมากกว่าสอง เรียกว่า CASE ดังแสดงในรูป
          จากรูป แสดงการเลือกเงื่อนไข X ระหว่างทางเลือก a, b, c และ d โดยทดสอบเงื่อนไข X ว่า X มีค่าเท่ากับค่าใด ถ้า X มีค่าเท่ากับ a ให้ไปทางเลือก a คือทำคำสั่ง A ถ้า X มีค่าเท่ากับ b ให้ไปทางเลือก b คือทำคำสั่ง B ถ้า X มีค่าเท่ากับ c ให้ไปทางเลือก c คือทำคำสั่ง C ถ้า X มีค่าเท่ากับ d ให้ไปทางเลือก d คือทำคำสั่ง D
     
โครงสร้างแบบทำซ้ำ (iteration structure)
          แบ่งออกเป็น 2 ประเภทคือ
          1) การทำงานซ้ำเมื่อเงื่อนไขเกิดขึ้น (DO-WHILE) ดังรูป
          จากรูป แสดงช่วงการทำงานซ้ำ คือชุดคำสั่ง R โดยที่ต้องตรวจสอบว่าเงื่อนไข A เป็นจริงหรือไม่ ถ้าเงื่อนไข A เป็นจริงจึงจะทำชุดคำสั่ง R ถ้าเงื่อนไข A เป็นเท็จจะหยุดการทำงานซ้ำ และไปทำที่คำสั่ง B และทำงานต่อไป
     
          2) การทำงานซ้ำจนกระทั่งเงื่อนไขที่ระบุเกิดขึ้น (REPEAT-UNTIL) ดังรูป
          จากรูป แสดงช่วงการทำงานซ้ำ คือชุดคำสั่ง R โดยจะทำชุดคำสั่ง R หนึ่งครั้งก่อน แล้วจึงจะเปรียบเทียบเงื่อนไข A ถ้าเงื่อนไข A เป็นจริงจึงจะทำชุดคำสั่ง R ถ้าเงื่อนไข A เป็นเท็จจะหยุดการทำงานซ้ำ และไปทำที่คำสั่ง B และทำงานต่อไป
 
สรุปการเขียนผังงาน
          การเขียนผังงานเป็นจุดเริ่มต้นของการแสดงขั้นตอนการทำงานของโปรแกรมคอมพิวเตอร์
ผู้ใช้ควรเขียนผังงานก่อนที่จะลงมือเขียนโปรแกรมคอมพิวเตอร์ทุกครั้งเพื่อให้ทราบถึงแนวคิด
และวิธีแก้ปัญหานั้น ๆ และผู้ใช้สามารถแปลงผังงานนั้นเป็นโปรแกรมได้อย่างสะดวก และง่ายดาย
การเขียนผังงานยังมีประโยชน์ในด้านการบำรุงรักษาโปรแกรม เพราะถ้าโปรแกรมนั้นมีข้อผิดพลาด
หรือถ้าต้องการปรับปรุงโปรแกรมนั้น ก็สามารถตรวจสอบขั้นตอนการแก้ปัญหาจากผังงานได้อย่างง่าย
ในกรณีที่มีผู้อื่นที่ไม่ใช่ผู้เขียนโปรแกรมต้องการมาศึกษาโปรแกรมนั้น ก็ควรจะเริ่มต้นศึกษาจากผังงานก่อน
เพื่อให้เข้าใจโปรแกรมนั้นได้อย่างชัดเจน และประหยัดเวลา