ผังงาน (Flowchart)

ผังงาน (Flowchart) คือ กราฟิกที่แสดงการตัดสินใจของผังงานที่แสดงออกมาในรูปทรงต่างๆที่มีความหมาย ซึ่งพัฒนาโดย Herman Goldstine และ John von Neumann ในปี ค.ศ.1940ซึ่งผังงาน (Flowchart) จะแสดงขั้นตอนการทำงานจากบนลงล่างซึ่งสามารถช่วยอธิบายสิ่งที่ซับซ้อนเช่นขั้นตอนในการเขียนโปรแกรมหรือการแก้ไขปัญหาทางคอมพิวเตอร์


Responsive image

ผังงานแบ่งได้ 2 ประเภท
1. ผังงานระบบ (System Flowchart) คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้างๆ แต่ไม่เจาะลงในระบบงานย่อย
2. ผังงานโปรแกรม (Program Flowchart) คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์


กฏของผังงาน (General Rules for flowcharting)
1. แต่ละสัญลักษณ์เชื่อมต่อด้วยลูกศร (ไม่ใช่เส้น)
2. สัญลักษณ์ของผังงาน (Flowchart symbols) มีจุดเริ่มที่ด้านบนของสัญลักษณ์ที่ไม่มีจุดเข้าในทิศทางอื่นและมีจุดออกของทิศทางที่ด้านล่าง ยกเว้นสัญลักษณ์ของการตัดสินใจ
3. สัญลักษณ์ของการตัดสินใจ(Decision symbol) มีทิศทางการไหลออกของข้อมูล 2 ทิศทางทำให้สามารถเลือกได้ว่าทิศทางการไหลออกของข้อมูลจะอยู่ด้านล่างหรือด้านข้างใดข้างหนึ่ง
4. โดยทั่วไปทิศทางการไหลของผังงาน (Flowchart)  จะไหลจากบนลงล่าง อย่างไรก็ตามขึ้นกับความยาวของผังงานต้องมากกว่า 3 สัญลักษณ์
5. ตัวเชื่อมต่อ (Connectors) ที่ใช้เชื่อมต่อในการแบ่งผังงาน (Flowchart)   ตัวอย่างเช่น

6. ผังงานย่อยและผังงานหลักเป็นอิสระต่อกัน
7. ทุกผังงานเริ่มต้นด้วยจุดเริ่มต้นหรือกระบวนการที่กำหนดไว้ล่วงหน้า
8. ทุกผังงานสิ้นสุดที่จบการทำงาน หรือการวนซ้ำ



ข้อดีของผังงาน (Advantages of Flowchart)
1. มีความหมายชัดเจนมากขึ้น (Conveys Better Meaning)
ตั้งแต่ผังงาน (Flowchart) ถูกนำเข้ามาใช้ในการเขียนโปรแกรม มันช่วยให้โปรแกรมเมอร์เข้าใจและอธิบายตรรกะของโปรแกรม ให้โปรแกรมเมอร์คนอื่นเข้าใจได้ง่ายขึ้น
2. การวิเคราะห์ปัญหาที่เกิดขึ้นได้อย่างมีประสิทธิภาพ (Analyses the problem effectively)
ผังงาน (Flowchart) ช่วยให้โปรแกรมเมอร์สามารถวิเคราะห์รายละเอียดของปัญหา โดยสามารถเขียนผังงานในส่วนที่เป็นรายละเอียดส่วนย่อยได้
3. การเข้ารหัสที่มีประสิทธิภาพ (Effective Coding)
มันง่ายมากๆ สำหรับโปรแกรมเมอร์เขียนโปรแกรม เพราะผังงาน (Flowchart) ช่วยให้เข้าใจแนวคิดและลำดับขั้นตอนที่ชัดเจน
4. การแก้จุดบกพร่องของระบบ (Systematic Debugging)
หลังจากการออกแบบโปรแกรมอย่างดีแล้ว ก็ยังคงเกิดข้อผิดพลาดบางอย่างเกิดขึ้นในโปรแกรม เพราะโปรแกรมเมอร์อาจไม่พบปัญหา การใช้ผังงาน (Flowchart) สามารถช่วยลดและทำให้พบจุดผิดพลาดได้ง่ายขึ้น



ข้อดีของการใช้ผังงาน (Advantages of using Flowcharts)
การใช้ผังงานในการแก้ปัญหามีข้อดีดังต่อไปนี้:
1) การสื่อสาร (Communication): ผังงาน (Flowchart) เป็นช่องทางการสื่อสารของระบบตรรกะและขั้นตอนที่เกี่ยวข้องของปัญหา ที่เกี่ยวข้องทั้งหมดของลูกข่ายของระบบ
2) การวิเคราะห์ที่มีประสิทธิภาพ (Effective analysis): ผังงาน (Flowchart) ของปัญหาสามารถใช้สำหรับการวิเคราะห์ปัญหาที่มีประสิทธิภาพ
3) เอกสารของโปรแกรม / ระบบ (Documentation of Program/System): ผังงานโปรแกรม (Program flowcharts)เป็นส่วนสำคัญของเอกสารโปรแกรมที่ดี เอกสารโปรแกรมจะถูกใช้เพื่อวัตถุประสงค์ต่างๆเช่นรู้ส่วนประกอบในโปรแกรม ความซับซ้อนของโปรแกรม ฯลฯ
4)การบำรุงรักษาโปรแกรมที่มีประสิทธิภาพ (Efficient Program Maintenance): เมื่อโปรแกรมการพัฒนาและการดำเนินงานเป็นที่จะต้องใช้เวลาในการบำรุงรักษาเวลา ซึ่งผังงาน (Flowchart) ช่วยให้การบำรุงรักษาทำได้ง่ายขึ้น
5) การเข้ารหัสของโปรแกรม (Coding of the Program): การออกแบบของการแก้ปัญหาของปัญหาใดๆ สุดท้ายจะถูกแปลงเป็นโปรแกรมคอมพิวเตอร์และ ผังงาน (Flowchart) ช่วยให้การเข้ารหัสนั้นง่ายขึ้น



โครงสร้างพื้นฐาน (The Three Basic Control Structures)

โปรแกรมถูกสร้างบน 3 พื้นฐานหลัก คือการทำงานแบบตามลำดับ (Sequence), การเลือกกระทำตามเงื่อนไข (Selection: Decision) and การทำซ้ำ (Repetition: iteration or looping)

1. การทำงานแบบตามลำดับ (Sequence)

การทำงานแบบตามลำดับ (Sequence)หมายถึงการดำเนินการของขั้นตอนการประมวลผลอย่างใดอย่างหนึ่งหลังจากที่อื่น รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด นี่คือรูปแบบทั่วไปของลำดับ

2. การเลือกกระทำตามเงื่อนไข (Selection : Decision)

การตัดสินใจ หรือเลือกเงื่อนไข (Selection : Decision)คือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น

3. การทำซ้ำ (Repetition:iteration or looping)

การทำซ้ำ (Repetition : iteration or looping) หมายถึงการทำซ้ำตราบใดที่เงื่อนไขเป็นจริง นี่คือรูปแบบทั่วไปของการทำซ้ำ

Responsive image

อัลกอริทึมและผังงานสำหรับการแก้ปัญหา (Algorithm and flowchart for solving problem) :

Responsive image