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

ปรับปรุง : 2557-04-09 (ปรับ 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)
คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์
ประโยชน์ของผังงาน
1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (Problem Define)
2. แสดงลำดับการทำงาน (Step Flowing)
3. หาข้อผิดพลาดได้ง่าย (Easy to Debug)
4. ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read)
5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (Flexible Language)
+ สนับสนุนการสอนเขียนโปรแกรม
การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง ประกอบด้วยอะไรบ้าง
ผมขอตอบอย่างสั้น ๆ ว่าทุกภาษาต้องมีหลักการ 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 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน ผู้เขียนโปรแกรมต้องจินตนาการด้วยตนเอง
ทำความเข้าใจกับผังงานก่อนลงมือเขียน
หน้าที่ของผังงาน คือ การนำเสนอกระบวนการ (Process) ในขอบเขตจำกัด ให้เข้าใจว่าหากรับข้อมูลเข้า (Input) แล้วจะประมวลผลอย่างไร จึงได้ออกมาเป็นผลลัพธ์ (Output) ในอดีตการเขียนโปรแกรม หรือกระบวนการไม่ซับซ้อน การมองภาพว่า input - process - output สามารถอยู่ในผังงานเดียวกันก็ทำได้ จึงนิยมใช้เป็นเครื่องมือสร้างทักษะให้กับผู้เริ่มต้นในการมองการประมวลผลของระบบทีละขั้นตอน
ปัจจุบันการประมวลผล จะรับข้อมูล แล้วประมวลผล ส่งผลไปเป็นข้อมูลของอีกกระบวนการหนึ่ง อาจทำอย่างนี้อีกหลายรอบ ด้วยกระบวนการ และข้อมูลที่ต่างกัน การใช้ผังงานจึงได้รับความนิยมลดลงในการใช้แสดงแบบซอฟท์แวร์ขนาดใหญ่ เนื่องจากการประมวลผลมีความซับซ้อนมากขึ้น ปัจจุบันมีการใช้ Data Flow Diagram หรือ UML มาแสดงแบบซอฟท์แวร์ที่มองได้กว้างและครอบคลุมกว่า
+ Process = ประมวลผล
+ Procedure = กระบวนการ
การเขียนผังงานในการทำงาน
+ ผังงาน เป็นเครื่องมือสำหรับวาดภาพ 2 มิติ นำเสนอขั้นตอนการดำเนินการ มักใช้ในการแสดงแบบโปรแกรมที่ไม่ซับซ้อนมากนัก ต่อมาก็มีการประยุกต์ใช้แสดงขั้นตอนการทำงานของส่วนงานต่าง ๆ เพราะสัญลักษณ์ในแผนภาพช่วยในการอธิบายการทำงานแบบมีเงื่อนไขได้ดีกว่าการเขียนเชิงพรรณา
+ แผนผังนี้สื่อว่าการดำเนินการหลังได้มีการออกระเบียบ ประกาศ คำสั่งนั้น มีหลายแนวทางในการนำเข้าระบบฐานข้อมูล หรือไม่นำเข้าระบบก็ได้ ทั้งนี้ขึ้นอยู่กับการพิจารณาของเจ้าของเรื่อง หากนำเข้าระบบซึ่งเป็นฐานข้อมูลภายใน ก็เลือกได้อีกว่าจะเผยแพร่โดยบุคคลที่เกี่ยวข้องหรือไม่ แสดงให้เห็นว่ามีทั้งระบบและกลไกที่เข้ามาเกี่ยวข้องในผังงานนี้
+ 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