ยินดีต้อนรับเข้าสู่บทเรียนออนไลน์
 


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



          6.4.2 หลักการเขียนผังงาน
                6.4.2.1 ผังงาน (Flowchart) ที่เขียนขึ้นต้องมีจุดเริ่มต้นและจุดสิ้นสุด (Start and Stop)
                6.4.2.2 สัญลักษณ์แต่ละรูปจะมีการเชื่อมต่อด้วยทิศทางการทำงาน (Direction of Flow)
                6.4.2.3 ทิศทางการทำงานจะต้องเริ่มต้นจากจุดเริ่มต้น และจบที่จุดสิ้นสุดเท่านั้น
ตัวอย่างการเขียนผังงานเบื้องต้น
                โจทย์ : นักเรียนคนหนึ่ง บ้านอยู่ที่หน้าที่ว่าการอำเภอจตุรพักตรพิมานต้องการเดินทางจากบ้านเพื่อมาเรียนที่
โรงเรียนจตุรพักตรพิมานรัชดาภิเษก และวันนั้นเขามีเรียนที่ห้องคอมพิวเตอร์ วิธีการเดินทางของเขาขึ้นอยู่กับว่าเขามีเงินเท่าใด
ถ้าเขามีเงินมากกว่า 40บาทเขาจะนั่งวินมอเตอร์ไซค์มาที่ห้องคอมพิวเตอร์เลยแต่ถ้ามีเงินน้อยกว่านั้นเขาก็จะนั่งรถสองแถวมา
ลงที่หน้าโรงเรียนแล้วเดินมาที่ห้องคอมพิวเตอร์ผังงานการเดินทางมาเรียนของนักเรียนคนนี้เขียนได้ดังรูปต่อไปนี้

ภาพประกอบ 1  ตัวอย่างการเขียนผังงาน
ที่มา : ปกาสิต  อุ่นทรวง. 2560.

          6.4.3 ลักษณะโครงสร้างของผังงาน
          โครงสร้างของผังงานจะทำหน้าที่ควบคุมการทำงานของโปรแกรมว่าไปในทิศทางใดซึ่งจะแบ่งออกเป็น  3 ประเภท ดังนี้
                    6.4.3.1 การทำงานแบบเป็นลำดับ (Sequence) เป็นการทำงานทีละคำสั่ง จากบนลงล่าง ตามทิศทางการทำงาน (Direction of
flow) ซึ่งการทำงานก็จะทำงานตามลำดับตั้งแต่คำสั่งที่ 1 แล้วต่อด้วยคำสั่งที่ 2 ,3 ไปเรื่อย ๆ จนจบการทำงาน เช่น
รับเงินไปจ่ายตลาดมา 100 บาท  ซื้อไข่ไก่ 25 บาทซื้อผลไม้ 25บาท สามารถเขียนผังงานการทำงานแบบเป็นลำดับได้ดังนี้

ภาพประกอบ 2 การเขียนผังงานแบบเป็นลำดับ (Sequence)  
ที่มา : ปกาสิต  อุ่นทรวง. 2560.

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

                6.4.3.2.1 if-then (ถ้า ... เป็นจริงจะทำอะไร) ลักษณะการทำงานแบบ if-then คือถ้าเงื่อนไขเป็นจริงจะทำอะไร
แต่ถ้าเงื่อนไขเป็นเท็จจะไม่มีการทำงานใด ๆ เกิดขึ้น

รูปแบบ การเขียนผังงานแบบ if – then

ภาพประกอบ 3 การเขียนผังงานแบบ  if-then
ที่มา : ปกาสิต  อุ่นทรวง. 2560.

                ตัวอย่าง การเขียนผังงานการทำงานแบบ if-then  เช่น เอาเงินมาทำงาน 100 บาทif ซื้อหมูปิ้งกินหรือไม่ then จ่ายค่าหมูปิ้ง
25 บาท

ภาพประกอบ 4 ตัวอย่างการเขียนผังงานแบบ  if-then
ที่มา : ปกาสิต  อุ่นทรวง. 2560.

                6.4.3.2.2 if - then - else (ถ้า ... เป็นจริงจะทำอะไร เป็นเท็จจะทำอะไร) ลักษณะการทำงานแบบ if-then-else คือ ถ้าเงื่อนไข นั้นเป็นจริงจะต้องทำอะไร แล้วถ้าเงื่อนไขนั้นเป็นเท็จจะต้องทำอะไรเมื่อเจอเงื่อนไข จะตรวจสอบเงื่อนไข และเลือกการทำงานทางใดทาง
หนึ่ง ดังนี้
                     - ถ้าเงื่อนไขเป็นจริง ทำตามคำสั่งที่ 1
                     - ถ้าเงื่อนไขเป็นเท็จ ทำตามคำสั่งที่ 2

รูปแบบ การเขียนผังงานแบบ if - then-else

ภาพประกอบ 5 การเขียนผังงานแบบ  if - then - else
ที่มา : ปกาสิต  อุ่นทรวง. 2560.

ตัวอย่าง การเขียนผังงานการทำงานแบบ if-then-else ในการเลือกทำ เช่น เอาเงินมาทำงาน 100 บาทมีเงินมากกว่า 50 บาทหรือไม่ 
จ่ายค่าหมูปิ้ง 25 บาท  Else จ่ายค่าข้าวกะเพรา 45บาท

ภาพประกอบ 6 ตัวอย่างการเขียนผังงานแบบ  if - then - else
ที่มา : ปกาศิต  อุ่นทรวง. 2560.

                6.4.3.2.3 Case (กรณีที่...)  ลักษณะการทำงานแบบ Case คือ ตรวจสอบว่า ค่าข้อมูลที่นำมาเปรียบเทียบนั้นตรงกับเงื่อนไขใด
ถ้าเงื่อนไขใดเป็นจริงก็เข้ากรณีนั้น

รูปแบบ การเขียนผังงานแบบ Case

ภาพประกอบ 7 การเขียนผังงานแบบ  Case
ที่มา : ปกาสิต  อุ่นทรวง. 2560

คือ นำข้อมูลที่มีมาตรวจสอบ ว่า ตรงกับเงื่อนไขใด
-ถ้าตรงกับกรณีที่ 1 ทำตามคำสั่งที่ 1
-ถ้าตรงกับกรณีที่ 2 ทำตามคำสั่งที่ 2
.......
.......
.......
-ถ้าตรงกับกรณีที่ n ทำตามคำสั่งที่ n

*** ข้อมูลต้องตรงกับกรณีใดกรณีหนึ่งเท่านั้น ไม่สามารถ ทำได้หลายกรณี เช่น ถ้าตรงกรณีที่ 1 ทำตามคำสั่งที่ 1
เมื่อทำงานงานเสร็จถือว่าการทำงานเสร็จสิ้น แล้วจบการทำงานเลย
จะไม่สามารถเข้าไปทำกรณีที่ 2, 3 ,4 , ... , n ได้

ตัวอย่าง การเขียนผังงานการทำงานแบบ Case เช่น เอาเงินมาทำงาน 100 บาท
Case เลือกกินอะไร ?
กรณีที่ 1 "ข้าวกระเพรา" : จ่ายค่าข้าวกระเพรา 45 บาท
กรณีที่ 2 "หมูปิ้ง" : จ่ายค่าหมูปิ้ง 25 บาท

กรณีที่ 3 "ไม่กินอะไรเลย" :ไม่จ่าย

ภาพประกอบ 8 ตัวอย่างการเขียนผังงานแบบ  Case
ที่มา : ปกาสิต  อุ่นทรวง. 2560

          6.4.3.3 การทำงานวนรอบ (Repetition) เป็นโครงสร้างที่มีจะมีการทำงานแบบทำซ้ำหากว่าเงื่อนไขที่กำหนดไว้เป็นไปตามที่กำหนด
การทำงานแบบวนรอบ (Repetition) ถูกแบ่งออกได้อีก 3 รูปแบบดังนี้
                6.4.3.3.1 While Loop (ตราบเท่าที่ ... เป็นจริง) รูปแบบนี้มีลักษณะการทำงานคือ ตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขนั้น
เป็นจริงจะทำคำสั่งใน loopจนครบจากนั้นก็กลับไปตรวจสอบเงื่อนไขอีกครั้ง
ถ้าเงื่อนไขเป็นจริงอีกก็ทำซ้ำอีกไปเรื่อยๆจนกว่าเงื่อนไขที่ตรวจสอบนั้นจะเป็นเท็จ

รูปแบบ การเขียนผังงานแบบ While Loop

ภาพประกอบ 9 การเขียนผังงานแบบ While Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560

การทำงานลักษณะนี้ คือ เมื่อเจอเงื่อนไข จะตรวจสอบเงื่อนไข
,,,,,,,,,,,- ถ้าเงื่อนไขเป็นจริง ทำตามคำสั่งที่ 1 แล้ววนไปตรวจสอบเงื่อนไขอีกที
,,,,,,,,,,,- ถ้าเงื่อนไขเป็นเท็จ ก็จะจบการทำงานในส่วนของ loopแล้วไปทำงานคำสั่งถัดไป

ตัวอย่าง การเขียนผังงานการทำงานแบบ While Loop เช่น เอาเงินมาทำงาน 100 บาท
while ถ้ามีเงินเหลือ ซื้อหมูปิ้ง 25บาท

***คำสั่งในกรอบสีเขียวคือ คำสั่งที่อยู่ใน loop (loop body)

ภาพประกอบ 10 ตัวอย่างการเขียนผังงานแบบ While Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560

,,,,,,,,,,,,,,,,,6.4.3.3.2 Do-While Loop (ทำก่อน 1 ครั้ง แล้วทำซ้ำตราบเท่าที่ ...เป็นจริง)ลักษณะการทำงานแบบ Do-While loop คือ
จะทำคำสั่งใน Loop Body ก่อน 1 ครั้ง แล้วตรวจสอบเงื่อนไข ถ้าเงื่อนไขนั้นเป็นจริง จะกลับไปทำคำสั่งใน Loop Body จนครบแล้ว
ตรวจสอบเงื่อนไขอีกครั้งจนกว่าเงื่อนไขที่ตรวจสอบนั้นจะเป็นเท็จ

รูปแบบ การเขียนผังงานแบบ Do-While Loop

ภาพประกอบ 11 การเขียนผังงานแบบ Do-While Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560

การทำงาน คือ ทำตามคำสั่งที่ 1 ก่อน แล้วค่อยตรวจสอบเงื่อนไข
,,,,,,,,,,,,- หากเงื่อนไขยังเป็นจริง ก็จะกลับไปทำตามคำสั่งที่ 1(คำสั่งที่อยู่ใน Loop หรือ Loop Body)
,,,,,,,,,,,,- หากเงื่อนไขเป็นเท็จ ก็จะออกจาก Loopซึ่งจะแตกต่างกับ while loop คือ while loop จะเช็คเงื่อนไขก่อนแล้ว จึงจะทำตามคำสั่งที่ 1 แต่ Do-While Loop จะทำตามคำสั่งที่ 1ก่อนแล้วค่อยเช็คเงื่อนไข

ตัวอย่าง การเขียนผังงานการทำงานแบบ Do-While-Loop เช่น เอาเงินมาทำงาน 100 บาท
Do จ่ายค่าหมูปิ้ง 25 บาท    Whileถ้ายังมีเงินเหลือ

ภาพประกอบ 12 ตัวอย่างการเขียนผังงานแบบ Do-While Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560

,,,,,,,,,,,,,,,,,,,6.4.3.3.3 for Loop (นับจำนวนรอบ) ลักษณะการทำงานแบบ for loopการวนรอบจะทำซ้ำ ตามจำนวนรอบ
ที่กำหนดให้โดยจะมีตัวแปรหนึ่งตัวเก็บว่าขณะนี้เป็นรอบที่เท่าไรแล้วและเมื่อวนจนเงื่อนไขเป็นเท็จก็จะจบการวนซ้ำ

รูปแบบ การเขียนผังงานแบบ For Loop

ภาพประกอบ 13 การเขียนผังงานแบบ For Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560

การทำงานแบบ for loop คือ ต้องตั้งค่าตัวนับก่อน อาจกำหนดเป็นตัวแปรตัวแปรหนึ่ง เช่น i=0 จากนั้น ตรวจสอบเงื่อนไข
,,,,,,,,,,,,-ถ้าจริง ทำตามคำสั่งที่ 1 (คำสั่งใน loop หรือ loop body) จากนั้นเปลี่ยนแปลงค่าตัวนับอาจจะเพิ่ม หรือ ลดลงก็ได้
ขึ้นอยู่กับเงื่อนไขที่เรากำหนด
,,,,,,,,,,,,-ถ้าเท็จ หลุดออกจาก loop
ตัวอย่าง การเขียนผังงานการทำงานแบบ For Loop

ภาพประกอบ 14 ตัวอย่างการเขียนผังงานแบบ For Loop
ที่มา : ปกาสิต  อุ่นทรวง. 2560