บทที่ 9 การทำงานแบบเลือกทำ

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

                การเขียนอธิบายขั้นตอนวิธีการทำงานจากผังงาน สิ่งที่ต้องทำเป็นลำดับแรกคือ การแยกกระบวนการการทำงานทั้งหมดของผังงาน วิธีการแยกกระบวนการหรือขั้นตอนการทำงานแต่ละกระบวนการสามารถทำได้ดังนี้ คือ พิจารณาที่ทิศทางเข้าและทิศทางออกของขั้นตอนการทำงาน โดยทำทีละขั้นตอนหรือกระบวนการทำงานที่มีทิศทางเข้าและทิศทางออกเพียงอย่างละหนึ่งทิศทางเท่านั้น เช่นเดียวกับการทำงานแบบลำดับ
                จากผังงานในรูป การทำงานสำหรับกรณีที่ผลการตรวจสอบเงื่อนไขเป็นจริง มีขั้นตอนการทำงานหรือกระบวนการทำงานที่ต้องทำจำนวน 2 กระบวนการทำงาน คือ รับค่าของตัวแปร A และ B อีกกระบวนการทำงานหนึ่งคือ การคำนวณค่าของ X เท่ากับ A + B สำหรับกรณีที่ผลการตรวจสอบเงื่อนไขเป็นเท็จ มีขั้นตอนการทำงานหรือกระบวนการทำงานที่ต้องทำจำนวน 2 กระบวนการทำงานเช่นกัน คือ การคำนวณค่าของ X เท่ากับ X + 10 และแสดงค่าของตัวแปร X
                จากส่วนของผังงานที่มีโครงสร้างการทำงานแบบเลือกทำ สามารถทำการเขียนเป็นการอธิบายขั้นตอนวิธีการทำงานในลักษณะของข้อความ ได้ดังนี้
1. ถ้า X > 5 แล้วทำ
1.1 รับค่า A , B
1.2 คำนวณค่าของ X เท่ากับ A + B
มิฉะนั้นแล้ว
1.3 คำนวณค่าของ X เท่ากับ X +10
1.4 แสดงค่าของ X
                การเขียนผังงานที่มีโครงสร้างผังงานแบบเลือกทำ ไม่จำเป็นต้องมีขั้นตอนการทำงานครบทั้ง 2 กรณีคือ กรณีที่เงื่อนไขเป็นจริง หรือ เป็นเท็จ บางครั้งอาจเขียนผังงานออกมาในลักษณะที่มีขั้นตอนการทำงานที่ต้องทำเพียงกรณีเดียว คือ กรณีที่ผลการตรวจสอบเงื่อนไขเป็นจริง ส่วนกรณีที่ผลการตรวจสอบเงื่อนไขเป็นเท็จ ไม่มีขั้นตอนการทำงานที่ต้องทำ
                การเขียนอธิบายขั้นตอนวิธีการทำงานสำหรับผังงานที่มีลักษณะการทำงานดังกล่าว จะทำการตัดส่วนของคำอธิบาย มิฉะนั้นแล้วทิ้งไป วิธีการเขียนอธิบายขั้นตอนวิธีการทำงาน สามารถทำได้ดังนี้ คือ ขึ้นต้นด้วยคำอธิบายถ้าตามด้วยเงื่อนไขที่ใช้พิจารณาการตัดสินใจ จากนั้นเขียนคำอธิบายว่า แล้วทำถัดจากนั้นเป็นลำดับขั้นคอนการทำงานที่ต้องทำกรณีที่ผลการตรวจสอบเงื่อนไขเป็นจริง ถ้าจบการอธิบายขั้นตอนวิธีการทำงานสำหรับการทำงานแบบเลือกทำในส่วนนั้น

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


                การเขียนรหัสเทียมที่เป็นรหัสเทียมของการทำงานย่อย ภายในการทำงานแบบเลือกทำ จะใช้ย่อหน้าช่วยเพื่อให้เห็นชัดเจนว่า เป็นรหัสเทียมที่เป็นการทำงานย่อยของรหัสเทียมใด

กรณีที่เขียนอธิบายขั้นตอนวิธีการทำงานไม่มีส่วนของคำอธิบาย มิฉะนั้นแล้วการเขียนรหัสเทียมสำหรับการทำงานในกรณีนี้ จะไม่มีส่วนของรหัสเทียม “ELSE” จากการอธิบายขั้นตอนวิธีการทำงาน ในลักษณะของข้อความต่อไปนี้

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