2.5 การออกแบบแบบวนซ้ำ

การออกแบบแบบวนซ้ำ


การทำงานแบบทำซ้ำ


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

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


การเขียนขั้นตอนวิธีสำหรับการทำงานแบบทำซ้ำ


ลักษณะของการทำงานแบบทำซ้ำ มีลักษณะการทำงานอยู่ 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


ตัวอย่างที่ 1 การเขียนอธิบายขั้นตอนวิธีการทำงานจากผังงานที่มีโครงสร้างผังงานการทำซ้ำ ลักษณะทำในขณะที่เป็นส่วนประกอบ




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


1. เริ่มต้นการทำงาน

2. กำหนดค่าให้ A เท่ากับ 1

3. ในขณะที่ A <>

3.1 คำนวณค่า A เท่ากับ A + 1

3.2 แสดงค่า A

4. จบการทำงาน


ตัวอย่างที่ 2 การเขียนอธิบายขั้นตอนวิธีการทำงานจากผังงานที่มีโครงสร้างผังงานการทำซ้ำลักษณะทำให้ขณะที่เป็นส่วนประกอบ





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


1. เริ่มต้นการทำงาน

2. กำหนดค่าให้ A เท่ากับ 1

3. รับค่าของ B

4. ในขณะที่ A <>

4.1 คำนวณค่าของ A เท่ากับ A + 1

4.2 ถ้า A <>

4.2.1 คำนวณค่าของ A เท่ากับ A + 2 มิฉะนั้นแล้ว

4.2.2 คำนวณค่าของ B เท่ากับ B – 1

4.3 แสดงค่าของ A

5. แสดงค่าของ B

6. จบการทำงาน


รหัสเทียมสำหรับการทำซ้ำลักษณะทำในขณะที่


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

ตัวอย่างที่ 3 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำที่มีการทำซ้ำลักษณะทำในขณะที่เป็นส่วนประกอบ





ตัวอย่างที่ 4 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำที่มีการทำซ้ำลักษณะทำในขณะที่เป็นส่วนประกอบ




การเขียนขั้นตอนวิธีสำหรับการทำซ้ำลักษณะทำจนกระทั่ง


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

วิธีการเขียนขั้นตอนวิธีการทำงานสำหรับการทำงานที่ต้องการทำซ้ำ ขึ้นอยู่กับลักษณะการทำงานของแต่ละกระบวนการทำงานย่อยนั้นว่า เป็นการทำงานในลักษณะใด ก็จะใช้การเขียนอธิบายขั้นตอนวิธีการทำงานสำหรับการทำงานในกรณีนั้น สำหรับการเขียนอธิบาย




จากส่วนของผังงานที่มีโครงสร้างผังงานเป็นการทำซ้ำลักษณะทำจนกระทั่ง สามารถทำการเขียนเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะข้อความได้ดังนี้

1. ทำจนกระทั่ง Condition

1.1 Process




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

1. ทำจนกระทั่ง N เท่ากับ 0

1.1 รับค่าของ N

1.2 คำนวณค่าของ Sum เท่ากับ Sum + N


ตัวอย่างที่ 5 การเขียนอธิบายขั้นตอนวิธีการทำงานจากผังงานที่มีโครงสร้างผังงานการทำซ้ำลักษณะทำจนกระทั่ง เป็นส่วนประกอบ




จากผังงานในตัวอย่างที่ 5 จะมีกระบวนการทำงานหลักอยู่ 4 การทำงาน โดยในกระบวนการทำงานที่ 3 เป็นการทำงานแบบทำซ้ำลักษณะทำจนกระทั่ง การทำงานย่อยที่อยู่ภายใต้การทำซ้ำ เป็นการทำงานแบบลำดับ สามารถเขียนอธิบายขั้นตอนวิธีการทำงานได้ดังนี้


1. เริ่มต้นการทำงาน

2. กำหนดค่าให้ A <-- 1

3. ทำซ้ำจนกระทั่ง A <>

3.1 แสดงค่า A

3.2 คำนวณค่า A เท่ากับ A + 1

4. จบการทำงาน


ตัวอย่างที่ 6 การเขียนอธิบายขั้นตอนวิธีการทำงานจากผังงานที่มีโครงสร้างผังงานการทำซ้ำลักษณะทำจนกระทั่ง เป็นส่วนประกอบ




จากผังงานในตัวอย่างที่ 6 มีกระบวนการทำงานหลักอยู่ทั้งหมด 6 การทำงาน ในขั้นตอนการทำงานที่ 4 เป็นการทำงานแบบทำซ้ำลักษณะทำจนกระทั่ง สามารถเขียนเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความได้ดังนี้


1. เริ่มต้นการทำงาน

2. กำหนดให้ ANS มีค่าเท่ากับ 1

3. รับค่า N

4. ทำจนกระทั่ง N <>

4.1 คำนวณค่า ANS เท่ากับ ANS * N

4.2 คำนวณค่า N เท่ากับ N – 1

5. แสดงค่าของ ANS

6. จบการทำงาน


ตัวอย่างที่ 7 การเขียนอธิบายขั้นตอนวิธีการทำงานจากโครงสร้างผังงานการทำซ้ำ




จากผังงานในตัวอย่างที่ 7 มีกระบวนการทำงานหลัก 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. จบการทำงาน


รหัสเทียมสำหรับการทำซ้ำลักษณะทำจนกระทั่ง


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


ตัวอย่างที่ 8 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำงานที่มีการทำซ้ำลักษณะทำจนกระทั่งเป็นส่วนประกอบ




ตัวอย่างที่ 9 การเขียนรหัสเทียมจากการอธิบายขั้นตอนวิธีการทำงานที่มีการทำซ้ำลักษณะทำจนกระทั่งเป็นส่วนประกอบ