Flowchart
description
Transcript of Flowchart
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 31
บทท 4 การเขยนผงงาน (Flowchart)
การเขยนผงงาน(Flowchart) เปนเทคนคหรอวธการอยางหนงสาหรบใชเขยนแสดงอลกอรทม การเขยนผงงานจะใชรปภาพทเปนสญลกษณมาตรฐานสากลนาไปเขยนแทนกจกรรมตาง ๆ ในแตละขนตอนของอลกอรทม ซงกจกรรมทแตกตางกนกจะใชสญลกษณรปภาพทแตกตางกน โดยสญลกษณภาพนกาหนดตามมาตรฐานของ ANSI (American National Standards Institute) และ ISO (International Standard Organization)
การเขยนแสดงอลกอรทมดวยผงงานสามารถออกแบบไดงาย ผอนสามารถเขาใจผงงานไดงายเพราะเปนมาตรฐานสากล และเมอนาผงงานไปเขยนโปรแกรมกจะทาไดสะดวกรวดเรว
ประเภทของผงงาน ผงงานทางคอมพวเตอรม 2 ประเภทคอ ผงงานระบบ(System Flowchart) และผงงานโปรแกรม (Program Flowchart)
ผงงานระบบ(System Flowchart) ผงงานระบบจะเปนการแสดงใหเราเหนวา ในระบบหนง ๆ นนมขนตอนในการทางานอยางไร ซง
จะมองเหนในลกษณะภาพกวาง ๆ ของระบบ แตจะไมเจาะลกลงไปวาในระบบวาในแตละงานนนมการทางานอยางไร คอ จะใหเหนวาจดเรมตนของงานเรมจากสวนใด เปนขอมลแบบใด มการประมวลผลอยางไร และจะไดผลลพธเปนอยางไรและเกบอยทใด ดงรป
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 32
ผงงานโปรแกรม(Program Flowchart) ผงงานโปรแกรม หรอ เรยกสน ๆ วา ผงงาน จะเปนผงงานทแสดงใหเหนถงลาดบขนตอนในการทางานของโปรแกรม ตงแตการรบขอมล การประมวลผล ตลอดจนผลลพธทได จะทาใหเขยนโปรแกรมไดสะดวกขน ซงผงงานชนดนอาจสรางมาจากผงงานระบบ โดยดงเอาจดทเกยวของกบคอมพวเตอรมาวเคราะหวาจะใชทางานสวนใดเพอทจะใหไดมาซงผลลพธทตองการ ดงรป
ประโยชนของผงงาน 1. ทาใหมองเหนรปแบบของงานไดทงหมด โดยใชเวลาไมมาก 2. การเขยนผงงานเปนสากลสามารถนาไปเขยนโปรแกรมไดทกภาษา 3. สามารถตรวจสอบขอผดพลาดของโปรแกรมไดอยางรวดเรว 4. หากมการพฒนาระบบงานในลาดบตอไป สามารถทาไดอยางรวดเรว โดยศกษาจากผงงาน จะ
สามารถศกษาไดอยางรวดเรว และเขาใจงายกวาการศกษาจากโปรแกรม
สญลกษณของผงงาน
สญลกษณ ความหมาย ตวอยาง ความหมาย
แสดงการเรมตน หรอการสนสดของผงงาน
1. เรมผงงาน 2. จบผงงาน
รบหรอแสดงขอมลโดยไมระบชนดของอปกรณ
1. รบคา a โดยไมระบอปกรณ 2. แสดงคา a โดยไมระบอปกรณ
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 33
ปอนขอมลดวยคยบอรด
ปอนคา a ทางคยบอรด
แสดงผลลพธทางจอภาพ
แสดงคา a ทางจอภาพ
การคานวณ หรอ การกาหนดคา
1.คานวณคา B+C แลวเกบผลลพธไวท A 2. กาหนดคา Num = 5
แสดงขอมลหรอผลลพธทางเครองพมพลงบนกระดาษ
พมพคา a ทางกระดาษ
การเปรยบเทยบ การตดสนใจ
เปรยบเทยบ X > 5 หรอไม
การเตรยมการ การกาหนดคาลวงหนา
กาหนดให i=1 แลวเพมขนทละ 1 จนถง 10
โปรแกรมยอย
เรยกโปรแกรมยอยชอ sub1
รบหรอแสดงขอมลโดยใชเทปแมเหลก
- -
รบหรอแสดงขอมลโดยใชจานแมเหลก
- -
การเกบขอมล
- -
เสนแสดงทศทางการทางาน
ประมวลผลแลว ตอดวยการแสดงผล
จดเชอมตอในหนาเดยวกน
หลงกาหนด a=3 แลวใหไปทางานตอทจดตอเนอง 1 หนาเดยวกน
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 34
จดเชอมตอไปหนาอน
หลงกาหนด b=5 แลวใหไปทางานตอทจดตอเนอง a ซงอยคนละหนากน
หมายเหตหรอคาอธบาย -
หลกการเขยนผงงานทด 1. มทางเขาหรอจดเรมตน และทางออกหรอจดสนสดเพยงทางเดยวเทานน 2. ลาดบขนตอนการทางานควรจะเรมจากบนลงลาง หรอจากซายไปขวา 3. ในสญลกษณใด ๆ มทางออกเพยงทางเดยว ยกเวนสญลกษณแสดงการตดสนใจ หรอ ทางเลอก
สามารถมทางออกไดอยางนอยสองทาง 4. เสนทางเดนในผงงานควรชดเจน เปนระเบยบ 5. ขอความหรอคาสงใด ๆ ทอยในสญลกษณควรสน กระชบ ไดใจความ และสามารถเขาใจไดงาย 6. ใชสญลกษณทมขนาดเหมาะสมกบคาสง 7. การกาหนดทศทางการทางานดวยลกศร ควรจะมทศทางจากบนลงลาง หรอ ขวาไปซายเทานน 8. ในกระบวนการทางานทตองการเพมคาอธบายเขาไปเพอใหเกดความเขาใจ กสามารถทาไดโดยการ
ใชสญลกษณหมายเหตประกอบ
ตวอยางการเขยนผงงานในชวตประจาวน ตวอยางท 1 การเขยนผงงานขนตอนการสงจดหมาย
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 35
ตวอยางท 2 การเขยนผงงานแสดงเงอนไขการรบประทานยา โดยแบงขนาดรบประทานตามอายดงน
◦ อายมากกวา 10 ป รบประทานครงละ 2 ชอนชา
◦ อาย 3 - 10 ป รบประทานครงละ 1 ชอนชา
◦ อาย 1 -3 ป รบประทานครงละ 1/2 ชอนชา
◦ เดกแรกเกด หามรบประทาน
ตวอยางการเขยนผงงานโปรแกรม การเขยนผงงานการหาพนทวงกลม
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (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
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 37
การเขยนผงงานแบบมทางเลอกการทางาน (Decision Structure) เปนการเขยนผงงงานทมลกษณะการทางานแบบมเงอนไขทางตรรกะ โดยใชประโยชนจากพชคณต
บลน เพอใหเครองประมวลผลลกษณะตดสนใจ เลอกทศทางการทางานตามคาสงทกาหนดไว ดงตวอยางตอไปน
การเขยนผงงานแบบมทางเลอกสามารถแบงออกเปนลกษณะการเขยนดงน
◦ ผงงานแบบมทางเลอกโดยใชคาสง IF
◦ ผงงานทมมากกวา 2 ทางเลอกจากการใชคาสง CASE
ผงงานแสดงโปรแกรมการคานวณคา a จากสตร a = x + y โดยรบคา x และ y ทางแปนพมพ และแสดงผลลพธ a ออกทางจอภาพ
ผงงานแสดงโปรแกรมการประเมนผลการเรยน โดยรบคะแนนนกศกษา เข ามาทางแปนพมพ ถ าคะแนนมากวาหรอเทากบ 50 ใหแสดงคาวา “Pass” ทหนาจอ แตถานอยกวา 50 ใหแสดงคาวา Fail
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 38
ผงงานแบบม 2 ทางเลอกจากการใชคาสง IF
• IF แบบทางเลอกเดยว Single Selection จะทาการตรวจสอบเงอนไข ถาเปนจรง จะไปทาคาสงทางาน ถาเปนเทจ กจะออกจากโครงสราง
โดยมรปแบบการเขยนดงน
• IF แบบสองทางเลอก Double Selection จะทาการตรวจสอบเงอนไข ถาเปนจรง จะไปทาคาสงทางาน 1 แลวออกจากโครงสราง ถาเปนเทจ
จะไปทาคาสงทางาน 2 แลวออกจากโครงสราง ซงมรปแบบการเขยนดงน
• IF แบบหลายทางเลอก Multi Selection เปนการตรวจสอบแบบหลายเงอนไข ทาใหมทางออกไดหลายทาง ซงเปนการนาโครงสรางของ
IF มาซอนกนเพอใหไดเงอนไขมากขนตามความตองการ โดยมรปแบบการเขยนดงน
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 39
ผงงานทมมากกวา 2 ทางเลอก CASE เปนการตรวจสอบเงอนไขของตวแปรตรวจสอบ วามคาตรงกบคาใด คาดงกลาวจะเปนตวบอก
กจกรรมทตองทา โดยมรปแบบการเขยนดงน
การเขยนผงงานแบบมการทางานวนซา (Iteration Structure)
โปรแกรมสวนใหญจะมคาสงสาหรบการทางานซาหรอเรยกวา ลป (Loop) โดยการทาซาของโปรแกรมจะอยภายใตเงอนไข จรง หรอ เทจ ตามทผเขยนโปรแกรมไดออกแบบไว รปแบบของการวนซามดงน
• While โครงสรางคาสงจะทาการตรวจสอบเงอนไขกอน ถาเงอนไขเปน จรง กจะทากจกรรมนนซาไป
เรอยๆ แตเมอเงอนไขเปน เทจ จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 40
• Do while ทากจกรรมทตองการกอน แลวจงตรวจสอบเงอนไข ถาเงอนไขเปน จรง กจะทากจกรรมนนซาไป
เรอยๆ แตเมอเงอนไขเปน เทจ จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน
• Repeat until (Do until)
ทากจกรรมทตองการกอน แลวจงตรวจสอบเงอนไข ถาเงอนไขเปน เทจ กจะทากจกรรมนนซาไปเรอยๆ แตถาเงอนไขเปน จรง จะหยดทาซาแลวออกจากลปไป มรปแบบการเขยนดงน
ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช While
ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช Do While
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 41
• For
โครงสรางคาสงจะทาการวนซาโดยรจานวนแนนอน โดยมการกาหนดคาเรมตน คาสนสด ของตวแปรนบรอบ มรปแบบการเขยนดงน
ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช Repeat until (Do until)
ตวอยาง โปรแกรมแสดงตวเลข 1 – 5 โดยใช For
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (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
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (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
เอกสารประกอบการเรยน วชาหลกการเขยนโปรแกรมคอมพวเตอร (7121501)
เรยบเรยงโดย อาจารยนพดล ผมจรรยา โปรแกรมวชาเทคโนโลยคอมพวเตอร หนา 44
Flowchart