ผังงาน (Flowchart Diagram)
Home  Contents KMArticlesMembersSponsorsAbout us

ปรับปรุง : 2557-12-16 (ปรับ research step)
ขอบซ้ายขอบบน
ผังงาน (Flowchart Diagram)

Process Symbol

Input/Output Symbol

Decision Symbol

Terminal Symbol

Document Symbol

Connector Symbol


ความหมายของผังงาน
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่า
ผังงานแบ่งได้ 2 ประเภท
1. ผังงานระบบ (System Flowchart)
คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย
2. ผังงานโปรแกรม (Program Flowchart)
คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์
+ สนับสนุนการสอนเขียนโปรแกรม
การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง ประกอบด้วยอะไรบ้าง
ผมขอตอบอย่างสั้น ๆ ว่าทุกภาษาต้องมีหลักการ 3 อย่างนี้คือ การทำงานแบบตามลำดับ(Sequence) การเลือกกระทำตามเงื่อนไข(Decision) และ การทำซ้ำ(Loop) แม้ตำราหลาย ๆ เล่มจะบอกว่า decision แยกเป็น if กับ case หรือ loop นั้นยังแยกเป็น while และ until ซึ่งแตกต่างกัน แต่ผมก็ยังนับว่าการเขียนโปรแกรม แบบมีโครงสร้างนั้น มองให้ออกแค่ 3 อย่างก็พอแล้ว และหลายท่านอาจเถียงผมว่าบางภาษาไม่จำเป็นต้องใช้ Structure Programming แต่เท่าที่ผมศึกษามา ยังไม่มีภาษาใด เลิกใช้หลักการทั้ง 3 นี้อย่างสิ้นเชิง เช่น MS Access ที่หลายคนบอกว่าง่าย ซึ่งก็อาจจะง่ายจริง ถ้าจะศึกษาเพื่อสั่งให้ทำงานตาม wizard หรือตามที่เขาออกแบบมาให้ใช้ แต่ถ้าจะนำมาใช้งานจริง ตามความต้องการของผู้ใช้แล้ว ต้องใช้ประสบการณ์ในการเขียน Structure Programming เพื่อสร้าง Module สำหรับควบคุม Object ทั้งหมดให้ทำงานประสานกัน
1. การทำงานแบบตามลำดับ
(Sequence)
รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์
2. การเลือกกระทำตามเงื่อนไข
(Decision or Selection)
การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
3. การทำซ้ำ
(Repeation or Loop)
การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน ผู้เขียนโปรแกรมต้องจินตนาการด้วยตนเอง
การเขียนผังงานในการทำงาน
+ ผังงาน เป็นเครื่องมือสำหรับวาดภาพ 2 มิติ นำเสนอขั้นตอนการดำเนินการ มักใช้ในการแสดงแบบโปรแกรมที่ไม่ซับซ้อนมากนัก ต่อมาก็มีการประยุกต์ใช้แสดงขั้นตอนการทำงานของส่วนงานต่าง ๆ เพราะสัญลักษณ์ในแผนภาพช่วยในการอธิบายการทำงานแบบมีเงื่อนไขได้ดีกว่าการเขียนเชิงพรรณา
ประโยชน์ของการใช้ผังงาน
1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (Problem Define)
2. แสดงลำดับการทำงาน (Step Flowing)
3. หาข้อผิดพลาดได้ง่าย (Easy to Debug)
4. ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read)
5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (Flexible Language)

+ http://manufacturingvsmechanical.blogspot.com/2014/08/flow-chart-and-meaning.html
+ http://www.cutting-mats.net/flow-chart-template-3473.html
ทำความเข้าใจกับผังงานก่อนลงมือเขียน
หน้าที่ของผังงาน คือ การนำเสนอกระบวนการ (Process) ในขอบเขตจำกัด ให้เข้าใจว่าหากรับข้อมูลเข้า (Input) แล้วจะประมวลผลอย่างไร จึงได้ออกมาเป็นผลลัพธ์ (Output) ในอดีตการเขียนโปรแกรม หรือกระบวนการไม่ซับซ้อน การมองภาพว่า input - process - output สามารถอยู่ในผังงานเดียวกันก็ทำได้ จึงนิยมใช้เป็นเครื่องมือสร้างทักษะให้กับผู้เริ่มต้นในการมองการประมวลผลของระบบทีละขั้นตอน
ปัจจุบันการประมวลผล จะรับข้อมูล แล้วประมวลผล ส่งผลไปเป็นข้อมูลของอีกกระบวนการหนึ่ง อาจทำอย่างนี้อีกหลายรอบ ด้วยกระบวนการ และข้อมูลที่ต่างกัน การใช้ผังงานจึงได้รับความนิยมลดลงในการใช้แสดงแบบซอฟท์แวร์ขนาดใหญ่ เนื่องจากการประมวลผลมีความซับซ้อนมากขึ้น ปัจจุบันมีการใช้ Data Flow Diagram หรือ UML มาแสดงแบบซอฟท์แวร์ที่มองได้กว้างและครอบคลุมกว่า
+ Process = ประมวลผล
+ Procedure = กระบวนการ
แผนผังนี้ .. สื่อว่าการดำเนินการภายหลังได้มีการออกระเบียบ ประกาศ คำสั่งนั้น มีหลายแนวทางในการนำเข้าระบบฐานข้อมูล หรือไม่นำเข้าระบบก็ได้ ทั้งนี้ขึ้นอยู่กับการพิจารณาของเจ้าของเรื่อง หากนำเข้าระบบซึ่งเป็นฐานข้อมูลภายใน ก็เลือกได้อีกว่าจะเผยแพร่โดยบุคคลที่เกี่ยวข้องหรือไม่ แสดงให้เห็นว่ามีทั้งระบบและกลไกที่เข้ามาเกี่ยวข้องในผังงานนี้
+ flowchart_doc_sys.pptx

เกณฑ์การตัดเกรด แต่ละแบบ
ขอบซ้ายขอบบน
การเขียนผังงาน
โจทย์ที่ 1
- พิมพ์เลข 0 ถึง 4 ทางจอภาพ

ตัวอย่างผังงาน
โจทย์ที่ 2
- รับค่าจากแป้นพิมพ์เก็บลงตัวแปรอาร์เรย์ 5 ตัว
- แล้วทำซ้ำอีกครั้ง เพื่อหาค่าสูงสุด
ตัวอย่างผังงาน
อัลกอริทึม
1. กำหนดค่าเริ่มต้นให้ max, i และ ar
2. ทำซ้ำเพื่อรับค่าเก็บใน ar ให้ครบ 5 ครั้ง
3. กำหนดค่าเริ่มต้นให้ i อีกครั้ง
4. ทำซ้ำเพื่อนำค่าที่เก็บไว้ใน ar มาหาค่า max
5. พิมพ์ค่าสูงสุด ที่หาได้




ภาพจาก facebook.com

ถ้าเขียนผังงานจากภาพนี้
จะเขียนอย่างไร

ตัวอย่างผังงานระบบไฟแดง

โจทย์ที่ 3
- พิมพ์พีระมิดของตัวเลขดังตัวอย่าง
- มีโจทย์อีกหลายสิบให้ฝึกทำ
Result
1
12
123
1234
12345
Source Code
<?
$i = 1;
while ($i <= 5){
  $j = 1;
  while ($j <= $i) {
    echo $j;
    $j++;
  }
  echo "<br>";
  $i++;
}
?>
Source Code
#include <iostream.h>
#include <conio.h>
void main() {
  for(int i=1;i<=5;i++) {
    for(int j=1;j<=i;j++) {
      cout << j;
    }
    cout << "end" << '\n';
  }
  getch();
}



ดาวน์โหลด : diaflowchart01.dia
Dia - Diagram Drawing ใน ซีดีจันทรา บล็อก : ดาวน์โหลด : บนแฟรชไดร์ฟ 21 MB : UML by dia : ซีดีจันทรา
+ Dia (ไดอะ) เป็นโปรแกรมวาดภาพกราฟฟิกส์แบบเวกเตอร์ที่ออกแบบมา เพื่อให้ใช้ในการ เขียนไดอะแกรมโดยเฉพาะ สามารถเขียนไดอะแกรมได้หลายชนิดอย่างรวดเร็ว Dia มี ชุดออปเจคที่ช่วยในการวาด Entity Relationship Diagram, UML Diagram, Flowchart Diagram, Network Diagram ,วงจรไฟฟ้าอย่างง่าย ๆ รวมถึงไดอะแกรมอื่น นอกจากนี้ Dia ยังสามารถเพิ่มชุดออปเจคได้ด้วยการเขียนไฟล์ XML
+ Dia รุ่น 0.97.2 สามารถใช้งานผ่าน Flash Drive โดยไม่ต้องติดตั้ง เรียกใช้ได้ทันที
Files
+ flowchart1.dia
+ flowchart1.pptx
ขอบซ้ายขอบบน
ชีวิตจริง กับคอมพิวเตอร์
เรื่องนี้เป็น 1 ใน 3 ของ structured programming
ในชีวิตจริง 
มีคำว่า if .. then .. ให้เห็นอยู่เสมอตามข่าว 
เช่น ระเบิดที่ ถ.บรรทัดทอง
เพราะการระเบิดที่ทำให้ผู้ชุมนุมได้รับบาดเจ็บ
จะมีผลให้สถานการณ์เปลี่ยนไป

เมื่อเขียนเป็น pseudocode จะได้ว่า
ถ้า มีความรุนแรง และมีผู้ชุมนุมได้รับบาดเจ็บ
แล้ว รัฐบาลต้องรับผิดชอบ หรือเปลี่ยนผู้บริหารประเทศ

ในชีวิตจริงมีตัวแปรมากกว่า 1 ตัวเสมอ

if $violent == true then 
  change("yes") 
else 
  change("no")
+ http://www.manager.co.th
+ http://www.thaiall.com/blog/burin/5718/
ขอบซ้ายขอบบน
ผังงานแบบโครงสร้าง กับไม่เป็นโครงสร้าง
มีโอกาสพูดคุยกับนักศึกษาเรื่องการเขียนผังงาน ว่าเขียนแบบใดนำไปเขียนโปรแกรมได้ และได้คุยกับนักศึกษาที่ทำ IS และบุคลากรที่สนใจใช้ SPSS เพื่อให้เห็นภาพรวมของการประมวลผลข้อมูลทางสถิติ ต้องรู้ว่าเริ่มต้นอย่างไร และสิ้นสุดอย่างไร เพราะการประมวลผล T-Test, F-Test, Chi-Square หรือ One-way ANOVA เป็นเพียงขั้นตอนตรงกลางของการวิจัยทางสังคมศาสตร์และมนุษยศาสตร์เท่านั้น
+ research.pptx
ขอบซ้ายขอบบน
กรณีศึกษา
รถคันไหนควรได้ไปก่อน ถ้าถึงพร้อมกัน
เป็น problem ให้พิจารณาตัดสินใจ

ก่อนตัดสินใจ ให้เปลี่ยนเงื่อนไขว่า
"ถ้าเปลี่ยน รถโรงเรียน เป็น รถดับเพลิง"
ผลการพิจารณา จะเป็นอย่างไร

แล้วให้นักศึกษาเขียน if ซ้อนกัน 4 ชั้น
สำหรับติดสินใจว่า รถคันใดจะได้ไปก่อน
เป็น solution ของภาพนี้
ที่มี 4 ชั้น เพราะเผื่อรถทั่วไปด้วย
ขอบซ้ายขอบบน
แนะนำเว็บ (Web Guides)
- เครื่องมือ Edraw Flowchart Software : flowcharttools.com
- สอนเขียนเป็นภาษาอังกฤษ : tpub.com
- เนื้อหาการเขียน Flow chart ที่สมบูรณ์ : bcom.net
- รวมภาพสัญลักษณ์จากไซต์ต่าง ๆ : blogspot.com
..
"Imagination is more important than knowledge" - Albert Einstein
Home
Thaiabc.com
Thainame.net
Lampang.net
Nation university
PHP
MySQL
Visual basic.NET
TabletPC
Linux
Online quiz
Download
Search engine
Web ranking
Add website
Blog : Education
Blog : ACLA
Blog : Lampang
Facebook.com
Twitter.com
About us
My dream
Site map
Sponsor
http://goo.gl/72BPC