Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore โครงสร้างการเขียนโปรแกรมแบบทำซ้ำเมื่อเป็นเท็จ (ทำจนกระทั่ง)

โครงสร้างการเขียนโปรแกรมแบบทำซ้ำเมื่อเป็นเท็จ (ทำจนกระทั่ง)

Published by chulalak thachaila, 2019-09-08 23:17:54

Description: โครงสร้างการทำงานแบบทำซ้ำจนกระทั่ง
การอธิบายขั้นตอนวิธีการทำงานแบบทำซ้ำจนกระทั่ง
การปรับโครงสร้างผังงานการทำงานแบบทำซ้ำจนกระทั่ง
การเขียนคำสั่งเทียมจากโครงสร้างแบบทำซ้ำจนกระทั่ง
สรุปโครงสร้างการทำงานแบบทำซ้ำ
ตัวอย่างการทำงานแบบทำซ้ำจนกระทั่ง

Search

Read the Text Version

[หปนี ]่วยท่ี 9 โครงสรา้ งโปรแกรมแบบทา้ ซ้า เมือ่ เปน็ เทจ็ TOP Ezy [เลือกวนั ท่ี] จุฬาลกั ษณ์ ถาไชยลา ภาควิชาคอมพิวเตอรธ์ ุรกิจ วิทยาลยั อาชีวศึกษามหาสารคาม

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทง่ั 183 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทั่ง สาระการเรียนรู้ 1. โครงสรา้ งการทางานแบบทาซ้าจนกระทงั่ 2. การอธิบายข้นั ตอนวธิ ีการทางานแบบทาซ้าจนกระทง่ั 3. การปรบั โครงสรา้ งผงั งานการทางานแบบทาซ้าจนกระทง่ั 4. การเขยี นคาสงั่ เทียมจากโครงสรา้ งแบบทาซ้าจนกระทง่ั 5. สรุปโครงสรา้ งการทางานแบบทาซ้า 6. ตวั อยา่ งการทางานแบบทาซ้าจนกระทง่ั จุดประสงค์การเรียนรู้ 1. อธิบายลกั ษณะการทางานของข้นั ตอนวธิ ีการทางานแบบทาซ้าจนกระทง่ั 2. เขียนข้นั ตอนวธิ ีการทางานแบบทาซ้าจนกระทง่ั จากผงั งานได้ 3. ปรบั โครงสร้างผงั งานการทางานแบบทาซ้าจนกระทง่ั ได้ 4. เขียนคาสง่ั เทยี มจากข้นั ตอนวธิ ีการทางานได้ 5. เขียนผงั งานการทางานแบบทาซ้าจนกระทง่ั ได้ 6. แยกความแตกตา่ งระหวา่ งการทางานแบบทาซ้าในขณะท่กี บั ทาซ้าจนกระทงั่ ได้ 7. มีความสนใจใฝ่ เรียนรู้ ต้งั ใจเรียน 8. มีวนิ ยั เขา้ เรียนทนั เวลา ปฏบิ ตั ติ ามกฎระเบยี บของวทิ ยาลยั ฯ 9. มีความรับผดิ ชอบงานท่ไี ดร้ บั มอบหมาย 10. มีความคิดริเร่ิมสร้างสรรค์ มีความเช่ือมน่ั กลา้ ลองผดิ ลองถูก 11. มีความซ่ือสตั ยต์ อ่ ตนเองและผอู้ ื่น จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

184 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทั่ง โครงสร้างผงั งานแบบทาซา้ จนกระทง่ั โครงสรา้ งผงั งานแบบทาซ้าลกั ษณะทาจนกระทง่ั (Do... Until) การทางานใน ลาดบั แรกคือตอ้ งทาซ้าอยา่ งนอ้ ย 1 คร้ังก่อน แลว้ จึงตรวจสอบหรือเปรียบเทยี บเงอื่ นไข เพอื่ จะ พจิ ารณาวา่ จะกลบั ไปทาข้นั ตอนการทาซ้าอีกหรือไม่ Process 1 Y N เงอื่ นไข การทางานจะเร่ิมจากข้นั ตอนการทาซ้าหรือ Process 1 อยา่ งนอ้ ย 1 คร้งั หลงั จากน้นั ก็จะ ทาการตรวจสอบหรือเปรียบเทียบเง่อื นไขอีก ถา้ ผลการตรวจสอบเงอื่ นไขเป็นเทจ็ ใหก้ ลบั ไปทา ข้นั ตอนการทาซ้า Process 1 อีกคร้ัง แลว้ ก็ตรวจสอบหรือเปรียบเทียบเงื่อนไขอีกถา้ ยงั คงเป็ นเทจ็ ก็จะใหท้ าข้นั ตอนทาซ้าหรือ Process 1 ใหท้ าเช่นน้ีไปเรื่อย ๆ จนกวา่ ผลของการตรวจสอบจะเป็ น จริง จึงจะออกจากข้นั ตอนการทาซ้าหรือ Process 1 ตัวอย่างที่ 1 Start X1 Read a , b Area  0.5 * a * b Write Area y X = 10 Stop N X  X+1 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระท่งั 185 การทางานขงผงั งานน้ีเริ่มตน้ จาก กาหนดค่า X เท่ากบั 1 แลว้ รับคา่ a และ b คานวณคา่ Area = 0.5 * a * b จากน้นั พมิ พค์ า่ Area ทค่ี านวรได้ แลว้ ตรวจสอบเงื่อนวา่ X = 10 หรือไม่ ถา้ ยงั ไม่เท่ากบั 10 ใหท้ าซ้าไปเรื่อย ๆ จนกระทง่ั X เทา่ กบั 10 จงึ หยดุ การทาข้นั ตอนซ้า ข้นั ตอนการทาซ้า คือ เพม่ิ ค่า x ข้นึ คร้งั ละ 1 แลว้ ยอ้ นกลบั ไปรับค่า aและ b ตอ่ จากน้นั คานวณคา่ Area = 0.5 * a * b แลว้ พมิ พค์ ่า Area ทีค่ านวณได้ หลงั จากน้นั ตรวจสอบ เงือ่ นไขวา่ x เทา่ กบั 10 หรือยงั ถา้ ยงั ไม่เทา่ กบั 10 ก็ยอ้ นกลบั ไปทาข้นั ตอนของการทาซ้าท้งั หมด ทาเช่นน้ีไปเร่ือย ๆ จนกระทงั่ x มีคา่ เทา่ กบั 10 จึงหยดุ การทาซ้า ตวั อย่างท่ี 2 Start A 1 Y S 0 Write S S  S+A A  A+2 A = 17 N Stop การทางานของผงั งานน้ีเร่ิมตน้ จาก กาหนดคา่ A เทา่ กบั 1 ข้นั ตอนตอ่ ไป คอื คานวณค่า S =S + Aแลว้ เพมิ่ ค่า A ข้ึนคร้ัง 2 จากน้นั ตรวจสอบหรือเปรียบเทียบเง่ือนไขวา่ A = 17 หรือไม่ ถา้ ยงั ไม่เทา่ กบั 17 ใหท้ าซ้าไปเรื่อย ๆ จนกระทงั่ A เทา่ กบั 17 จงึ หยดุ ข้นั ตอนการทาซ้า ข้นั ตอนการทาซ้า คอื คานวณคา่ S = S + A และเพม่ิ ค่า A ข้นึ คร้ังละ 2 หลงั จาก น้นั ตรวจสอบเงื่อนไขวา่ A เท่ากบั 17 หรือยงั ถา้ ยงั ไม่เทา่ กบั 17 กย็ อ้ นกลบั ไปทาข้นั ตอนของการ ทาซ้าท้งั หมด ทาซ้าเช่นน้ีเร่ือย ๆ จนกระทงั่ A มีค่าเทา่ กบั 17 จึงหยดุ ข้นั ตอนการทาซ้า จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

186 หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ การเขยี นข้นั ตอนวธิ สี าหรับการทางานแบบทาซ้าจนกระทง่ั การเขยี นข้นั ตอนวธิ ีสาหรบั การทาซ้า (Repetition) ลกั ษณะทาจนกระทง่ั (Do- Until) สามารถทาการเขยี นไดจ้ ากผงั งานท่มี ีโครงสรา้ งผงั งานเป็ นการทาซ้าลกั ษณะทาจนกระทง่ั การเขยี นอธิบายใชค้ าสง่ั “ทาจนกระทงั่ ” จากน้นั ตามดว้ ยเงื่อนไขทีใ่ ชส้ าหรับการตดั สินใจเพอื่ กลบั ไปทาซ้า ถดั จากน้นั คอื การอธิบายข้นั ตอนวธิ ีการทางานทต่ี อ้ งการทาซ้า โดยแยกอธิบายการ ทางานออกเป็นขอ้ ตามลาดบั วธิ ีการเขียนข้นั ตอนวธิ ีการทางานสาหรบั การทางานท่ีตอ้ งการทาซ้า ข้ึนอยกู่ บั ลกั ษณะการทางานของแตล่ ะกระบวนการทางานยอ่ ยน้นั วา่ เป็ นการทางานในลกั ษณะใด กจ็ ะใชก้ าร เขยี นอธิบายข้นั ตอนวธิ ีการทางานสาหรบั การทางานในกรณีน้นั โดยทาการปรับโครงสรา้ งการ ทางานใหอ้ ยใู่ นลกั ษณะการทาซ้าเม่ือเง่ือนไขเป็นเทจ็ จะหยดุ การทาซ้าเม่ือเง่ือนไขเป็ นจริง Process A N Y Condition จากส่วนของผงั งานท่มี ีโครงสร้างผงั งานเป็ นการทาซ้าลกั ษณะทาจนกระทง่ั สามารถทาการเขียนเป็นการอธิบายข้นั ตอนวธิ ีการทางานในลกั ษณะขอ้ ความไดด้ งั น้ี ทาจนกระท่งั Condition 1. Process A จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระท่งั 187 Read N Sum Sum + N N Y N=0 จากส่วนของผงั งาน สามารถเขยี นอธิบายข้นั ตอนวธิ ีการทางานในลกั ษณะขอ้ ความไดด้ งั น้ี 1. ทาจนกระทงั่ N เทา่ กบั 0 1.1 รับค่าของ N 1.2 คานวณค่าของ Sum เท่ากบั Sum + N จากตัวอย่างที่ 1 ผงั งานน้ีเป็นการคานวณหาพ้นื ท่สี ามเหล่ียม จานวน 10 รูป ซ่ึงสามารถเขยี นเป็ น ข้นั ตอนการทางานแบบขอ้ ความไดด้ งั น้ี 1. เร่ิมตน้ การทางาน 2. กาหนดให้ x มีค่าเท่ากบั 1 3. ทาซ้าจนกระทง่ั x เท่ากบั 10 3.1 รบั ค่า a และ b 3.2 คานวณค่า Area เทา่ กบั 0.5 * a * b 3.3 แสดงค่า Area 3.4 คานวณคา่ x เทา่ กบั x + 1 4. จบการทางาน จากตัวอย่างท่ี 2 ผงั งานน้ีเป็นการคานวณหาผลรวมของเลขคี่ ต้งั แต่ 1 ถึง 15 ซ่ึงสามารถเขยี นเป็น ข้นั ตอนการทางานแบบขอ้ ความไดด้ งั น้ี 1. เริ่มตน้ การทางาน 2. กาหนดค่า A เทา่ กบั 1 3. ทาซ้าจนกระทง่ั A เท่ากบั 17 3.1 คานวณคา่ S เท่ากบั S + A 3.2 คานวณคา่ A เทา่ กบั A + 2 4. แสดงคา่ S 5. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

188 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทั่ง การปรับโครงสร้างผงั งานการทางานแบบทาซา้ จนกระทง่ั การทางานของโครงสร้างผงั งานการทาซ้าจนกระทงั่ น้นั ในการตรวจสอบเงื่อนไข เพอื่ ที่จะกลบั ไปทาซ้า ถา้ ผลการตรวจสอบเงือ่ นไขออกมาเป็ นเทจ็ จะกลบั ไปสู่ข้นั ตอนการทาซ้า ถา้ ในบางกรณีเขยี นผงั งานการทาซ้าออกมาไดใ้ นลกั ษณะท่ีวา่ หลงั จากทาการตรวจสอบเง่อื นไขแลว้ ผลการตรวจสอบเงือ่ นไขออกเป็นเป็นจริงใหก้ ลบั ไปทาซ้า ถา้ ผลการตรวจสอบเงอ่ื นไขออกมาเป็ น เทจ็ ใหอ้ อกจากการทาซ้า ซ่ึงในลกั ษณะน้ีจะไม่อยใู่ นลกั ษณะโครงสร้างผงั งานการทาซ้า (Repetition)ลกั ษณะจนกระทงั่ (Do-Until) ทาใหไ้ ม่สามารถพฒั นาใหเ้ ป็นการอธิบายลาดบั ข้นั ตอน การทางานในลกั ษณะขอ้ ความ (Algorithm) ได้ จึงจาเป็ นตอ้ งมีการปรบั ผงั งานใหอ้ ยใู่ นโครงสร้าง ผงั งานการทาซ้า ลกั ษณะทาจนกระทงั่ ท่ีถกู ตอ้ ง แลว้ จงึ ทาการพฒั นาตอ่ ใหเ้ ป็ นการอธิบายลาดบั ข้นั ตอนการทางานในลกั ษณะขอ้ ความ วธิ ีการปรับโครงสรา้ งผงั งานทาเช่นเดียวกบั การปรบั โครงสร้างผงั งานการทาซ้าลกั ษณะทาในขณะที่ (Do – While) เช่น จากส่วนของผงั งาน เป็นโครงสรา้ งการทางานแบบทาซ้าในขณะท่ี Read N Sum Sum + N YN N <= 10 สามารถปรับโครงสร้างผงั งาน เป็นโครงสร้างการทางานแบบทาซ้าจนกระทงั่ ไดด้ งั น้ี Read N หลกั การเขียนโปรแกรม Sum Sum + N NY N > 10 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค.

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทัง่ 189 ตัวอย่างท่ี 3 การเขียนอธิบายข้นั ตอนวธิ ีการทางานจากผงั งานท่ีมีโครงสรา้ งผงั งานการทาซ้า ลกั ษณะทาจนกระทงั่ เป็นส่วนประกอบ Start A 1 Write A A A+ 1 N Y A > 10 End จากผงั งานมีกระบวนการทางานหลกั อยู่ 4 การทางาน โดยในกระบวนการที่ 3 เป็ นการ ทางานแบบทาซ้าลกั ษณะทาจนกระทงั่ การทางานยอ่ ยทอ่ี ยภู่ ายใตก้ ารทาซ้าเป็นการทางานแบบ ลาดบั สามารถเขียนอธิบายข้นั ตอนวธิ ีการทางานไดด้ งั น้ี 1. เริ่มตน้ การทางาน 2. กาหนดคา่ ให้ A  1 3. ทาซ้าจนกระทง่ั A > 10 3.1 แสดงคา่ A 3.2 คานวณคา่ A เทา่ กบั A + 1 4. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

190 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซา้ จนกระท่งั ตัวอย่างท่ี 4 การเขียนอธิบายข้นั ตอนวธิ ีการทางานจากผงั งานที่มีโครงสรา้ งผงั งานการทาซ้า ลกั ษณะทาจนกระทง่ั เป็นส่วนประกอบ Start ANS 1 Read N ANS ANS * N N N-1 N Y N<1 Write ANS End จากผงั งานมีกระบวนการทางานหลกั อยู่ 6 การทางาน โดยในกระบวนการที่ 4 เป็น การทางานแบบทาซ้าลกั ษณะทาจนกระทง่ั การทางานยอ่ ยท่ีอยภู่ ายใตก้ ารทาซ้าเป็ นการทางานแบบ ลาดบั สามารถเขยี นอธิบายข้นั ตอนวธิ ีการทางานไดด้ งั น้ี 1. เริ่มตน้ การทางาน 2. กาหนดคา่ ให้ ANS 1 3. รับคา่ N 4. ทาซ้าจนกระทง่ั N < 1 4.1 คานวณคา่ ANS เทา่ กบั ANS * N 4.2 คานวณคา่ N เทา่ กบั N – 1 5. แสดงค่าของ ANS 6. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทั่ง 191 ตวั อย่างที่ 5 การเขยี นอธิบายข้นั ตอนวธิ ีการทางานจากผงั งานที่มีโครงสรา้ งผงั งานการทาซ้า Start ANS 0 Read N N Y N>0 N ANS ANS + N N Y N<0 Write ANS End จากผงั งานมีกระบวนการทางานหลกั อยู่ 5 การทางาน โดยในกระบวนการท่ี 3เป็น การทางานแบบทาซ้าลกั ษณะทาจนกระทงั่ การทางานยอ่ ยท่ีอยภู่ ายในการทางานที่ 3 มีท้งั การ ทางานแบบลาดบั และการทางานแบบเลือกทา สามารถเขียนอธิบายข้นั ตอนวธิ ีการทางาน ใน ลกั ษณะของขอ้ ความไดด้ งั น้ี 1. เริ่มตน้ การทางาน 2. กาหนดค่าให้ ANS 0 3. ทาซ้าจนกระทงั่ N < 0 3.1 รับคา่ N 3.2 ถา้ N มากกวา่ 0 แลว้ ทา 3.2.1 คานวณคา่ ANS เท่ากบั ANS + N 4. แสดงค่าของ ANS 5. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

192 หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ การเขยี นคาสั่งเทยี มจากโครงสร้างแบบทาซ้าจนกระทงั่ การเขียนคาสง่ั เทียมสาหรบั การอธิบายข้นั ตอนวธิ ีการทาซ้าลกั ษณะทาจนกระทงั่ คาสง่ั เทยี มท่ใี ชค้ ือ “DO-UNTIL” โดยใชแ้ ทนคาอธิบายวา่ “ทาจนกระทง่ั ” จากการอธิบายข้นั ตอน วธิ ีการทางานในลกั ษณะของขอ้ ความ คาสงั่ เทียมสาหรบั ข้นั ตอนวธิ ีทเ่ี ป็ นการทางานยอ่ ยภายใตก้ ารทาซ้า ข้ึนอยกู่ บั ลกั ษณะการทางาน ถา้ เป็ นการทางานแบบเลือกทากใ็ ชค้ าสง่ั เทียมสาหรับการเลือกทา ถา้ เป็ นการ ทางานแบบทาซ้ากใ็ ชค้ าสง่ั เทียมสาหรับทาซ้า เช่น การอธิบายข้นั ตอนการทางานในลักษณะข้อความ (Algorithm) 1. ทาจนกระทง่ั N เทา่ กบั 0 1.1 รับค่าของ N 1.2 คานวณคา่ ของ Sum เท่ากบั Sum + N สามารถทาการเขียนเป็ นคาส่ังเทยี มได้ดงั นี้ DO-UNTIL N = 0 Read N Sum  Sum + N ตัวอย่างท่ี 6 การเขยี นคาสง่ั เทียมจากการอธิบายข้นั ตอนวธิ ีการทาท่ีมีการทาซ้าลกั ษณะทา จนกระทง่ั เป็นส่วนประกอบ 1. เริ่มตน้ การทางาน 2. กาหนดคา่ ให้ A เทา่ กบั 1 3. ทาซ้าจนกระทง่ั A < 10 3.1 แสดงค่า A 3.2 คานวณคา่ A เท่ากบั A + 1 4. จบการทางาน สามารถทาการเขียนเป็นคาสง่ั เทยี มไดด้ งั น้ี Begin A 1 DO-UNTIL A < 10 Write A A  A+1 End จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ 193 ตวั อย่างท่ี 7 การเขียนคาสงั่ เทยี มจากการอธิบายข้นั ตอนวธิ ีการทาท่มี ีการทาซ้าลกั ษณะทา จนกระทง่ั เป็นส่วนประกอบ 1. เริ่มตน้ การทางาน 2. กาหนดค่าให้ ANS เท่ากบั 1 3. รับคา่ N 4. ทาซ้าจนกระทง่ั N < 1 4.1 คานวณคา่ ANS เทา่ กบั ANS * N 4.2 คานวณค่า N เท่ากบั N – 1 5. แสดงคา่ ของ ANS 6. จบการทางาน สามารถทาการเขียนเป็ นคาสง่ั เทยี มไดด้ งั น้ี Begin ANS  1 Read N DO-UNTIL N < 1 ANS  ANS * N N  N–1 Write ANS End สรุปโครงสร้างการทางานแบบทาซ้า สามารถสรุปขอ้ แตกต่างระหวา่ งการทางานของโครงสร้างผงั งานการทาซ้า ลกั ษณะทาใน ขณะท่ี (Do – While) และโครงสร้างผงั งานการทาซ้าจนกระทงั่ (Do – Until) ไดด้ งั น้ี 1.1 ทาในขณะท่ี (Do – While) 1. กลบั ไปทาซ้าเมอ่ื ผลการตรวจสอบเง่อื นไขออกมาเป็นจริง 2. ทาการตรวจสอบเงอื่ นไขก่อนแลว้ จงึ กระทาข้นั ตอนทต่ี อ้ งทา 3. มีความเป็นไปไดท้ ี่จะไม่ทาซ้าเลย ถา้ ผลจากการตรวจสอบเงื่อนไขในการ ตรวจสอบคร้งั แรกเป็นเทจ็ 1.2 ทาจนกระทัง่ (Do – Until) 1. กลบั ไปทาซ้าเมื่อผลการตรวจสอบเง่ือนไขออกมาเป็นเทจ็ 2. กระทาข้นั ตอนการทางานทีต่ อ้ งการทาซ้าก่อน แลว้ จึงค่อยทาการตรวจสอบ เง่ือนไข 3. มีการกระทาข้นั ตอนการทางานทีต่ อ้ งทาซ้าอยา่ งนอ้ ย 1 คร้ัง จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

194 หน่วยที่ 9 โครงสร้างการทางานแบบทาซา้ จนกระท่ัง ตวั อย่างการวเิ คราะห์งานโครงสร้างการทาซา้ จนกระทง่ั ตัวอย่างท่ี 8 จงวเิ คราะหป์ ัญหา เขยี นผงั งานและคาสง่ั เทียม เพอ่ื คาดการณ์จานวนประชากรใน อีก 20 ปี ขา้ งหนา้ ของจงั หวดั มหาสารคาม โดยรับคา่ จานวนประชากร ณ ปัจจบุ นั เขา้ มา แลว้ คานวณจานวนประชากรท่เี พม่ิ ข้ึนปี ละ 5% ในอีก 20 ปี ขา้ งหนา้ จะมีจานวนเทา่ ไร ส่ิงทโี่ จทย์ต้องการ 1. คานวณจานวนประชากรในอีก 20 ปี ขา้ งหนา้ ข้อมูลเข้า 1. จานวนประชากรปัจจุบนั ข้อมูลออก 1. จานวนประชากร 20 ปี ขา้ งหนา้ ตัวแปรท่ีใช้ 1. จานวนประชากร : People 2. ปี ท่ี : Year อลั กอริทึม 1. เร่ิมตน้ 2. กาหนดให้ Year  1 3. รบั คา่ People 4. ทาจนกระทงั่ Year > 20 4.1 สะสมประชากร People People + (People * 0.05) 4.2 เพม่ิ ปี Year  Year + 1 5. พมิ พจ์ านวนประชากร People 6. จบการทางาน จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

ผังงาน หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระท่ัง 195 START Year = 1 Read People People  People + (People * 0.05) Year  Year + 1 Y Year > 20 People STOP N คาสั่งเทยี ม Begin Year  1 Rear People Do Until Year > 20 People  People +(People * 0.05) Year  Year + 1 Write People End จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

196 หน่วยที่ 9 โครงสร้างการทางานแบบทาซา้ จนกระทงั่ ตัวอย่างท่ี 9 จงวเิ คราะหป์ ัญหา เขยี นผงั งานและคาสงั่ เทียม เพอ่ื คานวณค่าแรงใหก้ บั พนกั งาน ในแต่ละวนั และคา่ แรงท้งั หมดของพนกั งานทุกคนท่ีบริษทั ตอ้ งจ่าย ใหท้ างานจนกระทงั่ รหสั พนกั งาน = 0 โดยมีอตั ราการจ่ายคา่ แรงต่อชวั่ โมงดงั น้ี แผนกงาน A อตั ราค่าจา้ ง 30 บาท/ชวั่ โมง แผนกงาน B อตั ราคา่ จา้ ง 25 บาท/ชวั่ โมง แผนกงาน C อตั ราคา่ จา้ ง 20 บาท/ชวั่ โมง แผนกงาน D อตั ราค่าจา้ ง 15 บาท/ชวั่ โมง สิ่งท่โี จทย์ต้องการ 1. คานวณการจา่ ยค่าแรงใหก้ บั พนกั งาน ข้อมูลเข้า 1. รหสั ประจาตวั 2. ชื่อพนกั งาน 3. แผนกงาน 4. ชว่ั โมงทางาน ข้อมูลออก1. รหสั ประจาตวั 2. ชื่อพนกั งาน 3. แผนกงาน 4. ชวั่ โมงทางาน 5. อตั ราคา่ จา้ ง 6. ค่าแรง 7. ค่าแรงท้งั หมด ตวั แปรท่ีใช้ 1. รหสั ประจาตวั : People 2. ช่ือพนกั งาน : Name 3. แผนกงาน : Depart 4. ชวั่ โมงทางาน : Hour 5. อตั ราคา่ จา้ ง : Rate 6. คา่ แรง : Income 7. ค่าแรงท้งั หมด : Total จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ 197 อัลกอริทมึ 1. เร่ิมตน้ 2. กาหนดให้ Total  0 , Income  0 3. รบั คา่ Id , Name , Depart , Hour 4. ทาจนกระทงั่ Id = ‘0’ 4.1 ถา้ Depart = ‘A’ ให้ Rate  30 มิฉะน้นั แลว้ 4.2 ถา้ Depart = ‘B’ ให้ Rate  25 มิฉะน้นั แลว้ 4.3 ถา้ Depart = ‘C’ ให้ Rate  20 มิฉะน้นั แลว้ 4.4 ถา้ Depart = ‘D’ ให้ Rate  15 4.6 คานวณค่าแรง Income  Hour * Rate 4.7 สะสมคา่ แรง Total  Total + Income 4.8 พมิ พค์ ่า Id , Name , Depart , Hour , Rate , Income 4.9 รบั คา่ Id , Name , Depart , Hour 5. พมิ พค์ ่าแรงท้งั หมด Total 6. จบการทางาน ผังงาน START Total  0 , Income  0 1 Id , Name , Depart , Hour Id = ‘ 0 ’ Y N Total A STOP จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

198 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซา้ จนกระท่ัง A Y Rate  30 Depart = ‘A ’ Y N Rate  25 Depart = ‘B ’ Y Rate  20 N N Depart = ‘C ’ 1 N Y Depart = ‘D ’ Y Rate  15 Income  Hour * Rate Total  Total + Income Id , Name , Depart , Hour , Rate , Income 1 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ 199 คาสั่งเทยี ม Begin Total  0 Income  0 Read Id , Name , Depart , Hour Do – Until Id = ‘0’ If Depart = ‘A’ Then Rate  30 Else If Depart = ‘B’ Then Rate  25 Else If Depart = ‘C’ Then Rate  20 Else Rate  15 Income  Hour * Rate Total  Total + Income Write Id , Name , Depart , Hour , Rate , Income Read Id , Name , Depart , Hour Write Total End จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

200 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซา้ จนกระทัง่ ตวั อย่างที่ 10 จงวเิ คราะห์ปัญหา เขยี นผงั งานและคาสงั่ เทียม เพอื่ นบั คะแนนผลู้ งสมคั รรบั เลือกต้งั นายก อกท. หน่วยมหาสารคาม มีผสู้ มคั รจานวน 5 คน จากหมายเลข 1 ถึง 5 ถา้ ผู้ ลงคะแนนเลือกหมายเลขอ่ืนนอกเหนือจากน้ีใหน้ บั เป็นบตั รเสีย และนบั จานวนผมู้ าใชส้ ิทธ์ิ ท้งั หมด กาหนดบตั รใบสุดทา้ ยใหห้ มายเลขเป็น -9 ส่ิงท่โี จทย์ต้องการ 1. นบั คะแนนผสู้ มคั รนายก อกท. จานวน 5 คน ข้อมูลเข้า 1. บตั รลงคะแนนหมายเลขผสู้ มคั รท่ีถูกเลือก ข้อมูลออก 1. คะแนนทไ่ี ดข้ องหมายเลข 1 2. คะแนนทไ่ี ดข้ องหมายเลข 2 3. คะแนนทไ่ี ดข้ องหมายเลข 3 4. คะแนนท่ไี ดข้ องหมายเลข 4 5. คะแนนทไี่ ดข้ องหมายเลข 5 6. จานวนบตั รเสีย 7. จานวนผมู้ าใชส้ ิทธ์ิท้งั หมด ตัวแปรทีใ่ ช้ 1. บตั รลงคะแนน : Card 2. คะแนนทไ่ี ดข้ องหมายเลข 1 : N1 3. คะแนนทีไ่ ดข้ องหมายเลข 2 : N2 4. คะแนนที่ไดข้ องหมายเลข 3 : N3 5. คะแนนทไ่ี ดข้ องหมายเลข 4 : N4 6. คะแนนท่ีไดข้ องหมายเลข 5 : N5 7. จานวนบตั รเสีย : Err 8. จานวนผมู้ าใชส้ ิทธ์ิท้งั หมด : Count จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

อัลกอริทึม หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระท่งั 201 1. เร่ิมตน้ 2. กาหนดให้ N1 , N2 , N3 , N4 , N5 , Err , Count  0 3. รับค่า Card 4. ทาจนกระทง่ั Card = ‘-9’ 4.1 ถา้ Card = ‘1’ ใหท้ า N1  N1 + 1 มิฉะน้นั แลว้ ถา้ Card = ‘2’ ใหท้ า N2  N2 + 1 มิฉะน้นั แลว้ ถา้ Card = ‘3’ ใหท้ า N3  N3 + 1 มิฉะน้นั แลว้ ถา้ Card = ‘4’ ใหท้ า N4  N4 + 1 มิฉะน้นั แลว้ ถา้ Card = ‘5’ ใหท้ า N5  N5 + 1 มิฉะน้นั แลว้ Err  Err + 1 4.2 Count  Count + 1 4.3 รับคา่ Card 5. พมิ พ์ N1 , N2 , N3 , N4 , N5 , Err , Count 6. จบการทางาน ผงั งาน START N1, N2 , N3 , N4 , N5 , Err , Count  0 1 Card Card = ‘ - 9 ’ Y N1, N2 , N3 , N4 , N N5 , Err , Count A STOP จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

202 หน่วยที่ 9 โครงสร้างการทางานแบบทาซา้ จนกระท่งั A Y N1  N1 + 1 Card = ‘ 1’ Y N N2  N2 + 1 Card = ‘2 ’ Y N3  N3 + 1 N Y Card = ‘3 ’ N4  N4 + 1 N Y Y N5  N5+ 1 Card = ‘4 ’ N Y Card = ‘5 ’ N Y Err  Err+ 1 Count  Count + 1 1 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระท่ัง 203 คาส่ังเทยี ม Begin N1  0 N2  0 N3  0 N4  0 N5  0 Err  0 Count  0 Read Card Do Until Card = ‘-9’ If Card = ‘1’ Then N1  N1 + 1 Else If Card = ‘2’ Then N2  N2 + 1 Else If Card = ‘3’ Then N3  N3 + 1 Else If Card = ‘4’ Then N4  N4 + 1 Else If Card = ‘5’ Then N5  N5 + 1 Else Err  Err + 1 Count  Count + 1 Read Card Write N1 , N2 , N3 , N4 , N5 , Err , Count End ******************** จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

204 หน่วยที่ 9 โครงสร้างการทางานแบบทาซ้าจนกระทงั่ แบบประเมนิ ผลการเรียนรู้หน่วยที่ 9 ขอ้ 1. จากผงั งานต่อไปน้ี จงทาการเปล่ียนใหเ้ ป็นการอธิบายลาดบั ข้นั ตอนวธิ ีการทางานใน ลกั ษณะขอ้ ความและคาสง่ั เทียม Start A1 Write A A A+1 NY A < 10 Write A End ขอ้ 2. จงเขยี นผงั งานสาหรบั การหาผลรวมของตวั เลขสะสม โดยรับค่าของตวั เลขเขา้ มาทาง แป้ นพมิ พ์ และหยดุ รับขอ้ มูลเมื่อตวั เลขทร่ี ับเขา้ มามีค่าเป็ นศนู ย์ จากน้นั แสดงค่าผลรวมของตวั เลข สะสมต้งั แตค่ า่ แรกจนถึงคา่ สุดทา้ ย แลว้ ทาการเขียนใหเ้ ป็ นอลั กอริทมึ และคาสงั่ เทยี ม ขอ้ 3. จงเขียนผงั งาน อลั กอริทึมและคาสงั่ เทียม แสดงผลเลขคตี่ ้งั แต่ 1 – n โดยรับค่าตวั เลข n จานวนทางแป้ นพมิ พ์ ขอ้ 4. จงวเิ คราะห์ปัญหา เขียนผงั งานและคาสงั่ เทยี ม เพอื่ คานวณผลบวกจากเลข 100 – 500 ขอ้ 5. จงวเิ คราะห์ปัญหา เขียนผงั งานและคาสงั่ เทยี ม สรา้ งสูตรคูณ จากแม่ 2 ถึง แม่ 9 จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

หน่วยท่ี 9 โครงสร้างการทางานแบบทาซ้าจนกระท่งั 205 ขอ้ 6. จงวเิ คราะห์ปัญหา เขียนผงั งานคาสงั่ เทียม เพอื่ คานวณรายไดจ้ ากค่าเช่าหอ้ งพกั ของโรงแรม แห่งหน่ึง โดยมีประเภทของหอ้ งพกั ดงั น้ี หอ้ งประเภทที่ 1 ค่าหอ้ งพกั วนั ละ 500 บาท หอ้ งประเภทท่ี 2 คา่ หอ้ งพกั วนั ละ 800 บาท หอ้ งประเภทที่ 3 ค่าหอ้ งพกั วนั ละ 1000 บาท หอ้ งประเภทท่ี 4 คา่ หอ้ งพกั วนั ละ 1500 บาท ผเู้ ขา้ พกั จะตอ้ งชาระคา่ หอ้ งพกั ตามจานวนวนั ทต่ี อ้ งการพกั ถา้ พกั เกิน 5 วนั ใหส้ ่วนลด 10% มีลูกคา้ เขา้ พกั ไม่จานวนกดั จนกวา่ หมายเลขลูกคา้ จะเป็น ‘0’ ขอ้ 7. จงวเิ คราะห์ปัญหา เขียนผงั งานและคาสง่ั เทยี ม คานวณเกรดเฉล่ียของนกั ศกึ ษา ลงทะเบยี น เรียน 5 รายวิชา กาหนดให้รบั ขอ้ มูล ช่ือนกั ศึกษา จานวนหน่วยกิต ชื่อวชิ า และ เกรดทีไ่ ดใ้ น แตล่ ะวชิ า ทางานนกวา่ ชื่อนกั ศึกษา = ‘Exit’ สูตรการหาเกรดเฉล่ีย = ผลบวกของจานวนหน่วยกิต คูณดว้ ยคา่ ของเกรด หารดว้ ย จานวนหน่วยกิตท้งั หมด กาหนดค่าของเกรดดงั น้ี A=4 , B=3 ,C=2 , D=1 , F=0 ตวั อยา่ งผลลพั ธร์ ายบุคคล Grade Point Average Name.................................... Credit Subject Grade X xxxxxxxxxxx X X xxxxxxxxxxx X X xxxxxxxxxxx X X xxxxxxxxxxx X X xxxxxxxxxxx X Sum credit = XXX G.P.A = X.X ******************* จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม

206 หน่วยท่ี 9 โครงสร้างการทางานแบบทาซา้ จนกระทง่ั เอกสารอ้างอิง ณัชติพงศ์ อูทอง. หลกั การเขียนโปรแกรม. พมิ พค์ ร้งั ท่ี 1. กรุงเทพฯ : สานกั พมิ พเ์ อมพนั ธ์ ,2546. ดารุณีย์ พฒั ศรีเรือง. การเขียนโปรแกรมคอมพวิ เตอร์. พมิ พค์ ร้ังท่ี 1. กรุงเทพฯ : บริษทั ศูนย์ หนงั สือเมืองไทย จากดั , 2548. ทศพร พลู เจริญ. หลกั การเขียนโปรแกรม. พมิ พค์ ร้ังที่ 1. กรุงเทพฯ:สานกั พมิ พว์ งั อกั ษร,2547. รุ่งทิวา เสาร์สิงห์. การเขียนโปรแกรมคอมพวิ เตอร์เบ้ืองตน้ . พมิ พค์ ร้ังท่ี 1. กรุงเทพฯ:บริษทั ซี เอ็ดยเู คชนั่ จากดั , 2548. วฒุ ิชยั เกษพานิช. หลกั การเขยี นโปรแกรม. พมิ พค์ ร้งั ท่ี 2. กรุงเทพฯ:เอ็ดดูเทก็ ซ์,2546. แหล่งค้นคว้าเพมิ่ เติม เวบ็ ไซต์ http://www.angsila.compsci.buu.ac.th/ เวบ็ ไซต์ http://www.bcoms.net/system_analysis เวบ็ ไซต์ http://www.course.eau.ac.th/course/ เวบ็ ไซต์ http://www.cs.sci.ku.ac.th เวบ็ ไซต์ http://www.edutext.co.th/Product เวบ็ ไซต์ http://www.en.rmut.ac.th/computerprogramming/ เวบ็ ไซต์ http://www.en.ssktc.ac.th/elearning/TC/ เวบ็ ไซต์ http://www.promma.ac.th/COMPUTER/ เวบ็ ไซต์ http://www.pratdab.ac.th/mhumhu/ เวบ็ ไซต์ http://www.tesabano.ac.th/ จุฬาลกั ษณ์ ถาไชยลา วอศ.มค. หลกั การเขียนโปรแกรม