Nếu mai trời không mưa thì An sẽ đến nhà Bình.. Nếu mai trời không mưa thì An sẽ đến nhà Bình, nếu mưa thì An sẽ gọi điện cho Bình.. Rẽ nhánh Xét ví dụ 1: Hai bạn An và bạn Bình hẹn n
Trang 11/ Để nhập một số vào từ bàn phím chúng ta dùng cặp thủ tục nào? Hãy cho ví dụ?
Kiểm tra bài cũ
Write(<Danh sách kết qủa ra>);
Readln(<Danh sách biến vào>);
Đáp án
Trang 2CHƯƠNG 3
C U TR C R NH NH Ấ Ú Ẽ Á
Trang 3Nếu mai trời không
mưa thì An sẽ đến
nhà Bình.
Nếu mai trời không mưa thì
An sẽ đến nhà Bình, nếu mưa thì An sẽ gọi điện
cho Bình.
1 Rẽ nhánh
Xét ví dụ 1: Hai bạn An và bạn Bình hẹn nhau
Cấu trúc dùng để mô tả các mệnh đề đó gọi là cấu
trúc rẽ nhánh thiếu và đủ
Trang 41 Rẽ nhánh
VD 2: Giải phương trình bậc hai: ax2 + bx + c =0
Tính D:=b*b+4a*c
Nếu d≥0 thì phương trình có nghiệm
Nếu d<0 thì phương trình vô nghiệm
Sơ đồ
Tính đưa ra nghiệm thực
và kết thúc
Thông báo vô nghiệm
và kết thúc
Nhập a,b
D ← b 2 -4ac
Sai
Hãy nêu cách giải phương trình đó?
Trang 5Nếu mai trời không mưa thì An sẽ đến nhà Bình
điều kiện công việc
2 Câu lệnh if - then
a Dạng thiếu: if <điều kiện> then <câu lệnh>;
Trong đó:
- Điều kiện là biểu thức lôgic
- Câu lệnh là một câu lệnh của Pascal
Sơ đồ thể hiện cấu trúc if -then
Ý nghĩa: Tính và kiểm tra điều kiện Nếu điều kiện đúng thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua
Điều kiện Câu lệnh
Đúng
Sai
Điều kiện Câu lệnh
Trang 62 Câu lệnh if - then
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc
rẽ nhánh sau:
a Nếu d<0 thì phương trình vô nghiệm
b Nếu a mod 2 =0 thì a là số chẵn
if <điều kiện> then <câu lệnh>;
a if d<0 then writeln(‘phuong trinh vo nghiem’);
b if a mod 2 =0 then writeln(‘a la so chan’);
Giải
Trang 7VD: Nếu mai trời không mưa thì An sẽ đến nhà Bình,
Nếu trời mưa thì An sẽ gọi điện cho Bình
công việc 2 ngược lại đk
2 Câu lệnh if – then
b Dạng đủ
if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Sơ đồ cấu trúc if - then
điều kiện Câu lệnh 1 Câu lệnh 2
đúng Sai
Ý nghĩa: Tính và kiểm tra điều kiện Nếu điều kiện
đúng thì câu lệnh1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện
điều kiện Câu lệnh 1 Câu lệnh 2
đúng
Sai
Trang 82 Câu lệnh if - then
if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc rẽ nhánh sau:
a Nếu d<0 thì phương trình vô nghiệm, ngược thì phương trình có nghiệm
b Nếu a mod 2=0 thì a là số chẵn, ngược lại a là số
a if d<0 then writeln(‘ phuong trinh vo nghiem’) else
writeln(‘phuong trinh co nghiem’);
b if a mod 2=0 then writeln(‘a la so chan’) else
writeln(‘a la so le’);
Trang 93 Câu lệnh ghép
Trong Pascal cho phép gộp một dãy câu lệnh thành một câu lệnh ghép Câu lệnh ghép có dạng
if d<0 then writeln(‘ phuong trinh vo nghiem’)
else
begin
x1:=( - b – sqrt(d))/(2*a);
x2:= - b/a - x1;
end;
ví dụ:
Chú ý: Trước từ khoá else câu lệnh không có dấu chấm phẩy
Begin
<các câu lệnh>;
End;
Chú ý: sau end phải có dấu chấm phẩy;
Trang 103 Câu lệnh ghép
VD: Hãy dùng cấu trúc if- then để mô tả cấu trúc
rẽ nhánh sau: Nếu ngày=3 và tháng =7 thì đưa
ra hai câu thông báo “hôm nay là ngày 3
tháng 7”.
if (ngay=3) and (thang=7) then
writeln(‘hom nay la ngay 3 thang 7’);
writeln(‘hom nay la ngay 3 thang 7’);
Begin
end;
Trang 11Cấu trúc dùng để mô tả mệnh đề
Nếu…thì,….
Nếu… thì, nếu không thì……
Được gọi là cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh dạng thiếu
If <điều kiện> then <câu lệnh>;
Cấu trúc rẽ nhánh dạng đủ
If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Câu lệnh ghép
Begin
<dãy các câu lệnh>;
Trang 124.Một số ví dụ
Ví dụ 1: Tìm nghiệm thực của phương trình bậc
hai: ax 2 +bx+c=0 với a ≠ 0;
Hãy xác định input và 0utput của bài toán?
Input: nhập a, b, c;
output: đưa ra nghiệm thực hoặc thông báo
“phương trình vô nghiệm”.
Trang 134.Một số ví dụ
Program Giai_PTB2 ;
uses crt;
var a, b, c, d, x1, x2: real;
Begin
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(‘x1=‘, x1:8:3, ‘x2=‘,x2:8:3);
end;
readln
end.
Hãy cho biết câu lệnh dùng để nhập
a, b, c và tính d?
Hãy cho biết câu lệnh if – then ở ví
dụ này thuộc dạng thiếu hay đủ?
Trong chương trình này
có dùng câu lệnh ghép không? Nếu có nó được bắt đầu bằng từ khóa nào và kết thúc ở đâu?
Trang 14Ví 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 (biết rằng năm nhuận có 366 ngày, năm thường có 365 ngày).
Hãy xác định input và output?
input: N nhập từ bàn phím
output: đưa ra số ngày của năm N ra màn hình
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ì số ngày của năm N là nhuận có 366 ngày,
ngược lại số ngày là 356 ngày.
Trang 15program Nam_nhuan;
uses crt;
var n: integer;
Begin
write(‘nhap nam can tim so ngay N=‘);
readln(N);
if (N mod 400 =0) or ((N mod 4=0) and(N mod 100<>0) then
writeln(‘nam do la nam nhuan co 366 ngay’)
else
writeln(‘nam do khong la nam nhuan co 365 ngay’);
readln
end
Hãy 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ì là năm nhuận
có 366 ngày ngược lại thì có số ngày là
365 ngày
Em hãy khai báo biến cho bài toán trên?Hãy nhập
năm cần tìm
số ngày?
Trang 16Cho một số a thuộc số nguyên được nhập vào
từ bàn phím Hãy lập trình để kiểm tra xem a có chia hết cho 3 không?
Program kiemtra;
uses crt;
var n: Integer;
Begin
write(‘Hay nhap n tu ban phim’);
readln(n);
if n mod 3 =0 then writeln(‘n la so chia het cho 3’)
else writeln(‘ n la so khong chia het cho 3’);
readln
end