Các câu lệnh thực hiện rẽ nhánh và lặp của Pascal.. Các câu lệnh thực hiện rẽ nhánh và lặp của Pascal.[r]
Trang 2Các câu lệnh thực hiện rẽ nhánh và lặp của Pascal Cấu trúc rẽ nhánh và lặp trong lập trình
Trang 3Thời gian 1 tiết
Trang 41 RÏ nh¸nh
Chiều mai nếu trời mưa thì Châu sẽ nghỉ ở nhà
Chiều mai nếu trời mưa thì Châu sẽ nghỉ ở nhà, nếu không mưa thì Châu sẽ đến nhà Ngọc học nhé.
Thuộc dạng thiếu
Nếu< điều kiện > thì < CV1> nếu không thì< CV 2> ;
Thuộc dạng đủ:
Trang 5VÝ dô: Gi¶i ph ¬ng tr×nh bËc hai ax 2 +bx+c=0 (a0)
H·y nªu ý
tưởng gi¶i ph
¬ng tr×nh bËc
hai?
D:=b*b-4*a*c
D>=0?
Thông báo VN Kết thúc
Tính và đưa ra nghiệm
Kết thúc
Nhập a, b, c
Đ S
D>=0?
Sơ đồ
-NÕu Delta >=0 th× tính và đưa ra đưa ra a ra a ra nghi m ệm
vô nghiệm rồi kết thúc
Trang 6IF a mod 2= 0 then
Write(‘a la so chan’)
IF a mod 2= 0 then write(‘a la so chan’) Else Write (‘ a la so le’);
- IF, THEN, ELSE là các từ khoá.
- Điều kiện : là biểu thức lôgic.
- Câu lệnh, CL1,CL2: là một lệnh của TP.
Trong đó:
C ấu trỳc
VD: Nếu a chia hết cho 2
thỡ a la số chẵn
VD :Nếu a chia hết cho 2 thỡ a là số chẵn Ngược lại a là số lẻ.
PASCAL PASCAL
C ấu trỳc
If <điều kiện> then <cõu lệnh>;
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>;
If < điều kiện> then <cõu lệnh 1>
else <cõu lệnh 2>;
2 Câu lệnh IF - THEN
L u ý:- Sau Then và sau else chỉ cú 1 câu lệnh chương trỡnh.
- Trước Else khụng chứa dấu “;”
Trang 7Điều kiện
Đúng
Câu lệnh
Nếu <điều kiện> đúng thì <câu lệnh> đ ợc thực hiện,
sai <câu lệnh> bị bỏ qua.
Sai
Câu lệnh
Đúng
Câu lệnh
Điều kiện
2 Câu lệnh IF THEN ( – THEN ( Dạng thiếu)
If <điều kiện> then <cõu lệnh>;
If < điều kiện> then <cõu lệnh>;
Trang 8Điều kiện
Đúng
Câu lệnh 1
Sai
Câu lệnh 2
Nếu <điều kiện> đúng thì <câu lệnh1> đ ợc thực hiện,
ng ợc lại thì <câu lệnh 2> đ ợc thực hiện.
Đ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
If <điều kiện> then <cõu lệnh 1> else <cõu lệnh 2>;
If < điều kiện> then <cõu lệnh 1> else <cõu lệnh 2>;
2 Câu lệnh IF THEN ( – THEN ( Dạng đủ )
Trang 9VD2: Kết luận nghiệm PT bậc hai:
IF D<0 THEN writeln(‘phuong trinh vo nghiem’) 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 ;
VD1: Tìm số lớn nhất max trong hai số a và b ?
Dạng đủ:
If a>b then max:=a;
Dạng thiếu:
2 C©u lÖnh IF THEN – THEN ( - Ví dụ
Trang 103 C©u lÖnh ghÐp
BEGIN
< C¸c c©u lÖnh>;
END;
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);
END;
VÝ dô:
Trang 11C ng c ủ ố
CÊu tróc chung c ủa cấu trúc rÏ nh¸nh.
C ấu trúc chung và quá trình thực hiện của câu
lÖnh rÏ nh¸nh IF – Then ( d¹ng thiÕu v à đủ )
C©u lÖnh ghÐp
<C¸c c©u lÖnh>;
Trang 12Trắc nghiệm Câu 1: Cho biết kết quả hiển thị lên màn hình của đoạn chương trình sau:
Var a, b,max: word;
a:= 100; b:=5;
Max:=a;
If b>a then max:=b;
Write(‘so lon nhat la: ‘, max);
A so lon nhat la: max B 100
C so lon nhat la: 100 d so lon nhat la: 5
Đáp án: Câu C
Trang 13Trắc nghiệm Câu 2: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var a,b: integer;
A:=5; b:=2;
If a>b then write(a+b) ;
Đáp án: Câu A
Trang 14Trắc nghiệm Câu 3: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var a: integer;
A:=7;
If a mod 2=0 then write(‘a la so chan’) else write(‘a la so le’);
Đáp án: Câu B
Trang 15Trắc nghiệm Câu 4: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var m,n: integer;
m:=2; n:=5;
If m<n then write(3<>7) else write(m);
Đáp án: Câu D
Trang 16Hãy xác định
Input và Output
của bài?
400 hoặc chia hết 4 nh ng không chia hết cho 100.
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,
Trang 17Em h·y khai b¸o biÕn cho bµi to¸n trªn?
ViÕt ®iÒu kiÖn:
ng kh«ng chia hÕt cho 100
nhËn sè ngµy cña n¨m th êngNhËp vµo N¡M cÇn tÝnh sè l îng ngµyIn ra kÕt qu¶? .
Trang 18Bµi tËp v nhề nhà à:
Viết câu lệnh rẽ nhánh tính:
1
2 1
x
x y
1.
2.
5 , 0
2 2
y x
y
x z
Nếu nếu nếu
1
2 2
y x
1 2
2
y
1 2
2
y
x
y
x
y
Trang 19Đáp án:
B ài 1
If (x+2) > 0 and (x+1) <> 0 then
y:= 1 + sqrt(x+2)/(x+1);
Else
Write(‘khong tinh duoc’);
B ài 2
If (sqr(x)+sqr(y)) <=1 then z:= sqr(x) + sqr(y); Else
if y >= x then z:= x + y
El se
z:= 0.5;