บทที่ 4 การเขียนผังงาน (flowchart) ·...

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

Upload: others

Post on 19-Sep-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 31

บทท 4 การเขยนผงงาน (Flowchart)

การเขยนผงงาน(Flowchart) เปนเทคนคหรอวธการอยางหนงสาหรบใชเขยนแสดงอลกอรทม การเขยนผงงานจะใชรปภาพทเปนสญลกษณมาตรฐานสากลนาไปเขยนแทนกจกรรมตาง ๆ ในแตละขนตอนของอลกอรทม ซงกจกรรมทแตกตางกนกจะใชสญลกษณรปภาพทแตกตางกน โดยสญลกษณภาพนกาหนดตามมาตรฐานของ ANSI (American National Standards Institute) และ ISO (International Standard Organization)

การเขยนแสดงอลกอรทมดวยผงงานสามารถออกแบบไดงาย ผอนสามารถเขาใจผงงานไดงายเพราะเปนมาตรฐานสากล และเมอนาผงงานไปเขยนโปรแกรมกจะทาไดสะดวกรวดเรว

ประเภทของผงงาน ผงงานทางคอมพวเตอรม 2 ประเภทคอ ผงงานระบบ(System Flowchart) และผงงานโปรแกรม (Program Flowchart)

ผงงานระบบ(System Flowchart) ผงงานระบบจะเปนการแสดงใหเราเหนวา ในระบบหนง ๆ นนมขนตอนในการทางานอยางไร ซง

จะมองเหนในลกษณะภาพกวาง ๆ ของระบบ แตจะไมเจาะลกลงไปวาในระบบวาในแตละงานนนมการทางานอยางไร คอ จะใหเหนวาจดเรมตนของงานเรมจากสวนใด เปนขอมลแบบใด มการประมวลผลอยางไร และจะไดผลลพธเปนอยางไรและเกบอยทใด ดงรป

Page 2: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 32

ผงงานโปรแกรม(Program Flowchart) ผงงานโปรแกรม หรอ เรยกสน ๆ วา ผงงาน จะเปนผงงานทแสดงใหเหนถงลาดบขนตอนในการทางานของโปรแกรม ตงแตการรบขอมล การประมวลผล ตลอดจนผลลพธทได จะทาใหเขยนโปรแกรมไดสะดวกขน ซงผงงานชนดนอาจสรางมาจากผงงานระบบ โดยดงเอาจดทเกยวของกบคอมพวเตอรมาวเคราะหวาจะใชทางานสวนใดเพอทจะใหไดมาซงผลลพธทตองการ ดงรป

ประโยชนของผงงาน 1. ทาใหมองเหนรปแบบของงานไดทงหมด โดยใชเวลาไมมาก 2. การเขยนผงงานเปนสากลสามารถนาไปเขยนโปรแกรมไดทกภาษา 3. สามารถตรวจสอบขอผดพลาดของโปรแกรมไดอยางรวดเรว 4. หากมการพฒนาระบบงานในลาดบตอไป สามารถทาไดอยางรวดเรว โดยศกษาจากผงงาน จะ

สามารถศกษาไดอยางรวดเรว และเขาใจงายกวาการศกษาจากโปรแกรม

 สญลกษณของผงงาน

สญลกษณ ความหมาย ตวอยาง ความหมาย

แสดงการเรมตน หรอการสนสดของผงงาน

1. เรมผงงาน 2. จบผงงาน

รบหรอแสดงขอมลโดยไมระบชนดของอปกรณ

1. รบคา a โดยไมระบอปกรณ 2. แสดงคา a โดยไมระบอปกรณ

Page 3: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 33

ปอนขอมลดวยคยบอรด

ปอนคา a ทางคยบอรด

แสดงผลลพธทางจอภาพ

แสดงคา a ทางจอภาพ

การคานวณ หรอ การกาหนดคา

1.คานวณคา B+C แลวเกบผลลพธไวท A 2. กาหนดคา Num = 5

แสดงขอมลหรอผลลพธทางเครองพมพลงบนกระดาษ

พมพคา a ทางกระดาษ

การเปรยบเทยบ การตดสนใจ

เปรยบเทยบ X > 5 หรอไม

การเตรยมการ การกาหนดคาลวงหนา

กาหนดให i=1 แลวเพมขนทละ 1 จนถง 10

โปรแกรมยอย

เรยกโปรแกรมยอยชอ sub1

รบหรอแสดงขอมลโดยใชเทปแมเหลก

- -

รบหรอแสดงขอมลโดยใชจานแมเหลก

- -

การเกบขอมล

- -

เสนแสดงทศทางการทางาน

ประมวลผลแลว ตอดวยการแสดงผล

จดเชอมตอในหนาเดยวกน

หลงกาหนด a=3 แลวใหไปทางานตอทจดตอเนอง 1 หนาเดยวกน

Page 4: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 34

จดเชอมตอไปหนาอน

หลงกาหนด b=5 แลวใหไปทางานตอทจดตอเนอง a ซงอยคนละหนากน

หมายเหตหรอคาอธบาย -

หลกการเขยนผงงานทด 1. มทางเขาหรอจดเรมตน และทางออกหรอจดสนสดเพยงทางเดยวเทานน 2. ลาดบขนตอนการทางานควรจะเรมจากบนลงลาง หรอจากซายไปขวา 3. ในสญลกษณใด ๆ มทางออกเพยงทางเดยว ยกเวนสญลกษณแสดงการตดสนใจ หรอ ทางเลอก

สามารถมทางออกไดอยางนอยสองทาง 4. เสนทางเดนในผงงานควรชดเจน เปนระเบยบ 5. ขอความหรอคาสงใด ๆ ทอยในสญลกษณควรสน กระชบ ไดใจความ และสามารถเขาใจไดงาย 6. ใชสญลกษณทมขนาดเหมาะสมกบคาสง 7. การกาหนดทศทางการทางานดวยลกศร ควรจะมทศทางจากบนลงลาง หรอ ขวาไปซายเทานน 8. ในกระบวนการทางานทตองการเพมคาอธบายเขาไปเพอใหเกดความเขาใจ กสามารถทาไดโดยการ

ใชสญลกษณหมายเหตประกอบ

ตวอยางการเขยนผงงานในชวตประจาวน ตวอยางท 1 การเขยนผงงานขนตอนการสงจดหมาย

Page 5: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 35

ตวอยางท 2 การเขยนผงงานแสดงเงอนไขการรบประทานยา โดยแบงขนาดรบประทานตามอายดงน

◦ อายมากกวา 10 ป รบประทานครงละ 2 ชอนชา

◦ อาย 3 - 10 ป รบประทานครงละ 1 ชอนชา

◦ อาย 1 -3 ป รบประทานครงละ 1/2 ชอนชา

◦ เดกแรกเกด หามรบประทาน

ตวอยางการเขยนผงงานโปรแกรม การเขยนผงงานการหาพนทวงกลม

Page 6: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 36

รปแบบการเขยนผงงาน 1. การเขยนผงงานแบบเรยงลาดบการทางาน (Sequential Structure) 2. การเขยนผงงานแบบมทางเลอกการทางาน (Decision Structure)

• ผงงานแบบม 2 ทางเลอก IF

• ผงงานทมมากกวา 2 ทางเลอก CASE 3. การเขยนผงงานแบบมการทางานวนซา (Iteration Structure)

• While

• Do while

• Repeat until (Do until)

• For

การเขยนผงงานแบบเรยงลาดบการทางาน (Sequential Structure) เปนโครงสรางของโปรแกรมททางานเปนลาดบขนตอนเรยงกนไป โดยไมมการขามขนตอน หรอ

ยอนกลบ ดงตวอยางตอไปน

สามารถใชคาอน ๆ ไดเชน Begin

สามารถใชคาอน ๆ ไดเชน Input , Get

สามารถใชคาอน ๆ ไดเชน Show , Display

สามารถใชคาอน ๆ ไดเชน Stop

Page 7: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 37

การเขยนผงงานแบบมทางเลอกการทางาน (Decision Structure) เปนการเขยนผงงงานทมลกษณะการทางานแบบมเงอนไขทางตรรกะ โดยใชประโยชนจากพชคณต

บลน เพอใหเครองประมวลผลลกษณะตดสนใจ เลอกทศทางการทางานตามคาสงทกาหนดไว ดงตวอยางตอไปน

การเขยนผงงานแบบมทางเลอกสามารถแบงออกเปนลกษณะการเขยนดงน

◦ ผงงานแบบมทางเลอกโดยใชคาสง IF

◦ ผงงานทมมากกวา 2 ทางเลอกจากการใชคาสง CASE

ผงงานแสดงโปรแกรมการคานวณคา a จากสตร a = x + y โดยรบคา x และ y ทางแปนพมพ และแสดงผลลพธ a ออกทางจอภาพ

ผงงานแสดงโปรแกรมการประเมนผลการเรยน โดยรบคะแนนนกศกษา เข ามาทางแปนพมพ ถ าคะแนนมากวาหรอเทากบ 50 ใหแสดงคาวา “Pass” ทหนาจอ แตถานอยกวา 50 ใหแสดงคาวา Fail

Page 8: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 38

ผงงานแบบม 2 ทางเลอกจากการใชคาสง IF

• IF แบบทางเลอกเดยว Single Selection จะทาการตรวจสอบเงอนไข ถาเปนจรง จะไปทาคาสงทางาน ถาเปนเทจ กจะออกจากโครงสราง

โดยมรปแบบการเขยนดงน

• IF แบบสองทางเลอก Double Selection จะทาการตรวจสอบเงอนไข ถาเปนจรง จะไปทาคาสงทางาน 1 แลวออกจากโครงสราง ถาเปนเทจ

จะไปทาคาสงทางาน 2 แลวออกจากโครงสราง ซงมรปแบบการเขยนดงน

• IF แบบหลายทางเลอก Multi Selection เปนการตรวจสอบแบบหลายเงอนไข ทาใหมทางออกไดหลายทาง ซงเปนการนาโครงสรางของ

IF มาซอนกนเพอใหไดเงอนไขมากขนตามความตองการ โดยมรปแบบการเขยนดงน

Page 9: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 39

ผงงานทมมากกวา 2 ทางเลอก CASE เปนการตรวจสอบเงอนไขของตวแปรตรวจสอบ วามคาตรงกบคาใด คาดงกลาวจะเปนตวบอก

กจกรรมทตองทา โดยมรปแบบการเขยนดงน

การเขยนผงงานแบบมการทางานวนซา (Iteration Structure)

โปรแกรมสวนใหญจะมคาสงสาหรบการทางานซาหรอเรยกวา ลป (Loop) โดยการทาซาของโปรแกรมจะอยภายใตเงอนไข จรง หรอ เทจ ตามทผเขยนโปรแกรมไดออกแบบไว รปแบบของการวนซามดงน

• While โครงสรางคาสงจะทาการตรวจสอบเงอนไขกอน ถาเงอนไขเปน จรง กจะทากจกรรมนนซาไป

เรอยๆ แตเมอเงอนไขเปน เทจ จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน

Page 10: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 40

• Do while ทากจกรรมทตองการกอน แลวจงตรวจสอบเงอนไข ถาเงอนไขเปน จรง กจะทากจกรรมนนซาไป

เรอยๆ แตเมอเงอนไขเปน เทจ จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน

• Repeat until (Do until)

ทากจกรรมทตองการกอน แลวจงตรวจสอบเงอนไข ถาเงอนไขเปน เทจ กจะทากจกรรมนนซาไปเรอยๆ แตถาเงอนไขเปน จรง จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน

ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช While

ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช Do While

Page 11: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 41

• For

โครงสรางคาสงจะทาการวนซาโดยรจานวนแนนอน โดยมการกาหนดคาเรมตน คาสนสด ของตวแปรนบรอบ มรปแบบการเขยนดงน

ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช Repeat until (Do until)

ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช For

Page 12: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 42

ตวอยางการเขยนผงงานจากโจทยปญหา จากโจทยปญหาวเคราะหหาตวแปรทใชในอลกอรทม นามาเขยน Pesudo Code และเขยนผงงาน

• ตวอยาง 1 จงเขยน Flowchart รบขอมลจานวนสมทซอ เพอคานวณหาราคาสมทตองจาย โดยมเงอนไขวา ถาซอสมนอยกวาหรอเทากบ 5 กโลกรม คดราคากโลกรมละ 35 บาท แตถาซอสมนอยมากกวา 5 กโลกรมขนไป คดราคากโลกรมละ 30 บาท กาหนดตวแปรทใช นาหนกของสมทซอ ใชชอตวแปร weight ราคาสมทตองจาย ใชชอตวแปร amount

• ตวอยางท 2 จงเขยนผงงานเพอรบตวเลขจานวน n ตว ตามจานวนทผใชตองการ และหาผลรวม

ของตวเลขทงหมดนน

กาหนดตวแปรทใชในผงงาน จานวนตวเลข ใชชอตวแปร n คาของตวเลข ใชชอตวแปร number ผลรวม ใชชอตวแปร result

Compute_amount INIT weight , amount : INTEGER READ weight IF (weight<=5) THEN amount = weight * 35 ELSE amount = weight * 30 END IF END

Pseudo code Flowchart

Page 13: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 43

ตวนบจานวน “ครงทของการปอนตวเลข” ใชชอตวแปร count

• ตวอยางท 3 จงเขยนผงงานเพอรบตวเลขครงละ 1 จานวน และใหตรวจสอบ ถาตวเลขทรบเขามามคามากกวา 50 ใหแสดงตวเลขนนบนหนาจอ จากนนวนรบตวเลขแลวทาซาจนครบ 10 จานวน

กาหนดตวแปรทใชในผงงาน คาของตวเลข ใชชอตวแปร number ตวนบจานวน “ครงทของการปอนตวเลข” ใชชอตวแปร count

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

Pseudo code Flowchart

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

Pseudo code

Page 14: บทที่ 4 การเขียนผังงาน (Flowchart) · ผังงานโปรแกรม (Program Flowchart) ผังงานโปรแกรม หรือ

เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)

เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 44

Flowchart