Flowchart ม ค าเเตกต างก น 1 2 3

  • 1. บทที่ 4 การเขียนผังงาน (Flowchart) การเขียนผังงาน(Flowchart) เปนเทคนิคหรือวิธีการอยางหนึ่งสําหรับใชเขียนแสดงอัลกอริทึม การ เขียนผังงานจะใชรูปภาพที่เปนสัญลักษณมาตรฐานสากลนําไปเขียนแทนกิจกรรมตาง ๆ ในแตละขั้นตอน ของอัลกอริทึ ม ซึ่งกิจกรรมที่ แตกต างกันก็ จะใช สัญลักษณ รูปภาพที่แ ตกตางกั น โดยสัญลักษณภ าพนี้ กําหนดตามมาตรฐานของ ANSI (American National Standards Institute) และ ISO (International Standard Organization) การเขียนแสดงอัลกอริทึมดวยผังงานสามารถออกแบบไดงาย ผูอื่นสามารถเขาใจผังงานไดงาย เพราะเปนมาตรฐานสากล และเมื่อนําผังงานไปเขียนโปรแกรมก็จะทําไดสะดวกรวดเร็ว ประเภทของผังงาน ผังงานทางคอมพิวเตอรมี 2 ประเภทคือ ผังงานระบบ(System Flowchart) และผังงานโปรแกรม (Program Flowchart) ผังงานระบบ(System Flowchart) ผังงานระบบจะเปนการแสดงใหเราเห็นวา ในระบบหนึ่ง ๆ นั้นมีข้ันตอนในการทํางานอยางไร ซึ่ง จะมองเห็นในลักษณะภาพกวาง ๆ ของระบบ แตจะไมเจาะลึกลงไปวาในระบบวาในแตละงานนั้นมีการ ทํางานอยางไร คือ จะใหเห็นวาจุดเริ่มตนของงานเริ่มจากสวนใด เปนขอมูลแบบใด มีการประมวลผล อยางไร และจะไดผลลัพธเปนอยางไรและเก็บอยูที่ใด ดังรูป เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 31
  • 2. ผังงานโปรแกรม(Program Flowchart) ผังงานโปรแกรม หรือ เรียกสั้น ๆ วา ผังงาน จะเปนผังงานที่แสดงใหเห็นถึงลําดับขั้นตอนในการ ทํางานของโปรแกรม ตั้งแตการรับขอมูล การประมวลผล ตลอดจนผลลัพธที่ได จะทําใหเขียนโปรแกรมได สะดวกขึ้น ซึ่งผังงานชนิดนีอาจสรางมาจากผังงานระบบ โดยดึงเอาจุดที่เกี่ยวของกับคอมพิวเตอรมา ้ วิเคราะหวาจะใชทํางานสวนใดเพื่อทีจะใหไดมาซึ่งผลลัพธที่ตองการ ดังรูป ่ ประโยชนของผังงาน 1. ทําใหมองเห็นรูปแบบของงานไดทั้งหมด โดยใชเวลาไมมาก 2. การเขียนผังงานเปนสากลสามารถนําไปเขียนโปรแกรมไดทุกภาษา 3. สามารถตรวจสอบขอผิดพลาดของโปรแกรมไดอยางรวดเร็ว 4. หากมีการพัฒนาระบบงานในลําดับตอไป สามารถทําไดอยางรวดเร็ว โดยศึกษาจากผังงาน จะ สามารถศึกษาไดอยางรวดเร็ว และเขาใจงายกวาการศึกษาจากโปรแกรม สัญลักษณของผังงาน สัญลักษณ ความหมาย ตัวอยาง ความหมาย แสดงการเริ่มตน หรือ 1. เริ่มผังงาน การสิ้นสุดของผังงาน 2. จบผังงาน รับหรือแสดงขอมูลโดย 1. รับคา a โดยไมระบุ ไมระบุชนิดของอุปกรณ อุปกรณ 2. แสดงคา a โดยไมระบุ อุปกรณ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 32
  • 3. ปอนขอมูลดวยคียบอรด ปอนคา a ทางคียบอรด แสดงผลลัพธทางจอภาพ แสดงคา a ทางจอภาพ การคํานวณ หรือ 1.คํานวณคา B+C แลว การกําหนดคา เก็บผลลัพธไวที่ A 2. กําหนดคา Num = 5 แสดงขอมูลหรือผลลัพธ พิมพคา a ทางกระดาษ ทางเครื่องพิมพลงบน กระดาษ การเปรียบเทียบ เปรียบเทียบ X > 5 การตัดสินใจ หรือไม การเตรียมการ กําหนดให i=1 แลว การกําหนดคาลวงหนา เพิ่มขึ้นทีละ 1 จนถึง 10 โปรแกรมยอย เรียกโปรแกรมยอยชื่อ sub1 รับหรือแสดงขอมูลโดย - - ใชเทปแมเหล็ก รับหรือแสดงขอมูลโดย - - ใชจานแมเหล็ก การเก็บขอมูล - - เสนแสดงทิศทางการ ประมวลผลแลว ทํางาน ตอดวยการแสดงผล จุดเชื่อมตอในหนา หลังกําหนด a=3 แลวให เดียวกัน ไปทํางานตอทีจุด ่ ตอเนื่อง 1 หนาเดียวกัน เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 33
  • 4. จุดเชื่อมตอไปหนาอื่น หลังกําหนด b=5 แลวให ไปทํางานตอทีจุด ่ ตอเนื่อง a ซึ่งอยูคนละ หนากัน หมายเหตุหรือคําอธิบาย - หลักการเขียนผังงานที่ดี 1. มีทางเขาหรือจุดเริ่มตน และทางออกหรือจุดสิ้นสุดเพียงทางเดียวเทานั้น 2. ลําดับขั้นตอนการทํางานควรจะเริ่มจากบนลงลาง หรือจากซายไปขวา 3. ในสัญลักษณใด ๆ มีทางออกเพียงทางเดียว ยกเวนสัญลักษณแสดงการตัดสินใจ หรือ ทางเลือก สามารถมีทางออกไดอยางนอยสองทาง 4. เสนทางเดินในผังงานควรชัดเจน เปนระเบียบ 5. ขอความหรือคําสั่งใด ๆ ที่อยูในสัญลักษณควรสั้น กระชับ ไดใจความ และสามารถเขาใจไดงาย  6. ใชสัญลักษณที่มีขนาดเหมาะสมกับคําสั่ง 7. การกําหนดทิศทางการทํางานดวยลูกศร ควรจะมีทิศทางจากบนลงลาง หรือ ขวาไปซายเทานั้น 8. ในกระบวนการทํางานที่ตองการเพิ่มคําอธิบายเขาไปเพื่อใหเกิดความเขาใจ ก็สามารถทําไดโดยการ ใชสัญลักษณหมายเหตุประกอบ ตัวอยางการเขียนผังงานในชีวิตประจําวัน ตัวอยางที่ 1 การเขียนผังงานขั้นตอนการสงจดหมาย เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 34
  • 5. ตัวอยางที่ 2 การเขียนผังงานแสดงเงื่อนไขการรับประทานยา โดยแบงขนาดรับประทานตามอายุ ดังนี้ ◦ อายุมากกวา 10 ป รับประทานครั้งละ 2 ชอนชา ◦ อายุ 3 - 10 ป รับประทานครั้งละ 1 ชอนชา ◦ อายุ 1 -3 ป รับประทานครั้งละ 1/2 ชอนชา ◦ เด็กแรกเกิด หามรับประทาน ตัวอยางการเขียนผังงานโปรแกรม การเขียนผังงานการหาพืนทีวงกลม ้ ่ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 35
  • 6. สามารถใชคําอื่น ๆ ไดเชน Begin สามารถใชคําอื่น ๆ ไดเชน Input , Get สามารถใชคําอื่น ๆ ไดเชน Show , Display สามารถใชคําอื่น ๆ ไดเชน Stop รูปแบบการเขียนผังงาน 1. การเขียนผังงานแบบเรียงลําดับการทํางาน (Sequential Structure) 2. การเขียนผังงานแบบมีทางเลือกการทํางาน (Decision Structure) • ผังงานแบบมี 2 ทางเลือก IF • ผังงานที่มีมากกวา 2 ทางเลือก CASE 3. การเขียนผังงานแบบมีการทํางานวนซ้ํา (Iteration Structure) • While • Do while • Repeat until (Do until) • For การเขียนผังงานแบบเรียงลําดับการทํางาน (Sequential Structure) เปนโครงสรางของโปรแกรมที่ทํางานเปนลําดับขั้นตอนเรียงกันไป โดยไมมีการขามขั้นตอน หรือ ยอนกลับ ดังตัวอยางตอไปนี้ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 36
  • 7. ผั ง งานแสดงโปรแกรมการ คํานวณคา a จากสูตร a = x + y โดยรับคา x และ y ทางแปนพิมพ และ แสดงผลลัพธ a ออกทางจอภาพ การเขียนผังงานแบบมีทางเลือกการทํางาน (Decision Structure) เปนการเขียนผังงงานที่มีลักษณะการทํางานแบบมีเงื่อนไขทางตรรกะ โดยใชประโยชนจากพีชคณิต บูลีน เพื่อใหเครื่องประมวลผลลักษณะตัดสินใจ เลือกทิศทางการทํางานตามคําสั่งที่กําหนดไว ดังตัวอยาง ตอไปนี้ ผั ง งานแสดงโปรแกรมการ ประเมิ น ผลการเรี ย น โดยรั บ คะแนน นั ก ศึ ก ษาเข า มาทางแป น พิ ม พ ถ า คะแนนมากวาหรือเทากับ 50 ใหแสดง คําวา “Pass” ที่หนาจอ แตถานอยกวา 50 ใหแสดงคําวา Fail การเขียนผังงานแบบมีทางเลือกสามารถแบงออกเปนลักษณะการเขียนดังนี้ ◦ ผังงานแบบมีทางเลือกโดยใชคําสั่ง IF ◦ ผังงานที่มีมากกวา 2 ทางเลือกจากการใชคาสั่ง CASE ํ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 37
  • 8. ผังงานแบบมี 2 ทางเลือกจากการใชคําสัง IF ่ • IF แบบทางเลือกเดียว Single Selection จะทําการตรวจสอบเงื่อนไข ถาเปนจริง จะไปทําคําสั่งทํางาน ถาเปนเท็จ ก็จะออกจากโครงสราง โดยมีรูปแบบการเขียนดังนี้ • IF แบบสองทางเลือก Double Selection จะทําการตรวจสอบเงื่อนไข ถาเปนจริง จะไปทําคําสั่งทํางาน 1 แลวออกจากโครงสราง ถาเปนเท็จ จะไปทําคําสั่งทํางาน 2 แลวออกจากโครงสราง ซึ่งมีรูปแบบการเขียนดังนี้ • IF แบบหลายทางเลือก Multi Selection เปนการตรวจสอบแบบหลายเงื่อนไข ทําใหมีทางออกไดหลายทาง ซึ่งเปนการนําโครงสรางของ IF มาซอนกันเพื่อใหไดเงื่อนไขมากขึ้นตามความตองการ โดยมีรปแบบการเขียนดังนี้ ู เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 38
  • 9. ผังงานที่มีมากกวา 2 ทางเลือก CASE เปนการตรวจสอบเงื่อนไขของตัวแปรตรวจสอบ วามีคาตรงกับคาใด คาดังกลาวจะเปนตัวบอก กิจกรรมที่ตองทํา โดยมีรูปแบบการเขียนดังนี้ การเขียนผังงานแบบมีการทํางานวนซ้ํา (Iteration Structure) โปรแกรมสวนใหญจะมีคําสั่งสําหรับการทํางานซ้ําหรือเรียกวา ลูป (Loop) โดยการทําซ้ําของ โปรแกรมจะอยูภายใตเงื่อนไข จริง หรือ เท็จ ตามที่ผูเขียนโปรแกรมไดออกแบบไว รูปแบบของการวนซ้ํามี ดังนี้ • While โครงสรางคําสั่งจะทําการตรวจสอบเงื่อนไขกอน ถาเงื่อนไขเปน จริง ก็จะทํากิจกรรมนั้นซ้ําไป เรื่อยๆ แตเมื่อเงื่อนไขเปน เท็จ จะหยุดทําซ้ําแลวออกจากลูปไป มีรูปแบบการเขียนดังนี้ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 39
  • 10. ตัวอยาง โปรแกรมแสดงตัวเลข 1 – 5 โดยใช While • Do while ทํากิจกรรมที่ตองการกอน แลวจึงตรวจสอบเงื่อนไข ถาเงื่อนไขเปน จริง ก็จะทํากิจกรรมนั้นซ้ําไป  เรื่อยๆ แตเมื่อเงื่อนไขเปน เท็จ จะหยุดทําซ้ําแลวออกจากลูปไป มีรูปแบบการเขียนดังนี้ ตัวอยาง โปรแกรมแสดงตัวเลข 1 – 5 โดยใช Do While • Repeat until (Do until) ทํากิจกรรมที่ตองการกอน แลวจึงตรวจสอบเงื่อนไข ถาเงื่อนไขเปน เท็จ ก็จะทํากิจกรรมนั้นซ้ําไป  เรื่อยๆ แตถาเงือนไขเปน จริง จะหยุดทําซ้าแลวออกจากลูปไป มีรูปแบบการเขียนดังนี้ ่ ํ เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 40
  • 11. ตัวอยาง โปรแกรมแสดงตัวเลข 1 – 5 โดยใช Repeat until (Do until) • For โครงสรางคําสั่งจะทําการวนซ้ําโดยรูจํานวนแนนอน โดยมีการกําหนดคาเริ่มตน คาสิ้นสุด ของตัว แปรนับรอบ มีรูปแบบการเขียนดังนี้ ตัวอยาง โปรแกรมแสดงตัวเลข 1 – 5 โดยใช For เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 41
  • 12. จากโจทยปญหาวิเคราะหหาตัวแปรที่ใชในอัลกอริทึม นํามาเขียน Pesudo Code และเขียนผังงาน • ตัวอยาง 1 จงเขียน Flowchart รับขอมูลจํานวนสมที่ซื้อ เพื่อคํานวณหาราคาสมที่ตองจาย โดยมี เงื่อนไขวา ถาซื้อสมนอยกวาหรือเทากับ 5 กิโลกรัม คิดราคากิโลกรัมละ 35 บาท แตถาซื้อสมนอย มากกวา 5 กิโลกรัมขึ้นไป คิดราคากิโลกรัมละ 30 บาท กําหนดตัวแปรที่ใช น้ําหนักของสมที่ซื้อ ใชช่อตัวแปร weight ื ราคาสมที่ตองจาย ใชชื่อตัวแปร amount Pseudo code Flowchart Compute_amount INIT weight , amount : INTEGER READ weight IF (weight<=5) THEN amount = weight * 35 ELSE amount = weight * 30 END IF END • ตัวอยางที่ 2 จงเขียนผังงานเพื่อรับตัวเลขจํานวน n ตัว ตามจํานวนที่ผูใชตองการ และหาผลรวม ของตัวเลขทั้งหมดนัน ้ กําหนดตัวแปรที่ใชในผังงาน จํานวนตัวเลข ใชชื่อตัวแปร n คาของตัวเลข ใชชื่อตัวแปร number ผลรวม ใชชื่อตัวแปร result เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 42
  • 13. ตัวนับจํานวน “ครั้งที่ของการปอนตัวเลข” ใชช่อตัวแปร count ื Pseudo code Flowchart Sum_Number INIT n,number,result,count : INTEGER count = 1 READ n WHILE (count<=n) READ number result = result + number count = count + 1 END WHILE PRINT result END • ตัวอยางที่ 3 จงเขียนผังงานเพื่อรับตัวเลขครั้งละ 1 จํานวน และใหตรวจสอบ ถาตัวเลขที่รับเขามามี คามากกวา 50 ใหแสดงตัวเลขนั้นบนหนาจอ จากนั้นวนรับตัวเลขแลวทําซ้ําจนครบ 10 จํานวน กําหนดตัวแปรที่ใชในผังงาน คาของตัวเลข ใชชื่อตัวแปร number ตัวนับจํานวน “ครั้งที่ของการปอนตัวเลข” ใชชื่อตัวแปร count Pseudo code Print_Number>50 INIT number, count : INTEGER count = 1 WHILE (count<=5) Read number IF(number>50)THEN Print number END IF count = count + 1 END WHILE END เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 43
  • 14. Flowchart เรียบเรียงโดย อาจารยนพดล ผูมีจรรยา โปรแกรมวิชาเทคโนโลยีคอมพิวเตอร หนา 44