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

บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

บทที่ 2

แผนภาพแสดงลําดับขั้นตอนการทํางาน (Flow Chart)

การเขียนผังงาน ( Flowchart ) ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการทํางานของ โปรแกรม หรือระบบทีละขั้นตอนรวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตาม ที่ต้องการ

ประโยชน์ของผังงาน • ช่วยลําดับขั้นตอนการทํางานของโปรแกรม และสามารถนําไปเขียนโปรแกรมได้โดยไม่สับสน • ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด • ช่วยให้การดัดแปลง แก้ไข ทําได้อย่างสะดวกและรวดเร็ว • ช่วยให้ผู้อื่นสามารถศึกษาการทํางานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น วิธีการเขียนผังงานที่ด ี• ใช้สัญลักษณ์ตามที่กําหนดไว้ • ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรือจากซ้ายไปขวา • คําอธิบายในภาพควรสั้นกระทัดรัด และเข้าใจง่าย • ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก • ไมค่วรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน • ผังงานควรมีการทดสอบความถูกต้องของการทํางานก่อนนําไปเขียนโปรแกรม

สัญลักษณ์ที่ใช้ในการเขียนผังงาน (Flowcharting Symbols)

การเขียนผังงาน เป็นการเขียนแผนภาพเพื่อแสดงขั้นตอนการทํางาน โดยนําภาพสัญลักษณ์ต่างๆ มาเรียนต่อกัน สัญลักษณ์ที่นิยมใช้ในการเขียนผังงานนั้นหน่วยงานที่ชื่อว่า American National Standards Institute (ANSI) และ International Standard Organization (ISO) ได้ร่วมกันกําหนด สัญลักษณ์มาตรฐานเพื่อใช้ในการเขียนผังงานดังนี้

Page 2: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  2    

Page 3: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  3      

รูปที่1 แสดง สัญลักษณ์ในการเขียนผังงานโปรแกรม

หลักเกณฑ์ในการเขียนผังงาน

1. สัญลักษณ์ที่ใช้อาจมีขนาดต่างๆ กันได้ แต่จะต้องมีรูปร่างเป็นสัดส่วนตามมาตรฐาน 2. ทิศทางของลูกศรในผังงาน ควรมีทิศทางจากบนลงล่าง หรืออาจจากซา้ยไปขวาเสมอ 3. ผังงานคสรมีความเรียบร้อย สะอาด พยายามหลีกเลี่ยงกากรเขียนลูกศรที่ทําให้เกิดจุดตัด

เพราะจะทําให้ผังงานอ่านและทําความเข้าใจได้ยาก และถ้าในผังงานมีการเขียนข้อความอธิบายใด ๆ ควรทําให้สั้นกะทัดรัดและได้ใจความ

Page 4: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  4    

ประเภทของผังงาน 1. ผังงานระบบ (system flowchart)

เป็นผังซึ่งแสดงขอบเขต และลําดับขั้นตอนการทํางานของระบบหนึ่งๆ รวมทั้งแสดงรูปแบบ ของข้อมูลเข้า (Input) และข้อมูลออก (Output) ว่าถูกรับเข้าหรือแสดงผลโดยผ่านสื่อประเภทใด เนื่องจากผังงานระบบเป็นแผนภาพที่แสดงถึงระบบโดยรวม ดังนั้นกระบวนการหรือโปรแกรมหนึ่งๆ อาจถูกแสดงเป็นเพียงขั้นตอนหนึ่งในผังงานระบบเท่านั้น

2. ผังงานโปรแกรม (Program flowchart) เป็นผังงานซึ่งแสดงลําดับขั้นตอนการทํางานของโปรแกรมหนึ่ง ๆ

จากตัวอย่างผังงานระบบมีความหมายดังนี้

1. นําข้อมูลเข้าจากฐานข้อมูลพนักงาน ซึ่งอยู่ในดิสก์ (disk) จงึเขียนแทนด้วยสัญลักษณ์

2. คํานวณเงินเดือน เป็นการประมวลผล จึงเขียนแทนด้วยสัญลักษณ์สี่เหลี่ยมผืนผ้า

3. พิมพ์เช็ค เป็นการแสดงผลทางเครื่องพิมพ์ จึงเขียนแทนด้วยสัญลักษณ์

Page 5: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  5      

ตัวอย่างผังงานโปรแกรม

ผังงานโปรแกรมนี้แสดงการคํานวณเงินเดือนของพนักงาน โดยถ้าชั่วโมงการทํางานในเดือนนั้นๆ ไม่เกิน 160 ชั่วโมง เงินเดือนจะถูกคํานวณโดยใช้อัตราค่าแรงตามปกติ แต่ถ้าชั่วโมงการทํางานเกิน 160 ชั่วโมง 160 ชั่วโมงแรกจะใช้อัตราค่าแรงตามปกติ และจํานวนชั่วโมงที่เกินจะคิดค่าแรงโดยใช้อัตราของ ค่าล่วงเวลา (overtime หรือ OT ) ซึ่งเท่ากับ 1.5 เท่าของอัตราค่าแรงปกติ

จากผังงานสามารถแสดงขั้นตอนการทํางานได้ดั้งนี้

1.เริ่มต้นโปรแกรม ใช้สัญลักษณ์เทอร์มินัล

2.รับข้อมูลเข้า หรืออ่านค่าของข้อมูล ใช้สัญลักษณ์การรับค่าหรือแสดงผล

โดยข้อมูลที่รับประกอบด้วย

- ชื่อพนักงาน - จํานวนชั่วโมงการทํางาน - อัตราค่าแรง

Page 6: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  6    

3.พิจารณาเงื่อนไขว่าจํานวนชั่วโมงการทํางานมากว่า 160 ชั้วโมงหรือไม่

โดยใช้สัญลักษณ์การตัดสินใจ

3.1 ถ้าใช่ ให้ใช้สมการต่อไปนี้ในการคํานวณค่าจ้าง

ค่าจ้าง = ((ชั่วโมงการทํางาน - 160) *1.5 * อัตราค่าแรง)+(160 *อัตราค่าแรง)

3.2 ถ้าไมใ่ช่ ให้ใช้สมการต่อไปนี้ในการคํานวณค่าจ้าง

ค่าจ้าง = (ชั่วโมงการทํางาน * อัตราค่าแรง)

การคํานวณค่าจ้างในขั้นตอนที่ 3.1 และ 3.2 ใช้สัญลักษณ์การประมวลผล

4. แสดงชื่อพนักงาน และค่าจ้างที่ได้จากการคํานวณ ใช้สัญลักษณ์การรับเข้าหรือแสดงผล

5. จบโปรแกรมโดยใช้สัญลักษณ์เทอร์มินัล

ลักษณะโครงสร้างของผังงาน ผังงานทั่วไปจะประกอบด้วยโครงสร้างพื้นฐาน 3 รูปแบบต่อไปนี้คือ 1.โครงสร้างแบบเป็นลําดับ (sequence structure) 2.โครงสร้างแบบมีการเลือก (selection structure) 3.โครงสร้างแบบทําซ้ํา (iteration structure)

ผังงานกับชีวิตประจําวัน การทํางานหลายอย่างในชีวิตประจําวัน จะมีลักษณะที่เป็นลําดับขั้นตอน ซึ่งก่อนที่ท่านจะได้ ศึกษาวิธีการเขียนผังงานโปรแกรม จะแนะนําให้ท่านลองฝึกเขียนผังงานที่แสดงการทํางานใน ชีวิตประจําวัน เพื่อเป็นการสร้างความคุ้นเคยกับสัญลักษณ์รูปภาพต่าง ๆ ที่จะมีใช้ในผังงาน โปรแกรมต่อไป ดังตัวอย่างต่อไปนี ้

Page 7: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  7      

โครงสร้างแบบเป็นลําดับ (Sequence Structure)

โครงสร้างลักษณะนี้เป็นโครงสร้างพื้นฐานของผังงาน และเป็นลักษณะขั้นตอนการทํางานที่พบ

มากที่สุด คือทํางานทีละขั้นตอนลําดับ

ตัวอย่างผังงานที่มีโครงสร้างแบบเป็นลําดับ

Page 8: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  8    

จากตัวอย่างผังงานการคํานวณดอกเบี้ย สามารถอธิบายเป็นขั้นตอนได้ดังนี้

1. เริ่มต้นการทํางาน 2. รับค่าเงินต้น และอัตราดอกเบี้ยเพื่อใช้ในการคํานวณหาดอกเบี้ย 3. คํานวณหาดอกเบี้ยโดยใช้สมการต่อไปนี้ ดอกเบี้ย = เงินต้น * อัตราดอกเบี้ย 4. แสดงค่าของดอกเบี้ยซึ่งคํานวณได ้5. จบการทํางาน

ตัวอย่างที ่1 เขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย

รูปที่ 2 แสดงการเขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย

Page 9: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  9      

ตัวอย่างที่ 2 เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของ ผู้ทานดังนี ้• อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา • อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา • อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา • แรกเกิดถึง 1 ปี ห้ามรับประทาน

รูปที่ 3 แสดงการเขียนผังงานแสดงวิธีการรับประทานยา

โครงสร้างการทํางานแบบมีการเลือก ( Selection ) เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทํางานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF - THEN - ELSE และ IF - THEN

Page 10: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  10    

รูปที่4 แสดงโครงสร้างผังงานแบบมีการเลือก

โครงสร้างแบบ IF - THEN - ELSE เป็นโครงสร้างที่จะทําการเปรียบเทียบเงื่อนไขที่ใส่ไว้ในส่วนหลังคําว่า IF และเมื่อได้ผลลัพธ์จาก การเปรียบเทียบก็จะเลือกว่าจะทํางานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือก ไปทํางานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) กจ็ะไปทํางานต่อในส่วนที่อยู่ หลังคําว่า ELSE แต่ถ้าสําหรับโครงสร้างแบบ IF - THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น ถ้ามีการ เปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทําส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทําคําสั่งที่อยูถ่ัดจาก IF - THEN แทน

ตัวอย่าง 3 การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้วทําการเปรียบ เทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้

Page 11: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  11      

• ถ้า A มากกว่า B ให้คํานวณหาค่า A - B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT • ถ้า A น้อยกว่าหรือเท่ากับ B ใหค้ํานวณหาค่า A + B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT

รูปที่ 3 แสดงการเขียนผังงานอ่านค่าข้อมูล

ตัวอย่าง 4 การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี ้• ถ้า X > 0 ให้พิมพ์คําว่า " POSITIVE NUMBER " • ถ้า X < 0 ให้พิมพ์คําว่า " NEGATIVE NUMBER " • ถ้า X = 0 ให้พิมพ์คําว่า " ZERO NUMBER "

Page 12: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  12    

รูปที่ 4 แสดงการเขียนผังงานเปรียบเทียบค่าข้อมูล

โครงสร้างการทํางานแบบมีการทํางานซ้ํา (Iteration Structure) เป็นโครงสร้างที่มีการประมวลผลกลุ่มคําสั่งซ้ําหลายครั้ง ตามลักษณะเงื่อนไขที่กําหนด อาจเรียก การทํางานซ้ําแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทํางานซ้ํานี้จะมีอยู่ 2 ประเภท คือ • DO WHILE • DO UNTIL

รูปแบบโครงสร้างแบบทําซ้ํา (Iteration Structure)

Page 13: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  13      

DO WHILE เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทํางานในกลุ่มคําสั่งที่ ต้องทําซ้ํา ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคง เป็นจริงอยู่ ก็ยังคงต้องทํากลุ่มคําสั่งซ้ําหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูป ไปทําคําสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทํางาน

แสดงโครงสร้างการทํางานซ้ําแบบ DO WHILE

DO UNTIL เป็นโครงสร้างการทํางานแบบทํางานซ้ําเช่นกัน แต่มีการทํางานที่แตกต่างจาก DO WHILE คือจะมีการเข้าทํางานกลุ่มคําสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจงึจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทํากลุ่มคําสั่งที่ต้องทําซ้ําอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบ เงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทํากลุ่มคําสั่งซ้ําหรือเข้าลูปต่อไปอีก จนกระทั่ง เงื่อนไขเป็นจริง จึงจะออกจากลูปไปทําคําสั่งถดัจาก UNTIL หรืออาจเป็นการจบการทํางาน

แสดงโครงสร้างการทํางานซ้ําแบบ DO UNTIL

Page 14: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  14    

สรุปข้อแตกต่างระหว่าง 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 ดังนี้

Page 15: บทที่2 แผนภาพแสดงลําดับขั้นตอน ......บทท 2 แผนภาพแสดงล าด บข นตอนการท างานFlow

  15      

แสดงตัวอย่างการใช้ DO WHILE และ DO UNTIL

การเขียนโปรแกรม

ผังงานโปรแกรมสามารถนํามาใช้เขียนโปรแกรม โดยในการเขียนโปรแกรมสามารถเลือกใช้ ภาษาได้หลายภาษา ไม่ว่าจะเป็นภาษาแอสเซมบลี ภาษาเบสิก ภาษาซี ภาษาปาสคาล ภาษาโคบอล ภาษาฟอร์แทรน หรือภาษาอื่น ๆ ซี่งแต่ละภาษาก็มีรูปแบบไวยากรณ์ของภาษาที่ใช้แตกต่างกันออกไป แต่โดยทั่วไปแล้วจะมีรูปแบบหรือโครงสร้างของคําสั่งที่คล้ายกัน โดยทั่วไปทุกคําสั่งจะมีคําสั่งพื้นฐานต่อไปนี ้

1. คําสั่งการรับข้อมูลเข้า และการแสดงผล 2. คําสั่งการกําหนดค่า 3. คําสั่งการเปรียบเทียบเงื่อนไข 4. คําสั่งการทําซ้ําหรือการวนลูป

ซึ่งค่าสั่งพื้นฐานเหล่านี้ก็สามารถรองรับขั้นตอนการทํางานแต่ละขั้นตอนในผังงานโปรแกรมได ้

เป็นอย่างดี ดังนั้นหลังการออกแบบขั้นตอนการทํางานในโปรแกรมโดยใช้ผังงานแล้ว สามารถนํา ผังงานนั้น

มาใช้ในการเขียนโปรแกรมได้ โดยเขียนโปรแกรมเป็นลําดับตามขั้นตอนต่าง ๆ ตามที่ ระบุไว้ในผังงาน

หลังจากเขียนโปรแกรมที่ต้องการเสร็จแล้ว ยังต้องมีการทดสอบความผิดพลาดในโปรแกรม

และแก้ไขข้อผิดพลาดนั้นๆ ก่อน จึงจะสามารถนะโปรแกรมเหล่านั้นไปใช้งานได้จริง

อาจารย์วิภาดา เชี่ยวชาญ :ผู้สอน อ้างอิง สมชาย รัตนเลิศนุสรณ์, 2545 : 17.