2. LỆNH IF - THEN
a) Lưu đồ biểu diễn lệnh :
b) Cách viết, ý nghĩa :
Cách viết |
Ý nghĩa |
IF < Điều kiện > THEN
Lệnh 1 ;
Lệnh 2 ; |
Nếu điều kiện đúng, máy thực hiện lệnh 1 rồi qua lệnh 2.
Nếu điều kiện sai thì bỏ qua lệnh 1.
Nếu điều kiện sai thì bỏ qua lệnh 1, xuống lệnh 2. |
• Chú ý : Điều kiện là một biểu thức BOOLEAN
- Ví dụ : Tìm số lớn nhất trong 3 số
PROGRAM Số_lớn_nhất_trong_3_số ;
VAR a, b, c, max : integer ;
BEGIN
Writeln ('Nhập a, b, c ;
Readln (a, b, c) ;
Max := a ;
IF Max < b then max := b ;
IF Max < c then max := c ;
Writeln ('Số lớn nhất là Max) ; Readln ;
END.
3. LỆNH IF... THEN... ELSE
a) Lưu đồ biểu diễn lệnh :
b) Cách viết, ý nghĩa :
Cách viết |
Ý nghĩa |
IF < Điều kiện > THEN
Lệnh 1 {không có}
ELSE
Lệnh 2 ;
Lệnh 3 ; |
Nếu điều kiện đúng thì máy thực hiện lệnh 1 rồi đến lệnh 3.
Nếu điều kiện sai thì thực hiện lệnh 2 rồi đến lệnh 3. |
• Chú ý :
- Nếu sau THEN hoặc ELSE có nhiều hơn một lệnh thì ta phải gói lại bằng BEGIN..END
- Toàn bộ lệnh IF..THEN..ELSE xem như một lệnh đơn.
- Ví dụ :
Tìm số lớn nhất trong 3 số.
PROGRAM Max ;
VAR
a, b, c, Max : Integer ;
BEGIN
Writeln ('nhập a, b, c') ;
Readln (a, b, c) ;
IF a > b THEN
Max := a ;
ELSE
Max := b ;
IF Max < c THEN
Max := c ;
Writeln (Số lớn nhất là Max) ;
Readln ;
END ;
• QUI ƯỚC :
- Phát biểu :
IF ĐK1 THEN IF ĐK2 THEN S1 ELSE S2
- Tương đương với phát biểu sau :
IF ĐK1 THEN
BEGIN
IF ĐK2 THEN SI
ELSE S2
END ;
- Nghĩa là ELSE thuộc về cái IF gần nó nhất theo lưu đồ sau:
04. LỆNH CASE..OF
a) Lưu đồ biểu diễn :
b) Cách viết, ý nghĩa :
Cách viết |
Ý nghĩa |
CASE <biểu thức> OF
Giá trị 1 : Lệnh 1 ;
Giá trị 2 : Lệnh 2 ;
Giá trị n : Lệnh n ;
ELSE lệnh 0 ;
END |
Xét giá trị của biểu thức chọn.
Nếu có giá trị k thì thực hiện lệnh thứ k...
Nếu không thì thực hiện lệnh thứ 0.
|
Chú ý :
Lệnh CASE..OF có thể không có ELSE.
- Biểu thức chọn phải thuộc kiểu rời rạc như Integer, Char, không được kiểu Real.
- Nếu muốn ứng với nhiều giá trị khác nhau của biểu thức chọn vẫn thi hành một lệnh thì các giá trị đó có thể viết trên cùng mót hàng cách nhau bởi dấu , :
Giá trị k1, k2, ..., kp : Lệnh k ;
- Ví dụ 1 : Chương trình nhận biết số chẵn hay số lẻ :
PROGRAM Chan_le ;
VAR
So, Du : Integer ;
BEGIN
Write ('Xin cho biết một số nguyên :') ;
Readln (‘số') ;
Du := so mod 2 ;
Case Du of
0 : Writeln ('Số chẵn') ;
1 : Writeln (Số lẻ') ;
End ;
Readln ;
END.
- Ví dụ : Một chương trình làm tính sô học đơn giản.
PROGRAM CALCULATOR;
VAR
Toantu : char ;
kq : Real ;
x, y : Integer ;
Lam_duoc : Boolean ;
BEGIN
Write ('Nhập x, y :')
Readin (x, y) ;
Writeln ('Phép toán ?')
Readln (Toantu);
Lam_duoc := true ;
Case Toantu of
'+' : kq := x + y ;
'-' : kq := x - y ;
' *' : kq := x * y ;
'/' : If y = 0 then Lam_duoc := False
else kq := x/y
else Lam_duoc := False ;
end ;
If Lam_duoc then writein (’Kết quả :’, kq)
else writeln ('Không làm được’);
Readln ;
END.