บทที่ 10 การทำงานแบบทำซ้ำ

การทำงานแบบทำซ้ำ
ลักษณะของขั้นตอนวิธีการทำงาน นอกจากขั้นตอนวิธีการทำงานแบบลำดับแลละขั้นตอนวิธีแบบเลือกทำแล้ว ยังมีลักษณะการทำงานของขั้นตอนวิธีอีกลักษณะหนึ่ง คือ ขั้นตอนวิธีการทำงานแบบทำซ้ำ ขั้นตอนวิธีการทำงานแบบทำซ้ำใช้สำหรับกรณีที่ต้องการทำกระบวนการต่าง ๆ ซ้ำกันหลายครั้ง โดยมีการตรวจสอบเงื่อนไขสำหรับการตัดสินใจ เพื่อเข้าสู่ขั้นตอนของการทำซ้ำ หรือออกจากขั้นตอนของการทำซ้ำ การเขียนขั้นตอนวิธีสำหรับการทำงานแบบทำซ้ำ ได้รับการพัฒนามาจากโครงสร้างผังงานการทำซ้ำ
วิธีการเขียนอธิบายขั้นตอนวิธีการทำงานและรหัสเทียมสำหรับโครงสร้างผังงานแบบทำซ้ำ มีวิธีการเขียนต่างไปจากการทำงานแบบลำดับและแบบเลือกทำ แต่บางครั้งการทำงานของขั้นตอนวิธีการแก้ปัญหาที่มีขั้นตอนวิธีการทำงานแบบทำซ้ำ อาจประกอบด้วยขั้นตอนวิธีการทำงานแบบลำดับหรือขั้นตอนวิธีการทำงานแบบเลือกทำร่วมอยู่ในขั้นตอนวิธีการทำงาน ดังนั้นการเขียนอธิบายขั้นตอนวิธีการทำงานแบบทำซ้ำ จะใช้การเขียนอธิบายขั้นตอน สำหรับขั้นตอนวิธีการทำงานในลักษณะนั้น
การเขียนขั้นตอนวิธีสำหรับการทำงานแบบทำซ้ำ
ลักษณะของการทำงานแบบทำซ้ำ มีลักษณะการทำงานอยู่ 2 ลักษณะคือ
1. ทำการตรวจสอบเงื่อนไขก่อนการทำซ้ำหรือ ทำในขณะที่ ( Do – While )
2. ทำการตรวจสอบเงื่อนไขหลังจากการทำซ้ำหรือทำจนกระทั่ง ( Do – Until )
โครงสร้างผังงานการทำซ้ำมีอยู่ 2 ลักษณะคือ ทำซ้ำในขณะที่ และ ทำซ้ำจนกระทั่ง ลักษณะการทำงานของโครงสร้างผังงานการทำซ้ำทั้ง 2 มีการทำงานที่แตกต่างกัน ดังนั้น วิธีการเขียนอธิบายขั้นตอนวิธีการทำงานและรหัสเทียมสำหรับการทำซ้ำในแต่ละลักษณะ จึงมีความแตกต่างกัน
การเขียนขั้นตอนวิธีสำหรับการทำซ้ำลักษณะทำในขณะที่
การเขียนขั้นตอนวิธีการทำงานสำหรับการทำซ้ำ ลักษณะทำในขณะที่ ใช้ข้อความสำหรับการอธิบาย คือ ในขณะที่หรือ ตราบใดที่จากนั้นตามด้วยเงื่อนไขที่ใช้สำหรับการตัดสินใจเพื่อเข้าสู่ขั้นตอนการทำซ้ำ ตามด้วยคำอธิบาย ทำหลังจากนั้นคือ ขั้นตอนวิธีการทำงานทั้งหมดที่ต้องการทำซ้ำ ถ้าผลจากการตรวจสอบเงื่อนไขเป็นจริง
จากส่วนของผังงานที่มีโครงสร้างผังงานการทำซ้ำ ลักษณะทำในขณะที่

สามารถทำการเขียนเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความได้ดังนี้
1. ในขณะที่ เงื่อนไข ทำ
1.1 Process 1
การเขียนอธิบายขั้นตอนวิธีการทำงานย่อยที่อยู่ภายใต้การทำซ้ำ ขึ้นอยู่กับลักษณะการทำงานของกระบวนการทำงานย่อยที่อยู่ภายใต้การทำซ้ำ ถ้าเป็นลักษณะการทำงานแบบลำดับ ก็ใช้การเขียนอธิบายขั้นตอนวิธีการทำงานสำหรับการทำงานแบบลำดับ ถ้าเป็นลักษณะการทำงานแบบเลือกทำ ก็ใช้การเขียนอธิบายการทำงานแบบเลือกทำ

จากส่วนของผังงานที่มีโครงสร้างผังงานการทำซ้ำลักษณะทำในขณะที่เป็นส่วนประกอบ สามารถทำการเขียนอธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความ ได้ดังนี้
1. ในขณะที่ A > B ทำ
1.1 A <-- A – 1
1.2 B <-- B + 1
1.3 แสดงค่าของ A และ B

รหัสเทียมสำหรับการทำซ้ำลักษณะทำในขณะที่
รหัสเทียมที่ใช้สำหรับการอธิบายขั้นตอนวิธีการทำงานแบบทำซ้ำลักษณะทำในขณะที่ รหัสเทียมที่ใช้คือ “WHILE – DO” โดยใช้รหัสเทียม “WHILE” แทนคำอธิบายว่า ในขณะที่ หรือตราบใดที่ และใช้รหัสเทียม “DO” แทนคำอธิบายว่าทำ การเขียนรหัสเทียมสำหรับการทำงานย่อยที่อยู่ภายใต้การทำงานแบบทำซ้ำ จะใช้รหัสเทียมตามการทำงานในแต่ละลักษณะและใช้ย่อหน้าช่วยสำหรับในการบอกว่า รหัสเทียมนี้เป็นการทำงานย่อยของการทำซ้ำนั้น การเขียนรหัสเทียมจากการอธิบายลำดับขั้นตอนวิธีการทำงานในลักษณะข้อความ สามารถทำได้ ดังนี้
ตัวอย่างที่ 3 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำที่มีการทำซ้ำลักษณะทำในขณะที่เป็นส่วนประกอบ

การเขียนขั้นตอนวิธีสำหรับการทำซ้ำลักษณะทำจนกระทั่ง
การเขียนขั้นตอนวิธีสำหรับการทำซ้ำลักษณะทำจนกระทั่ง สามารถทำการเขียนได้จากผังงานที่มีโครงสร้างผังงานเป็นการทำซ้ำลักษณะทำจนกระทั่ง การเขียนอธิบายขั้นตอนวิธีการทำงานใช้คำอธิบายคือ ทำจนกระทั่ง จากนั้นตามด้วยเงื่อนไขที่ใช้สำหรับการตัดสินใจเพื่อกลับไปทำซ้ำ ถัดจากนั้นคือ การอธิบายขั้นตอนวิธีการทำงานทั้งหมดที่ต้องการทำซ้ำ
วิธีการเขียนขั้นตอนวิธีการทำงานสำหรับการทำงานที่ต้องการทำซ้ำ ขึ้นอยู่กับลักษณะการทำงานของแต่ละกระบวนการทำงานย่อยนั้นว่า เป็นการทำงานในลักษณะใด ก็จะใช้การเขียนอธิบายขั้นตอนวิธีการทำงานสำหรับการทำงานในกรณีนั้น สำหรับการเขียนอธิบาย
จากส่วนของผังงานที่มีโครงสร้างผังงานเป็นการทำซ้ำลักษณะทำจนกระทั่ง สามารถทำการเขียนเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความได้ดังนี้
1. ทำจนกระทั่ง Condition
1.1 Process

จากส่วนของผังงานที่มีโครงสร้างผังงานการทำซ้ำลักษณะทำจนกระทั่ง สามารถทำการเขียนอธิบายขั้นตอนการทำงานในลักษณะของข้อความ ดังนี้
1. ทำจนกระทั่ง N เท่ากับ 0
1.1 รับค่าของ N
1.2 คำนวณค่าของ Sum เท่ากับ Sum + N

รหัสเทียมสำหรับการทำซ้ำลักษณะทำจนกระทั่ง
รหัสเทียมสำหรับการอธิบายขั้นตอนวิธีการทำซ้ำลักษณะทำจนกระทั่ง รหัสเทียมที่ใช้คือ “DO – UNTIL” แทนคำอธิบายว่า ทำจนกระทั่ง จากการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความ รหัสเทียมสำหรับขั้นตอนวิธีที่เป็นการทำงานย่อยภายใต้การทำซ้ำ ขึ้นอยู่กับลักษณะการทำงานถ้าเป็นการทำงานแบบเลือกทำ ก็ใช้รหัสเทียมสำหรับการเลือกทำ ถ้าเป็นการทำงานแบบทำซ้ำ ก็ใช้รหัสเทียมสำหรับการทำซ้ำ
ตัวอย่างที่ 8 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำงานที่มีการทำซ้ำลักษณะทำจนกระทั่งเป็นส่วนประกอบ


เฉลย
1.             ง.
2.             ก.
3.             ง.
4.             ก.
5.             ข.
6.             ข.
7.             ค.
8.             ข.
9.             ค.
10.      ค.