BÀI 9: CẤU TRÚC RẼ NHÁNHNỘI DUNG Một lần Châu hẹn với Ngọc: “Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc”.. Câu nói của Châu cho biết việc làm cụ thể nào?. Câu nói của Châu có
Trang 2BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
Một lần Châu hẹn với Ngọc: “Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc”.
Câu nói của Châu cho biết việc làm cụ thể nào? Và điều kiện đó là gì ?
Câu nói của Châu có đề cập đến việc gì sẽ xảy ra khi điều kiện đó không được thỏa mãn không ?
Ta nói cách diễn đạt như vậy thuộc dạng thiếu:
Nếu…thì…
Tình huống 1
Nhận xét:
1 RẼ NHÁNH
1 RẼ NHÁNH
Trang 3BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
Một lần khác, Ngọc hẹn với Châu : “Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho Châu để trao đổi ”.
Câu nói của Ngọc khẳng định hai việc cụ thể gì ?
Có khi nào cả hai việc cùng được thực hiện không?
Vậy mỗi việc sẽ được thực hiện khi nào?
Ta nói cách diễn đạt như vậy thuộc dạng đủ:
Nếu…thì…, nếu không thì…
Tình huống 2
Nhận xét
1 RẼ NHÁNH
Trang 4BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG - Cấu trúc dùng để mô tả các mệnh đề có dạng như trên gọi
là cấu trúc rẽ nhánh.
Ví dụ: Giải phương trình bậc hai ax2 + bx + c =0, (a0)
Trình bày các bước giải của phương trình trên trong toán học ?
Trình bày các bước viết chương trình để tìm nghiệm của phương trình trên trong pascal ?
Nhập a, b, c D= b 2 -4ac D≥ 0
Thông báo vô nghiệm, rồi kết thúc Tính và đưa ra nghiệm thực, rồi kết thúc
Đ
S
1 RẼ NHÁNH
- Ý nghĩa: Cấu trúc rẽ nhánh là một điều khiển chọn thực hiện hay không thực hiện công việc phù hợp với một điều kiện đang xảy ra
1 RẼ NHÁNH
Trang 5IF <Điều kiện> THEN <Câu lệnh>;
Điều kiện
Đúng
Câu lệnh
B1: Điều kiện đ ợc tính và kiểm tra B2: + Nếu <điều kiện> đúng thì <câu lệnh> đ ợc thực hiện
+ Nếu <điều kiện> sai thì <câu lệnh> bị bỏ qua.
Sai
a) Dạng thiếu
Câu lệnh
Đúng
Câu lệnh
Điều kiện
- Điều kiện là biểu thức lôgic.
- Câu lệnh là một lệnh của TP Pascal.
Trong đó:
Ví
dụ: IF a mod 2=0 THEN Writeln(‘ a la so chan’);
Sơ đồ khối
Hoạt
động
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
a) Dạng thiếu
Cú pháp
2 CÂU Lậ́NH IF THEN
1 RẼ NHÁNH
2 CÂU Lậ́NH
IF THEN
Trang 6IF <Điều kiện> THEN <Câu lệnh1> ELSE <Câu lệnh 2>;
b) Dạng đủ
Trong đó:
Ví
dụ:
Sơ đồ khối
Hoạt
động
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
Cú pháp
2 CÂU Lậ́NH IF THEN
b) Dạng đủ
- Tr ớc Else không có dấu chấm phẩy
“;”
Điều kiện
Đúng
Câu lệnh 1
Sai
Câu lệnh 2
Điều kiện
Câu lệnh 1
Câu lệnh
2;
Điều kiện
Câu lệnh 1
Điều kiện
B1: Điều kiện đ ợc tính và kiểm tra B2: + Nếu <điều kiện> đúng thì <câu lệnh1> đ ợc thực hiện,
+ Nếu <điều kiện> sai thì <câu lệnh 2> đ ợc thực hiện.
Ví dụ:
IF a mod 2=0 THEN Writeln(‘a là so chan’)
ELSE Writeln(‘a la so le’);
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU Lậ́NH
IF THEN
Trang 7Hãy dùng câu lệnh IF – THEN viết lệnh để xét các tr ờng hợp của DELTA
IF Delta<0 THEN Writeln(‘Ph ơng trình vô nghiệm’)
ELSE
X1:= (-B + SQRT(Delta))/(2*A);
X2:= (-B - SQRT(Delta))/(2*A);
Writeln(‘ Nghiem X1= ’, X1:5:1);
Writeln(‘ Nghiem X2= ’, X2:5:1);
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
b) Dạng đủ
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU Lậ́NH
IF THEN
Trang 8Trong TP Pascal cho phÐp gép nhiÒu c©u lÖnh thµnh mét c©u lÖnh gäi lµ c©u lÖnh ghÐp, cã d¹ng:
BEGIN
< C¸c c©u lÖnh>;
END;
IF Delta<0 THEN Writeln(‘Ph ¬ng tr×nh v« nghiÖm’)
ELSE BEGIN
X1:= (-B + SQRT(Delta))/(2*A);
X2:= (-B - SQRT(Delta))/(2*A);
Writeln(‘ Nghiem X1= ’, X1:5:1);
Writeln(‘ Nghiem X2= ’, X2:5:1);
END;
VÝ dô:
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
b) Dạng đủ
3 CÂU LỆNH GHÉP
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU LỆNH
IF THEN
3 CÂU LỆNH
GHÉP
Trang 9Program GPTB2;
Uses crt;
Var ;
BEGIN
NhËp vµo 3 hÖ sè a,b,c .
Delta := .;
Readln;
END.
Em h·y hoµn thiÖn ch ¬ng tr×nh gi¶i ph
¬ng tr×nh bËc 2 (a 0) theo dµn ý
sau:
VÝ dô
1 :
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
4 MỘT SỐ VÍ DỤ
a) Ví dụ 1
b) Dạng đủ
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU LỆNH
IF THEN
3 CÂU LỆNH
GHÉP
4 MỘT SỐ
VÍ DỤ
Trang 11Hãy xác
định Input
và Output của bài?
rằng năm nhuận là năm chia hết cho 400 hoặc chia hết 4 nh ng không chia hết cho 100. Input: Nhập N từ bàn phím.
Output: Đ a số ngày của năm N ra màn hình.
Nếu N chia hết cho 400 hoặc N chia
hết cho 4 nh ng không chia hết cho 100
thì In ra số ngày của năm nhuận là 366,
ng ợc lại In ra số ngày là 365
BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
a) Vớ dụ 1
b) Dạng đủ
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU Lậ́NH
IF THEN
3 CÂU Lậ́NH
GHÉP
4 Mệ̃T Sễ́
VÍ DỤ
b) Vớ dụ 2
Trang 12Em h·y khai b¸o biÕn cho bµi to¸n trªn?
ViÕt ®iÒu kiÖn:
NÕu N chia hÕt cho 400 hoÆc chia hÕt cho 4 nh ng kh«ng chia hÕt cho 100
th× nhËn sè ngµy cña n¨m nhuËn,
ng îc l¹i nhËn sè ngµy cña n¨m th êng.
NhËp vµo N¡M cÇn tÝnh sè l îng
ngµy
In ra kÕt qu¶?
Trang 13BÀI 9: CẤU TRÚC RẼ NHÁNH
NỘI DUNG
a) Vớ dụ 1
b) Dạng đủ
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU Lậ́NH
IF THEN
3 CÂU Lậ́NH
GHÉP
4 Mệ̃T Sễ́
VÍ DỤ
b) Vớ dụ 2
Câu 1 Cho đoạn ch ơng trình sau Tìm kết quả đúng khi thực hiện đoạn ch ơng trình trên.
BEGIN x:=0;
if a > b then x:=a - b;
If a < b then x:= a + b;
END.
Xét tr ờng hợp sau Cho a = 10; b =15 kết quả x bằng bao nhiêu
a) x=10; b) x=15; c) x=20; d) x=25;
Cõu 2 Viết Cõu lệnh rẽ nhỏnh dạng thiếu và dạng đủ đưa ra cõu thụng bỏo số nguyờn a là số dương hay a là số õm ?
Trang 14BÀI 9: CẤU TRÚC RẼ NHÁNH
Câu 2.
Dạng thiếu
If a <0 then Writeln (‘a la so am’);
IF a>0 then Writeln (‘a ka so duong’); Dạng đủ
If a <0 then Writeln (‘a là số am’) Else Writeln (‘a la so duong’);
NỘI DUNG
a) Ví dụ 1
b) Dạng đủ
a) Dạng thiếu
1 RẼ NHÁNH
2 CÂU LỆNH
IF THEN
3 CÂU LỆNH
GHÉP
4 MỘT SỐ
VÍ DỤ
b) Ví dụ 2
Câu 1: d.
Trang 15Hãy nhớ
Cấu trúc mô tả các mệnh
đề:
“ Nếu … thì …”
gọi là cấu trúc rẽ nhánh.
Lệnh rẽ nhánh dạng thiếu
Lệnh rẽ nhánh dạng đủ
Câu lệnh ghép
IF <điều kiện> THEN
<Câu lệnh>;
IF <điều kiện> THEN <Câu
lệnh 1>
ELSE <Câu
lệnh2>;
Trang 16GV: Nguyễn Khánh Linh