การเขียนผังงาน ( Flowchart )
ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้น
ตอนการทำางานของโปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงทิศทางการไหล
ของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามที่ต้องการ
ประโยชน์ของผังงาน
ช่วยลำาดับขั้นตอนการทำางานของโปรแกรม และสามารถนำาไปเขียน
โปรแกรมได้โดยไม่สับสน
ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
ช่วยให้การดัดแปลง แก้ไข ทำาได้อย่างสะดวกและรวดเร็ว
ช่วยให้ผู้อื่นสามารถศึกษาการทำางานของโปรแกรมได้อย่างง่าย และ
รวดเร็วมากขึ้น
วิธีการเขียนผังงานที่ดี
ใช้สัญลักษณ์ตามที่กำาหนดไว้
ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไป
ขวา
คำาอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย
ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อ
แทน
ผังงานควรมีการทดสอบความถูกต้องของการทำางานก่อนนำาไปเขียน
โปรแกรม
ผังงานโปรแกรม ( Program Flowchart )
การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ
ที่เรียกว่า สัญลักษณ์ ANSI ( American National Standards Institute )
ในการสร้างผังงาน ดังตัวอย่างที่แสดงในรูปต่อไปนี้
จุดเริ่มต้น / สิ้นสุดของโปรแกรม
ลูกศรแสดงทิศทางการทำางานของโปรแกรมและการ
ไหลของข้อมูล
ใช้แสดงคำาสั่งในการประมวลผล หรือการกำาหนดค่า
ข้อมูลให้กับตัวแปร
แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำารองเข้าสู่
หน่วยความจำาหลักภายในเครื่องหรือการแสดงผลลัพธ์
จากการประมวลผลออกมา
การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออก
จารรูปเพื่อแสดงทิศทางการทำางานต่อไป เงื่อนไขเป็น
จริงหรือเป็นเท็จ
แสดงผลหรือรายงานที่ถูกสร้างออกมา
แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบ
ของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อจะไปสู่การ
ทำางานอย่างใดอย่างหนึ่งที่เหมือนกัน
การขึ้นหน้าใหม่ ในกรณีที่ผังงานมีความยาวเกินกว่าที่
จะแสดงพอในหนึ่งหน้า
ผังงานกับชีวิตประจำาวัน
การทำางานหลายอย่างในชีวิตประจำาวัน จะมีลักษณะที่เป็นลำาดับขั้นตอน ซึ่ง
ก่อนที่ท่านจะได้ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนำาให้ท่านลองฝึก
เขียนผังงานที่แสดงการทำางานในชีวิตประจำาวันวันก่อนเพื่อเป็นการสร้างความ
คุ้น เคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงานโปรแกรมต่อไป
ตัวอย่าง 1 เขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย
ตัวอย่างที่ 2 เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตาม
อายุของผู้ทานดังนี้
อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา
อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา
อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา
แรกเกิดถึง 1 ปี ห้ามรับประทาน
โครงสร้างการทำางานแบบมีการเลือก ( Selection )
เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทำางานอย่างใดอย่างหนึ่ง
โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF -
THEN
โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทำาการเปรียบเทียบ
เงื่อนไขที่ใส่ไว้ในส่วนหลังคำาว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะ
เลือกว่าจะทำางานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือก
ไปทำางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) ก็จะไป
ทำางานต่อในส่วนที่อยู่หลังคำาว่า ELSE
แต่ถ้าสำาหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น
ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทำาส่วนที่อยู่หลัง
Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำาคำาสั่งที่อยู่ถัดจาก IF - THEN แทน
ตัวอย่าง 3 การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้ว
ทำาการเปรียบเทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้
ถ้า A มากกว่า B ให้คำานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ
RESULT
ถ้า A น้อยกว่าหรือเท่ากับ B ให้คำานวณหาค่า A + B และเก็บผลลัพธ์ไว้ใน
ตัวแปรชื่อ RESULT
ตัวอย่าง 4 การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมี
เงื่อนไขดังนี้
ถ้า X > 0 ให้พิมพ์คำาว่า " POSITIVE NUMBER "
ถ้า X < 0 ให้พิมพ์คำาว่า " NEGATIVE NUMBER "
ถ้า X = 0 ให้พิมพ์คำาว่า " ZERO NUMBER "
โครงสร้างการทำางานแบบมีการทำางานซำ้า
เป็นโครงสร้างที่มีการประมวลผลกลุ่มคำาสั่งซำ้าหลายครั้ง ตามลักษณะ
เงื่อนไขที่กำาหนด อาจเรียก การทำางานซำ้าแบบนี้ได้อีกแบบว่า การวนลูป
( Looping ) โครงสร้างแบบการทำางานซำ้านี้จะมีอยู่ 2 ประเภท คือ
DO WHILE
DO UNTIL
DO WHILE
เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามา
ทำางานในกลุ่มคำาสั่งที่ต้องทำาซำ้า ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับ
ไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นจริงอยู่ ก็ยังคงต้องทำากลุ่มคำาสั่ง
ซำ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูปไปทำาคำาสั่งถัด
ไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทำางาน
DO UNTIL
เป็นโครงสร้างการทำางานแบบทำางานซำ้าเช่นกัน แต่มีการทำางานที่แตกต่าง
จาก DO WHILE คือจะมีการเข้าทำางานกลุ่มคำาสั่งที่อยู่ภายในลูปก่อนอย่างน้อย
1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทำากลุ่มคำาสั่ง
ที่ต้องทำาซำ้าอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไข
ยังคงเป็นเท็จอยู่ ก็ยังต้องทำากลุ่มคำาสั่งซำ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไข
เป็นจริง จึงจะออกจากลูปไปทำาคำาสั่งถัดจาก UNTIL หรืออาจเป็นการจบการ
ทำางาน
สรุปข้อแตกต่างระหว่าง DO WHILE และ DO UNTIL มีดังนี้
1. DO WHILE ในการทำางานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อน
ทุกครั้ง ก่อนที่จะมีการเข้ลูปการทำางาน
2. DO UNTIL การทำางานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะ
เข้าไปทำางานในลูปก่อนอย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข
3. DO WHILE จะมีการเข้าไปทำางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้ว
พบว่า เงื่อนไขเป็นจริง แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที
4. DO UNTIL จะมีการเข้าไปทำางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้ว
พบว่า เงื่อนไขเป็นเท็จ แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที
ตัวอย่าง 5 จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เป็นอยู่ในหน่วยความ
จำาที่แอดเดรส 1 โดยที่ค่าเริ่มต้นจาก 0 ให้ทำาการเพิ่มค่าทีละ 1 เรื่อยไปจน
กระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทำางาน
ตัวอย่างนี้ เป็นตัวอย่างการทำางานแบบทำาซำ้า ซึ่งจะสามารถแสดงการเขียนได้ทั้ง
แบบ DO WHILE และ DO UNTIL ดังนี้
วัฒนาอ่อนนุ้ย
วัฒนาอ่อนนุ้ย

วัฒนาอ่อนนุ้ย

  • 1.
    การเขียนผังงาน ( Flowchart) ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้น ตอนการทำางานของโปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงทิศทางการไหล ของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามที่ต้องการ ประโยชน์ของผังงาน ช่วยลำาดับขั้นตอนการทำางานของโปรแกรม และสามารถนำาไปเขียน โปรแกรมได้โดยไม่สับสน ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด ช่วยให้การดัดแปลง แก้ไข ทำาได้อย่างสะดวกและรวดเร็ว ช่วยให้ผู้อื่นสามารถศึกษาการทำางานของโปรแกรมได้อย่างง่าย และ รวดเร็วมากขึ้น วิธีการเขียนผังงานที่ดี ใช้สัญลักษณ์ตามที่กำาหนดไว้ ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไป ขวา คำาอธิบายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อ แทน ผังงานควรมีการทดสอบความถูกต้องของการทำางานก่อนนำาไปเขียน โปรแกรม ผังงานโปรแกรม ( Program Flowchart ) การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ที่เรียกว่า สัญลักษณ์ ANSI ( American National Standards Institute ) ในการสร้างผังงาน ดังตัวอย่างที่แสดงในรูปต่อไปนี้ จุดเริ่มต้น / สิ้นสุดของโปรแกรม ลูกศรแสดงทิศทางการทำางานของโปรแกรมและการ ไหลของข้อมูล ใช้แสดงคำาสั่งในการประมวลผล หรือการกำาหนดค่า ข้อมูลให้กับตัวแปร แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำารองเข้าสู่ หน่วยความจำาหลักภายในเครื่องหรือการแสดงผลลัพธ์ จากการประมวลผลออกมา การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออก จารรูปเพื่อแสดงทิศทางการทำางานต่อไป เงื่อนไขเป็น จริงหรือเป็นเท็จ
  • 2.
    แสดงผลหรือรายงานที่ถูกสร้างออกมา แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบ ของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อจะไปสู่การ ทำางานอย่างใดอย่างหนึ่งที่เหมือนกัน การขึ้นหน้าใหม่ ในกรณีที่ผังงานมีความยาวเกินกว่าที่ จะแสดงพอในหนึ่งหน้า ผังงานกับชีวิตประจำาวัน การทำางานหลายอย่างในชีวิตประจำาวันจะมีลักษณะที่เป็นลำาดับขั้นตอน ซึ่ง ก่อนที่ท่านจะได้ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนำาให้ท่านลองฝึก เขียนผังงานที่แสดงการทำางานในชีวิตประจำาวันวันก่อนเพื่อเป็นการสร้างความ คุ้น เคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงานโปรแกรมต่อไป ตัวอย่าง 1 เขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย
  • 3.
    ตัวอย่างที่ 2 เขียนผังงานแสดงวิธีการรับประทานยาที่แบ่งขนาดรับประทานตาม อายุของผู้ทานดังนี้ อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา แรกเกิดถึง 1 ปี ห้ามรับประทาน
  • 4.
    โครงสร้างการทำางานแบบมีการเลือก ( Selection) เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทำางานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF - THEN โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทำาการเปรียบเทียบ เงื่อนไขที่ใส่ไว้ในส่วนหลังคำาว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะ เลือกว่าจะทำางานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือก ไปทำางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) ก็จะไป ทำางานต่อในส่วนที่อยู่หลังคำาว่า ELSE แต่ถ้าสำาหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทำาส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำาคำาสั่งที่อยู่ถัดจาก IF - THEN แทน
  • 5.
    ตัวอย่าง 3 การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปรA และ B แล้ว ทำาการเปรียบเทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้ ถ้า A มากกว่า B ให้คำานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT ถ้า A น้อยกว่าหรือเท่ากับ B ให้คำานวณหาค่า A + B และเก็บผลลัพธ์ไว้ใน ตัวแปรชื่อ RESULT
  • 6.
    ตัวอย่าง 4 การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปรX โดยมี เงื่อนไขดังนี้ ถ้า X > 0 ให้พิมพ์คำาว่า " POSITIVE NUMBER " ถ้า X < 0 ให้พิมพ์คำาว่า " NEGATIVE NUMBER " ถ้า X = 0 ให้พิมพ์คำาว่า " ZERO NUMBER "
  • 7.
    โครงสร้างการทำางานแบบมีการทำางานซำ้า เป็นโครงสร้างที่มีการประมวลผลกลุ่มคำาสั่งซำ้าหลายครั้ง ตามลักษณะ เงื่อนไขที่กำาหนด อาจเรียกการทำางานซำ้าแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทำางานซำ้านี้จะมีอยู่ 2 ประเภท คือ DO WHILE DO UNTIL DO WHILE เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามา ทำางานในกลุ่มคำาสั่งที่ต้องทำาซำ้า ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับ ไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นจริงอยู่ ก็ยังคงต้องทำากลุ่มคำาสั่ง ซำ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูปไปทำาคำาสั่งถัด ไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทำางาน DO UNTIL เป็นโครงสร้างการทำางานแบบทำางานซำ้าเช่นกัน แต่มีการทำางานที่แตกต่าง จาก DO WHILE คือจะมีการเข้าทำางานกลุ่มคำาสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทำากลุ่มคำาสั่ง ที่ต้องทำาซำ้าอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไข ยังคงเป็นเท็จอยู่ ก็ยังต้องทำากลุ่มคำาสั่งซำ้าหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไข เป็นจริง จึงจะออกจากลูปไปทำาคำาสั่งถัดจาก UNTIL หรืออาจเป็นการจบการ ทำางาน
  • 8.
    สรุปข้อแตกต่างระหว่าง DO WHILEและ DO UNTIL มีดังนี้ 1. DO WHILE ในการทำางานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อน ทุกครั้ง ก่อนที่จะมีการเข้ลูปการทำางาน 2. DO UNTIL การทำางานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะ เข้าไปทำางานในลูปก่อนอย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข 3. DO WHILE จะมีการเข้าไปทำางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้ว พบว่า เงื่อนไขเป็นจริง แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที 4. DO UNTIL จะมีการเข้าไปทำางานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้ว พบว่า เงื่อนไขเป็นเท็จ แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที ตัวอย่าง 5 จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เป็นอยู่ในหน่วยความ จำาที่แอดเดรส 1 โดยที่ค่าเริ่มต้นจาก 0 ให้ทำาการเพิ่มค่าทีละ 1 เรื่อยไปจน กระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทำางาน ตัวอย่างนี้ เป็นตัวอย่างการทำางานแบบทำาซำ้า ซึ่งจะสามารถแสดงการเขียนได้ทั้ง แบบ DO WHILE และ DO UNTIL ดังนี้