NOOPRAEW

ไม่มีใครรักเราเท่าพ่อกับแม่

โครงสร้างแบบวนซ้ำ

โครงสร้างแบบวนซ้ำ  (repetition structure)

ในการแก้ปัญหาบางอย่างอาจต้องมีการทำงานในบางคำสั่งหรือบางชุดของคำสั่งซ้ำกันมากกว่าหนึ่งรอบขึ้นไป  โครงสร้างแบบมีการวนซ้ำนี้จะต้องมีการตัดสินใจร่วมกันอยู่ด้วยเสมอ  เพื่อเป็นเงื่อนไขที่จะตัดสินใจว่าเมื่อใดจะวนซ้ำ  หรือเมื่อใดจะถึงเวลาหยุดการวนซ้ำ  การวนซ้ำแบบที่ต้องตรวจสอบเงื่อนไขที่จะให้วนซ้ำก่อนที่จะทำงานตามชุดคำสั่งในโครงสร้างแบบวนซ้ำ  เรียกว่า  การวนซ้ำแบบ  while  ซึ่งจะสังเกตได้ว่าถ้าเงื่อนไขไม่เป็นจริงตั้งแต่แรก  คำสั่งในโครงสร้างแบบวนซ้ำจะไม่ถูกเรียกให้ทำงานเลย  แต่การวนซ้ำแบบที่มีการตรวจสอบเงื่อนไขที่จะให้วนซ้ำหลังจากที่ได้ทำงานตามชุดคำสั่ง  ในโครงสร้างแบบวนซ้ำไปรอบหนึ่งแล้ว  เรียกว่า  การวนซ้ำแบบ until  สำหรับตัวอย่างของการวนซ้ำ  เช่น  การรับค่าตัวเลขเข้ามาหลายค่าเพื่อคำนวณหาผลรวม  ในตัวอย่างที่  4  ถือเป็นการวนซ้ำแบบ  until

สิ่งที่ควรระวังในการใช้งานขั้นตอนวิธีแบบมีการวนซ้ำคือ  ต้องตรวจสอบว่าได้กำหนดเงื่อนไขอย่างรัดกุมและถูกต้อง  มิเช่นนั้นแล้วอาจเกิดกรณีของการวนซ้ำไม่รู้จบ  (infinite loop)  หรือกรณีที่วนซ้ำไม่ได้ตามจำนวนรอบที่ต้องการ

ตัวอย่างที่  1  ลำดับขั้นตอนการเล่นเกมทายตัวเลขแบบที่  1

          ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของปัญหา  พร้อมทั้งเขียนรหัสลำลองและผังงาน  เพื่อถ่ายทอดความคิดขั้นตอนวิธีในการเล่นเกมทายตัวเลข  โดยให้ผู้เล่นคนหนึ่งเป็นผู้กำหนดตัวเลขแล้วให้ผู้ทายทายตัวเลขได้หนึ่งครั้ง  โปรแกรมจะตรวจคำตอบ  และแสดงผลลัพธ์ว่าทายถูกหรือทายผิด

องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้

ข้อมูลออก ข้อมูลเข้า รายละเอียดของปัญหา
ข้อความแสดงผลการทายตัวเลข – ตัวเลขเป้าหมาย- ตัวเลขที่ทาย เปรียบเทียบตัวเลขที่ทายกับตัวเลขเป้าหมาย- ถ้าตรงกัน ให้แสดงคำว่า Correct- ถ้าไม่ตรงกัน ให้แสดงคำว่า Incorrect

ตัวอย่างที่  2  ลำดับขั้นตอนการเล่นเกมทายตัวเลขแบบที่  2

          เกมทายตัวเลข  ยอมให้ผู้เล่นทำการทายได้เพียงครั้งเดียว  ให้นักเรียนเขียนรหัสลำลองและผังงาน  เพื่อถ่ายทอดความคิดขั้นตอนวิธีในการเล่นเกมทายตัวเลขที่ได้รับการปรับปรุง  โดยโปรแกรมจะตรวจสอบตัวเลขที่ทายว่า  มีค่าสูงหรือต่ำกว่าที่กำหนดแล้วให้โอกาสผู้เล่นทายใหม่จนกว่าจะถูก

องค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้

ข้อมูลออก ข้อมูลเข้า รายละเอียดของปัญหา
– ข้อความแสดงผลการทายตัวเลขว่า  สูงหรือต่ำเกินไปกรณีที่ทายไม่ถูก- ข้อความที่แสดงว่าทายถูกต้อง – ตัวเลขเป้าหมาย- ตัวเลขที่ทาย เปรียบเทียบตัวเลขที่ทายว่าตรงกับตัวเลขเป้าหมายหรือไม่จนกว่าจะทายถูก

ในการออกแบบขั้นตอนการทำงานเพื่อให้สามารถวนรอบให้ผู้ทายทำการทายได้หลายครั้งจนกว่าจะถูกนั้น  จะพบว่าเป็นการใช้การวนซ้ำแบบ while  ที่มีการตรวจสอบการวนรอบในส่วนต้นก่อนการทำงานภายในของการวนรอบ  โดยทั่วไปเราสามารถดัดแปลงแก้ไขขั้นตอนวิธีที่ใช้การวนซ้ำแบบ while เพียงเล็กน้อยเพื่อให้ใช้การวนซ้ำแบบ until  ที่มีการตรวจสอบการวนรอบเมื่อจบการทำงานภายในของการวนรอบ

ตัวอย่าง :  การเขียนผังงาน

– โครงสร้างแบบลำดับ (sequential structure)

ที่มา  :  http://www.nkpw.ac.th/pornsak/com54/22242/images/p922-1.gif

ที่มา  :  http://61.7.214.35/c/webbase/unit2/images/flow1.jpg

ที่มา  :  https://preawnud.files.wordpress.com/2014/08/6e808-screenhunter_1.jpg

– โครงสร้างแบบทางเลือก  (selection  structure)

– โครงสร้างแบบวนซ้ำ (repetition  structure)



ที่มา :

สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธิการ.  (2553).  หนังสือเรียนรายวิชาพื้นฐาน  เทคโนโลยีสารสนเทศและการสื่อสาร  ชั้นมัธยมศึกษาปีที่  4-6.  กรุงเทพฯ:  โรงพิมพ์  สกสค.

 .  (2547).  เอกสารศึกษาด้วยตนเอง  สำหรับครูเทคโนโลยีสารสนเทศ  เรื่องที่  6  หลักการแก้ปัญหาและเครื่องมือในการแก้ปัญหา.  กรุงเทพฯ:  โรงพิมพ์  สกสค.

http://www.thaiall.com/flowchart/

http://bu.lpc.rmutl.ac.th/naravit/begin-programming/lab01/02-Flowchart.htm

http://cmi.nfe.go.th/multimedialesson/multi_lesson/lesson/06/flowchart.html

http://www.numsai.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1-%E0%B8%90%E0%B8%B2%E0%B8%99%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%9C%E0%B8%B1%E0%B8%87%E0%B8%87%E0%B8%B2%E0%B8%99-Flowchart.html

Leave a comment