1. Trước khi vào bài ngày hôm
nay, các em hãy xem tình
huống.
2. Châu và Ngọc chuẩn bị các bài thực
hành cho môn Tin học
Châu
Ngọc
Chiều mai nếu
trời không
mưa thì Châu
sẽ đến nhà
Ngọc.
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.
3. Nếu… thì…
Nếu… thì…,
nếu không thì…
Một việc làm
cụ thể sẽ được
thực hiện nếu
một điều kiện
cụ thể thỏa
mãn.
Một trong hai
việc làm cụ thể
chắc chắn sẽ xảy
ra tùy thuộc vào
điều kiện cụ thể
có thỏa mãn hay
không.
Cấu trúc dùng để mô tả các dạng mệnh đề như trên
được gọi là cấu trúc rẽ nhánh thiếu và đủ.
4. Trong ngôn ngữ
tin học, cấu trúc
rẽ nhánh “Nếu
..thì…”
được biểu diễn
như thế nào?
6. Nội dung bài học
1 Rẽ nhánh
2 Cấu trúc IF … THEN
3 Câu lệnh ghép
4 Một số ví dụ
7. 1. Rẽ nhánh
Ví dụ: Giải phương trình bậc hai:
ax2 + bx + c = 0 (ĐK : a 0)
1. Xác định input, output.
2. Trình tự các bước thực hiện
giải phương trình bậc 2.
- Vậy trong tin học thì
giải như thế nào ???
• Input: nhập a, b, c
• Output: Xuất ra nghiệm của
phương trình bậc hai.
• Nhập hệ số a,b,c
• Tính D=b2 - 4ac
• Nếu D ≥ 0 thì tính rồi đưa ra nghiệm
thực và kết thúc, ngược lại thông báo vô
nghiệm rồi kết thúc.
- Nêu các bước giải
phương trình bậc 2
trong toán học ?
8. Sau khi tính Delta, tùy
thuộc vào giá trị Delta, một
trong hai thao tác sẽ thực
hiện :
D ≥ 0
D < 0
Nhập a, b, c
D b2 – 4ac
Sai Đúng
D ≥ 0
Thông báo
vô nghiệm,
rồi kết thúc
Sơ đồ biểu diễn
thuật toán giải
phương trình
bậc 2 (a ≠ 0)
Tính rồi đưa
ra nghiệm thực,
rồi kết thúc
1. Rẽ nhánh
9. 1. Rẽ nhánh
Mệnh đề “Nếu … thì”
và “Nếu … thì…, nếu không
thì…”
biểu diễn trong ngôn ngữ Pascal
như thế nào???
10. 2. Câu lệnh IF … THEN
Câu lệnh If-then
Dạng thiếu
Dạng đủ
11. 2. Câu lệnh IF … THEN
IF<điều kiện> THEN <câu lệnh> ; (1)
Dạng thiếu:
Là biểu thức logic Là một câu lệnh của pascal.
Điều kiện
Câu lệnh
Sai
Đúng
ĐĐiiềềuu kkiiệệnn Ví dụ :
If D < 0 then writeln (‘ Phuong trinh vo nghiem : ’)
12. 2. Câu lệnh IF … THEN
Điều kiện
Đúng
Câu lệnh 1
Sai
Câu lệnh 2
IF <điều kiện> THEN <câu lệnh 1> (2)
ELSE <câu lệnh 2> ;
Dạng đủ:
Ví dụ:
If a mod 3 = 0 then write
(‘a chia het cho 3’)
else write (‘a khong chia
het cho 3’)
13. 2. Câu lệnh IF … THEN
Ví dụ : Tìm số lớn nhất max trong 2 số a và b.
Dùng câu lệnh gán max:=a và lệnh if-then dạng thiếu
If b > a then max:=b;
If b > a then max:=b else max:=a ;
14. 2. Câu lệnh IF … THEN
Sự giống nhau và khác nhau của hai dạng câu lệnh :
Dạng thiếu Dạng đủ
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ệnh 2> ;
15. Hã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 D<0 THEN Writeln(‘phuong trinh vo nghiem’)
ELSE
X1:= (-B + SQRT(D))/(2*A);
X2:= (-B - SQRT(D))/(2*A);
Writeln(‘ Nghiem X1= ’, X1:5:1);
Writeln(‘ Nghiem X2= ’, X2:5:1);
16. 3.Câu lệnh ghép
Câu lệnh ghép là một câu lệnh được hợp thành từ nhiều
câu lệnh thành phần.
VD:
Cú pháp:
if a < b then
begin
max:=b;
min:=a;
end;
begin
<Các câu lệnh > ;
end;
17. 3.Câu lệnh ghép
program Giai_PTB2 ;
uses crt ;
var a,b,c : real;
D, x1, x2 : real;
begin
clrscr ;
write ( ‘a, b, c: ’ ) ;
readln(a, b, c) ;
D := b*b-4*a*c ;
if D < 0 then writeln (‘ Phuong trinh vo nghiem ’)
else
begin
x1 := ( - b – sqrt (D)) / ( 2*a );
x2 := -b/a – x1 ;
writeln ( ‘ Phuong trinh co nghiem x1 = ’, x1:8:3, ‘ x2= ’, x2:8:3 ) ;
end;
readln;
end.
18. 4. Một số ví dụ
Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400 hoặc
chia hết cho 4 nhưng không chia hết cho 100.
Hãy xác định
Input và
Output của
bài toán?
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
19. 4. Một số ví dụ
Liệt kê
B1:Nhập N
B2: Kiểm tra N chia hết
cho 400 hoặc (N chia hết
cho 4 và không chia hết
cho 100)
B3:Nếu B2 đúng thì
thông báo năm N có 366
ngày và kết thúc thuật
toán
B4:Nếu B2 sai thông báo
năm N có 365 ngày và
kết thúc thuật toán
Sơ đồ khối
Bắt đầu
Nhập N
Thông báo năm
này
có 365 ngày
Thông báo năm
này
có 366 ngày
(N mod 400=0) or ((N mod
4=0)
and (N mod 100<>0) )
Kết thúc
Thuật toán
Đúng
Sai
20. Nhập vào năm N cần tính số ngày
Em 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.
In ra kết quả?
21. Củng cố
Cấu trúc mô tả các mệnh đề:
“Nếu … thì…”
“Nếu … thì …ngược lại…”
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
BEGIN
<các câu lệnh>;
END;
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ệnh 2>;
22. Dặn dò
Về nhà:
1. Làm bài tập : 1, 2, 4 trang 51 SGK
2. Chuẩn bị bài 10: TỔ CHỨC LẶP
Bài tập thêm: viết chương trình lập
trình nhập từ bàn phím hai số
nguyên a,b đưa ra màn hình giá
trị lớn hơn trong hai số đó.
Mở rộng cho ba số a, b, c.