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