150 likes | 248 Views
โครงสร้างคำสั่งแบบเลือก ( Selection). เป็นโครงสร้างที่มีการทดสอบเงื่อนไขทางตรรกศาสตร์ ( Logical Decision ) เพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่ง โดยจะมี เลือกทำ คำสั่งบางคำสั่ง ภาษาปาสคาล มีโครงสร้างแบบเลือก 2 รูปแบบดังนี้ IF statement CASE statement. Selection. Selection. Sequential.
E N D
โครงสร้างคำสั่งแบบเลือก (Selection) • เป็นโครงสร้างที่มีการทดสอบเงื่อนไขทางตรรกศาสตร์ (Logical Decision) เพื่อตัดสินใจทำงานอย่างใดอย่างหนึ่ง โดยจะมีเลือกทำคำสั่งบางคำสั่ง • ภาษาปาสคาล มีโครงสร้างแบบเลือก 2 รูปแบบดังนี้ • IF statement • CASE statement Selection Selection Sequential Looping
นิพจน์ทางตรรกศาสตร์ (Boolean expression) • นิพจน์ที่ประกอบด้วย operator ต่อไปนี้ • logical operator ได้แก่ NOT , AND, OR • relational operator ได้แก่ =, <>, < , <= , > , >= • ตัวแปรชนิด boolean • การประกาศตัวแปร var flag : boolean; • การกำหนดค่า flag := true; หรือ flag := false;
var flag , switch : boolean; test, check : boolean; x : integer ; state : char; flag := 5 > 10 ; switch := ‘A’ < ‘Z’ test := flag AND switch not check (0 < x) OR ( x > 10 ) state <> ‘W’ state x check TRUE 5 A ตัวอย่างนิพจน์ทางตรรกะ False True False False True True
50 < time < 100 ตัวแปร foundมีค่าเป็น true หรือตัวแปร index มีค่ามากกว่าหรือเท่ากับ 10 ตัวแปร Ans ไม่ใช่ทั้ง Yหรือ y และไม่ใช่ N ตัวแปร level ไม่ใช่ทั้ง 1 และ -1 แบบฝึกหัด (time > 50) and (time < 100) (found = true) or (index >= 10) not ((Ans = 'Y') or (Ans = 'y') or (Ans = 'N')) not ((level = 1) or (level = -1))
ประโยคคำสั่ง (statement) • คำสั่งเดี่ยว (single statement)คำสั่งที่ประกอบด้วยคำสั่งเพียงคำสั่งเดียว • คำสั่งเชิงซ้อน (compound statement) กลุ่มของคำสั่งเดี่ยวตั้งแต่ 2 คำสั่งขึ้นไปมารวมเป็นกลุ่มเดียวกัน begin …………; …………; end;
Boolean Expression Yes No Statement1 If Statement รูปแบบ 1 If - Then Ifboolean expression Then statement ; If - Then If - Then If - Then - Else Nested - If
Score <=50 Yes No Print z Print F Yes No x>0 and y>0 z = x/y Print F Print z ตัวอย่าง If - Then If score <= 50 Then writeln(‘F’); If (x>0) and (y>0) Then begin z := x / y; writeln(z); end;
Boolean Expression Yes No Statement1 Statement2 If Statement Ifboolean expression Then statement1 Elsestatement2 ; รูปแบบ 2 If - Then - Else If - Then If - Then - Else Nested - If If - Then - Else
ตัวอย่าง If - Then - Else If a > b Then begin max := a; writeln(‘Maximum =‘, a) end Else begin max := b; writeln(‘Maximum =‘, b) end; If a > b Then max := a Else max := b; writeln(‘Maximum =‘, max); หรือ
If Statement Ifboolean expression1 Then statement1 Elseifboolean expression2 Then statement2 Else statement3 ; รูปแบบ 3 Nested - If Ifboolean expression1 Then statement1 ifboolean expression2 Then statement2 Else statement3 Else statement4 ; Nested - If If - Then Nested - If If - Then - Else
begin writeln(‘Positive number’); if x<10 then writeln(‘ 0 < x< 10’) else writeln(‘Greater than 10’); end Var Day : char; ตัวอย่าง Nested - If if Day = ‘1’ then writeln(‘Sunday’) else if Day = ‘2’ then writeln(‘Monday’); else ..…….. ……… if Day = ‘7’ then writeln(‘Saturday’); else writeln(‘Invalid day’); if x > 0 then writeln(‘Positive number’) if x<10 then writeln(‘ 0 < x< 10’) else writeln(‘Greater than 10’); else writeln(‘Negative number’);
งานที่มอบหมาย • เขียนโปรแกรมรับจำนวนเต็ม 3 จำนวน และหาแสดงจำนวน ที่มีค่ามากที่สุด • เขียนโปรแกรมรับเลขจำนวนจริง2 จำนวน และรับ operator ที่จะกระทำกับเลขทั้งสองโดย operatorที่เป็นไปได้คือ + , - , * , / แล้วใช้คำสั่ง if ตรวจสอบ operator เพื่อนำไปคำนวณผลลัพธ์ ตัวอย่างผล run ของโปรแกรม
Caseexpression of value, value,… : statement1 ; value, value,… : statement2 ; ……. [ otherwise statement N ; ] end; .. • ตัวแปรหรือนิพจน์ที่มีค่าเป็น • Integer • Char • Boolean Case Statement รูปแบบ expression value, value,… • ค่าที่เป็นไปได้ของ expression • ค่าคงที่ใด ๆ 1 • ค่าคงที่เป็นช่วง 0..10 • ค่าคงที่หลายค่า 1,3,5,7..9
Var grade : char; ตัวอย่าง Case Case grade of ‘A’ : Point := 4.0; ‘B’ : Point := 3.0; ‘C’ : Point := 2.0; ‘D’ : Point := 1.0; ‘F’ : Point := 0.0; otherwise writeln(‘Invalid’); End Case score of 90..100 : writeln(‘A’); 80..89 : writeln(‘B’); 70..79 : writeln(‘C’); 60..69 : writeln(‘D’); 0..59 : writeln(‘F’); otherwise writeln(‘Invalid’); End
งานที่มอบหมาย • เขียนโปรแกรมรับเลขจำนวนจริง2 จำนวน และรับ operator ที่จะกระทำกับเลขทั้งสองโดย operatorที่เป็นไปได้คือ + , - , * , / แล้วใช้คำสั่ง case ตรวจสอบ operator เพื่อนำไปคำนวณผลลัพธ์ • เขียนผังงานของโปรแกรมนี้ ตัวอย่างผล run ของโปรแกรม