วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2559

ผังงาน Flowchart

ความหมายของผังงาน 
ผังงาน (Flowchart) คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm)เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่าการใช้ผังงาน 
ผังงาน เป็นเครื่องมือแสดงขั้นตอน หรือกระบวนการทำงาน โดยใช้สัญลักษณ์ที่เป็นมาตรฐานเดียวกัน ซึ่งในสัญลักษณ์จะมีข้อความสั้น ๆ อธิบายข้อมูลที่ต้องใช้ ผลลัพธ์ หรือคำสั่งประมวลผลของขั้นตอนนั้น ๆ และเชื่อมโยงขั้นตอนเหล่านั้นด้วยเส้นที่มีลูกศรชี้ทิศทางการทำงานตั้งแต่เริ่มต้นจนจบกระบวนการ [1]p.208 
ผังงานแบ่งได้ 2 ประเภท 
1. ผังงานระบบ (System Flowchart) 
คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย 
2. ผังงานโปรแกรม (Program Flowchart) 
คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์ 

การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง คือ การโปรแกรมที่ประกอบด้วยกระบวนการ 3 รูปแบบ ได้แก่ การทำงานแบบตามลำดับ(Sequence) การเลือกกระทำตามเงื่อนไข(Decision) และ การทำซ้ำ(Loop) มีตำราหลายเล่มแยกการเลือกตามเงื่อนไขเป็น if กับ select case หรือ การทำซ้ำแยกได้เป็น do while กับ do until แต่ก็ยังนับได้ว่าการเขียนโปรแกรมโครงสร้างมีกระบวนการเพียง 3 รูปแบบ และมีแนวคิดใหม่ว่าการโปรแกรมไม่จำเป็นต้องใช้ Structure Programming หากศึกษาในรายละเอียดก็พบว่าทุกภาษายังจำเป็นต้องมีกระบวนการ 3 รูปแบบนี้อยู่เป็นพื้นฐาน เช่น Microsoft Access ที่มีการใช้งาน Tool หรือ wizard ให้ใช้ แต่ก็ยังต้องมีการลง code ใน module ซึ่งต้องมีประสบการณ์ในการโปรแกรมแบบ Structure Programming เพื่อควบคุม 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) 


สัญลักษณ์ผังงาน


การเขียนผังงาน
โจทย์ที่ 1
- พิมพ์เลข 0 ถึง 4 ทางจอภาพ 
ตัวอย่างผังงาน

โจทย์ที่ 2 
- รับค่าจากแป้นพิมพ์เก็บลงตัวแปรอาร์เรย์ 5 ตัว 
- แล้วทำซ้ำอีกครั้ง เพื่อหาค่าสูงสุด 
ตัวอย่างผังงาน

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


โจทย์ที่ 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();
}
แบบทอสอบ
1. ข้อใดอธิบายความหมายของผังงานถูกต้อง 
     ก. อธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความ 
     ข. อธิบายลำดับขั้นตอนในลักษณะรูปภาพ 
     ค. อธิบายลำดับขั้นตอนการแก้ปัญหา 
     ง. อธิบายขั้นตอนการทำงานของโปรแกรม ทั่ว ๆ ไป 
2. ข้อใดคือความหมายของค าว่า “Algorithm” 
     ก. อธิบายลำดับขั้นตอนการทำงานตั้งแต่ ขั้นตอนแรกถึงขั้นตอนสุดท้าย 
     ข. อธิบายวิธีการแก้ไขปัญหา 
     ค. ทดสอบลำดับขั้นตอนการแก้ปัญหา
     ง. ถูกทุกข้อ
 3. ข้อใดคือประโยชน์ที่ได้จากผังงาน
     ก. ทำให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่าย 
     ข. ผู้เขียนสามารถมองเห็นลำดับขั้นตอนวิธีการทำงานได้ชัดเจน 
     ค. การเขียนโปรแกรมทำได้สะดวกรวดเร็วง่าย 
     ง. ถูกทุกข้อ
4. สัญลักษณ์ข้อใดมีได้เพียงสัญลักษณ์เดียวเท่านั้นในผังงาน 
     ก. จุดเริ่มต้น               
     ข. จุดสิ้นสุด 
     ค. แสดงผลทางจอภาพ 
     ง. ถูกทั้งก. และข.
5. ทิศทางของลำดับขั้นตอนการทำงานในผังงาน นิยมเขียนอย่างไร 
     ก. ล่างขึ้นบน 
     ข. ขวาไปซ้าย
     ค. บนลงล่าง 
     ง. ทิศทางใดก็ได้ 
6. สัญลักษณ์การตัดสินใจมีทิศทางการไหลออกได้ กี่ทิศทาง 
ก. 2     ข. 3       ค. 4      ง. 5
7. สัญลักษณ์ในข้อใดมีเฉพาะทิศทางออกเท่านั้น 
     ก. จุดเริ่มต้น 
     ข. จุดสิ้นสุด 
     ค. การแสดงผลลัพธ์ทางจอภาพ 
     ง. ถูกทั้งก. และข.
8.จงอธิบายความหมายของผังงานหรือโฟลว์ชาร์ต 
ตอบ 
9.ผังงานโปรแกรม (Program Flowchart) เป็นอย่างไร 
ตอบ 
10.จงบอกประโยชน์ของผังงาน 
ตอบ     
เฉลย
1. ก
2.ค
3.ง
4.ก
5.ค
6.ก
7.ก
8.   การเขียนอธิบายขั้นตอนการทำงานในลักษณะของรูปภาพ ตั้งแต่ขั้นตอนแรกถึงขั้นตอน สุดท้าย
9.   แสดงถึงขั้นตอนการทำงานของโปรแกรมในส่วนการรับข้อมูลการคำนวณ การ แสดงผล ว่าในแต่ละขั้นตอน ใช้คำสั่งอย่างไร ซึ่งผู้ออกแบบสามารถใช้สำหรับดูเปรียบเทียบและ ลำดับของขั้นตอนต่าง ๆ ในการประมวลผล ทดลองวิธีการเขียนโปรแกรมต่าง ๆ และติดตาม ขั้นตอนการประมวลผลทั้งหมด
10.     1. ทำให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่ายขึ้น 
            2. ผู้เขียนโปรแกรมสามารถมองเห็นลำดับขั้นตอนวิธีการทำงานได้ชัดเจน
            3. สามารถหาข้อผิดพลาดของโปรแกรมได้ง่าย 
            4. ทำให้ผู้อื่นเข้าใจการทำงานได้ง่ายกว่าการดูจากซอร์สโคด (Source Code) 
            5. ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้และเข้าใจได้ง่าย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น