การทำงานแบบเลือกทำ (Selection)
การพัฒนาขั้นตอนการทำงานแบบเลือกทำ การแก้ปัญหาที่ซับซ้อนมากขั้น ลักษณะการทำงานแบบลำดับอาจไม่สามารถทำการแก้ปัญหาได้ การตัดสินใจ ในการตรวจสอบเงื่อนไข มีโอกาสใช้ เพื่อเลือกทำงานที่เหมาะสมกับปัญหา วิธีในการอธิบายขั้นตอนการทำงานของ Algorithm และ Pseudo Code ก็จ ต่างกันออกไป
การพัฒนาการอธิบายลำดับขั้นตอนการทำงาน แบบเลือกทำจากผังงาน Algorithm ถ้า เงื่อนไข แล้วทำ 1. Process A มิฉะนั้นแล้ว 2. Process B
ตัวอย่าง Algorithm ถ้า a 5 แล้วทำ มิฉะนั้นแล้ว 1. ans a2
ขั้นตอนการปรับโครงสร้างผังงานการเลือกทำ ในบางครั้ง โครงสร้างของผังงานที่เขียนมาได้ไม่สามารถทำการเปลี่ยนให้เป็น อัลกอลิทึม หรือคำสั่งเทียมได้โดยตรง ต้องมีการปรับโครงสร้างของผังงานก่อน วิธีการปรับโครงสร้างของผังงานมี 2 ขั้นตอนคือ 1. เปลี่ยนเงื่อนไขที่ใช้ในการตัดสินใจในสัญลักษณ์การตัดสินใจให้เป็นเงื่อนไขตรงข้าม
เงื่อนไข เงื่อนไขตรงข้าม เงื่อนไข เงื่อนไขตรงข้าม A เท่ากับ B (A=B) A ไม่เท่ากับ B (A<> B) A มากกว่า B (A>B) A ไม่มากกว่า B หรือ A น้อยกว่าหรือเท่ากับ B (A <=B) A น้อยกว่า (A<B) A ไม่น้อยกว่า B หรือ A มากกว่าหรือเท่ากับ B (A>=B) 2. เปลี่ยนสัญลักษณ์ที่ใช้ในการกำกับทิศทาง หลังจากการตรวจสอบเงื่อนไข จาก Y เป็น N และจาก N เป็น Y
Flowchart ก่อนปรับโครงสร้าง
ขั้นตอนการทำงานในลักษณะของ Algorithm 1. a a + b2 2. c b + s 3. แสดงค่า a, b, c
การพัฒนาจากลำดับขั้นตอนการทำงาน แบบเลือกทำ เป็น คำสั่งเทียม IF แทนข้อความอธิบายว่า ถ้า THEN แทนข้อความอธิบายว่า แล้วทำ ELSE แทนข้อความอธิบายว่า มิฉะนั้นแล้ว
ตัวอย่าง Pseudo Code Algorithm If a > 5 then ถ้า a มากกว่า 5 แล้วทำ ans a + b Else ans a - b Algorithm ถ้า a มากกว่า 5 แล้วทำ 1. Ans a + b มิฉะนั้นแล้ว 2. Ans a - b
แบ่งการทำงาน (Process) ได้ 4 การทำงาน ตัวอย่าง แบ่งการทำงาน (Process) ได้ 4 การทำงาน 1. Start 2. รับค่า a 3. โครงสร้างผังงานการเลือกทำ โดยเปรียบเทียบเงื่อนไขว่า a > 0 หรือไม่ 4. จบการทำงาน
Algorithm 1. เริ่มต้น 2. รับค่า a 3. ถ้า a มากกว่า 0 แล้วทำ 1. เริ่มต้น 2. รับค่า a 3. ถ้า a มากกว่า 0 แล้วทำ 3.1 ans root a 3.2 แสดงค่า ans มิฉะนั้นแล้ว 3.3 a root a2 3.4 ans root a 3.5 แสดงค่า ans และคำว่า “J” 4. จบการทำงาน
คำสั่งในการเลือกทำ คำสั่งที่ใช้พิจารณาเงื่อนไขเพื่อที่จะเลือกทำคำสั่งใดเป็นคำสั่งถัดไป คือ IF - THEN - ELSE รูปแบบการใช้งาน
คำสั่งที่อยู่ถัดจาก then และ else มีได้เพียงคำสั่งเดียวเท่านั้น ถ้าต้องการมีมากกว่า 1 คำสั่งอยู่ภายใต้เงื่อนไขของการเลือก ต้องรวมให้เป็น คำสั่งรวม (compound statement) วิธีการคือ ใช้คำสั่ง begin และ end ช่วยในการรวมคำสั่ง โดยใช้ begin ในตำแหน่งเริ่มต้น และ end ในตำแหน่งสิ้นสุด
ตัวอย่าง การใช้งานคำสั่ง IF Program Example_IF (Input, Output); VAR a, b : Integer; c, d : Real; Begin Readln (a, c); If a = 1 Then d := c - (c * 0.03) Else begin Readln (b); d := c * 0.01 * b; d := (c + d) / b; end; Writeln (d:10:2); End.