Nội dung lý thuyết
BÀI 9. CẤU TRÚC RẼ NHÁNH
- Xét các ví dụ sau:
- Nhận xét: Các mênh đề rẽ nhánh thường có dạng:
=> Cấu trúc dùng để mô tả các mệnh đề có dạng như trên được gọi là cấu trúc rẽ nhánh dạng thiếu và đủ.
- Ví dụ: Thuật toán giải và biện luận phương trình bậc nhất ax + b = 0
Bước 1: Nhập a, b
Bước 2: Nếu a<>0 thì x:=-b/a → bước 4
Ngược lại → bước 3
Bước 3: Nếu b<>0 thì thông báo phương trình vô nghiệm
Ngược lại thông báo phương trình vô số nghiệm.
Bước 4: Đưa x ra màn hình.
- Cấu trúc:
IF <Điều kiện> THEN<Câu lệnh>;
- Sơ đồ khối:
- Hoạt động:
- Cấu trúc:
IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
- Trong đó:
- Sơ đồ khối:
- Hoạt động:
- Khi sau THEN và sau ELSE có từ 2 câu lệnh trở lên ta phải ghép chúng lại thành một nhóm nằm giữa 2 từ khoá BEGIN và END.
=> Định nghĩa: Một nhóm câu lệnh đơn được đặt giữa 2 từ khóa BEGIN và END sẽ tạo thành một câu lệnh ghép.
BEGIN
câu lệnh 1;
câu lệnh 2;
.....
câu lệnh n;
END;
- Trong đó:
- Ví dụ 1: Tìm nghiệm của phương trình bậc 2: ax2 + bx + c = 0 với a\(\ne\)0
PROGRAM vidu1;
VAR a,b,c,x,x1,x2,delta:real;
BEGIN
Write(‘nhap a,b,a’); readln(a,b,c);
Delta:=b*b-4*a*c;
IF delta <0 THEN
writeln(‘phuong trinh vo nghiem’)
ELSE IF delta=0 THEN
Begin
X:=-b/2*a;
Writeln(‘phuong trinh co 1 nghiem la:’,x:8:2);
End;
ELSE
Begin
X1:=(-b-sqrt(delta))/2*a;
X2:=(-b+sqrt(delta))/2*a;
End;
Readln;
END.
- Ví dụ 2: Chương trình tìm nghiệm của phương trình bậc nhất ax + b = 0
PROGRAM vidu2;
VAR a,b,x:real;
BEGIN
Write(‘nhap a,b’); readln(a,b);
IF a<>0 THEN
Begin
X:=-b/a;
writeln(‘phuongtrinh co nghiem la:’,x:8:2);
End;
ELSE IF b=0 THEN
writeln(‘phuong trinh vo so nghiem’);
Else
writeln(‘phuong trinh vo nghiem’);
Readln;
END.
* Lưu ý:
- Trong Pascal ta có thể đặt các lệnh ghép con trong các lệnh ghép lớn hơn bao ngoài của nó và có thể hiểu tương tự như cấu trúc ngoặc đơn ( ) trong các biểu thức toán học.