Ý nghĩa: Tính và kiểm tra điều kiện, nếu điều kiện đúng, câu lệnh 1 được thực hiện, ngược lại câu lệnh 2 được thực hiện.... Trong đó: + Điều kiện là biểu thức mang giá trị Logic..[r]
Trang 31 Khái niệm rẽ nhánh
Ví dụ 1: Để giải phương trình bậc 2 ta phải:
Tính Δ = b2 – 4ac
Trong thực tế:
Nếu Δ < 0 thì phương trình vô nghiệm Nếu Δ ≥ 0 thì phương trình có nghiệm
Có thể nói: nếu Δ < 0 thì phương trình vô nghiệm, ngược lại phương trình có nghiệm
Trang 4Nhập a, b, c
D b 2 – 4ac
D ≥ 0
Tính và đưa ra nghiệm Thực, rồi kết thúc
Thông báo vô
nghiệm, rồi kết thúc
Sơ đồ thể hiện cấu trúc rẽ nhánh
Đúng Sai
Trang 52 Câu lệnh if – then
a.Dạng thiếu
Cú pháp: if <điều kiện> then <câu lệnh>;
Sai
Đúng
Ý nghĩa: Tính và kiểm tra điều kiện, nếu điều kiện đúng, câu lệnh được thực hiện, nếu điều kiện sai câu lệnh sẽ bị bỏ qua
Sơ đồ khối
Trang 6b Dạng đủ
Cú pháp
if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Câu lệnh 2
Ý nghĩa: Tính và kiểm tra điều kiện, nếu điều kiện đúng, câu lệnh 1 được thực hiện, ngược lại câu lệnh 2 được thực hiện.
Sơ đồ khối
Trang 7Trong đó:
+ Điều kiện là biểu thức mang giá trị Logic + Câu lệnh , câu lệnh 1, câu lệnh 2 là 1 câu lệnh của Pascal.
Lưu ý: Trong if – then dạng đủ: câu lệnh
trước Else không có dấu “;”
Trang 8Ví dụ 1: nhập a từ bàn phím, kiểm tra xem a có chia hết cho 5 không? Thông báo ra màn hình kết quả
Ví dụ 2: Tìm giá trị nhỏ nhất của hai số nguyên a và b với a, b nhập từ bàn phím
If a mod 5 = 0 then writeln(‘ a chia het cho 5’)
else writeln(‘ a khong chia het cho 5’);
-C1: dùng if – then dạng thiếu
min:=a;
if b < a then min:=b;
-C2: dùng if – then dạng đủ
if a < b then min := a else min := b;
Trang 93 Câu lệnh ghép
Câu lệnh ghép có dạng:
begin
<các câu lệnh>;
end;
Thuật ngữ câu lệnh được hiểu chung cho câu lệnh đơn và câu lệnh ghép
Lưu ý: trong câu lệnh ghép, sau end là dấu “;”
Trang 10Program Giai_PTB2;
Uses crt;
Var a, b, c, D: real;
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;
write(‘x1= ‘, x1:6:2, ‘ x2 = ‘,x2:6:2);
end ; Readln End.
Trang 11Ví dụ 1: nhập a từ bàn phím, kiểm tra xem a có chia hết cho 5 không? Thông báo ra màn hình kết quả
Xác định bài toán:
Input:
+ số a
Output: Thông báo a
chia hết cho 5 hoặc
thông báo a không chia
hết cho 5
Thuật toán:
B1: nhập a
B2: Nếu a chia hết cho 5
thì thông báo a chia hết ,
ngược lại thông báo a
không chia hết
Program ……… (1)
Var ……… ( 2)
Begin ……… ………… (3)
……… …………
……… ………… (4)
………
……… …………
………
End.
a: byte;
Write(‘ nhap a: ’) ; Readln(a);
If a mod 5 = 0 then
writeln(a, ‘chia het cho 5’) else writeln(a, ‘khong chia het cho 5’);
vidu1 ;
readln
Trang 12Ví dụ 3: nhập a, b, c từ bàn phím, kiểm tra xem a, b,
c có thể lập thành tam giác không? Nếu có tính chu vi
và diện tích tam giác đó?
Xác định bài toán:
Input:
+ số a, b, c
Output: Thông báo a, b, c không lập thành tam giác hoặc đưa
ra chu vi và diện tích tam giác.
Thuật toán:
B1: nhập a, b, c
B2: Nếu (a+b>c) và (a+c>b) và (b+c>a) thì tính và đưa ra màn hình chu vi, diện tích tam giác , ngược lại thông báo a, b, c
không lập thành tam giác
Trang 13Thuật toán:
B1: nhập a, b, c
B2: Nếu (a+b>c) và (a+c>b) và (b+c>a) thì tính và đưa ra màn hình chu vi, diện tích tam giác , ngược lại thông báo a, b, c
không lập thành tam giác
Ví dụ 3:
Công thức tính chu vi:
Nửa chu vi:
Công thức tính diện tích: s p( p a)( p b)( p c)
c b
a
2
cv
p
Trang 14Program ……… (1)
Var ……… (2)
Begin
……… ……… ……… (3) ……… ……… (4)
a, b,c: byte;
s,cv,p: real;
Write(‘ nhap a, b, c: ’) ; Readln(a,b,c);
If (a+b>c) and (a+c>b) and (b+c>a) then begin
cv:=a+b+c; p:=cv/2; s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln(‘ chu vi tam giac la: ’,cv);
Writeln(‘dien tich tam giac la: ’,s);
End
Else writeln( a, b, c, ‘ khong lap thanh tam giac’);
vidu3 ;
Readln End.