câu lệnh 2

Download Report

Transcript câu lệnh 2

CHƯƠNG 3:
CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI 9:
CẤU TRÚC RẼ NHÁNH
1. Rẽ nhánh
Nội dung:
2. Câu lệnh if-then
3. Câu lệnh ghép
4. Một số ví dụ
Nếu em rẽ
trái thì em sẽ
đến Hải
Phòng
?
Hải Phòng
Nếu em rẽ trái
thì em Lai
sẽ đến
Khê
Hải Phòng
ngược lại em sẽ
đi đến Hà Nội
Hà Nội
1. Rẽ nhánh
Nếu trời mưa thì Minh sẽ ở nhà
xem ti vi.
Nếu trời mưa thì Minh sẽ ở nhà
xem ti vi, nếu trời không mưa
(điều kiện ngược lại)thì Minh sẽ
đi đá bóng với Hùng
Dạng thiếu:
Dạng đủ:
Nếu … thì…
Nếu … thì… nếu không thì…
Ví dụ: Giải phương trình bậc hai: ax2 + bx +c =0
Giải thuật:
Bước 1: tính delta D = b2 – 4ac
Bước 2: kiểm tra D
+Nếu D<0:
Bước 3: Ta sẽ thông báo phương trình vô
nghiệm.
+ Nếu D>0:
Bước 4: Tính và đưa ra nghiệm của phương
trình.
Nhập
a,b,c
D = b2 – 4ac
Đúng
Sai
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
2. Câu lệnh if-then
Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then
Dạng thiếu
If <điều kiện> then <câu lệnh> ;
2 dạng:
Dạng đủ
If <điều kiện> then <câu lệnh 1>
else <câu lệnh 2> ;
Trong đó:
- Điều kiện là một biểu thức logic (trả về kết quả đúng hoặc
sai)
- Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal
SƠ ĐỒ HOẠT ĐỘNG CỦA CÂU LỆNH IF.. THEN
Dạng thiếu
If <điều kiện> then <câu lệnh>;
<ĐK>
Đ
S
Khi điều kiện
không thỏa, câu
lệnh có được
thực hiện hay
không?
<Câu lệnh>
Câu lệnh sẽ không
được thực hiện,
chương trình sẽ
thoát
Ví dụ:
Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0
 Bước 1: tính delta D = b2 – 4ac
 Bước 2: kiểm tra D
+Nếu D<0:
Bước 3: Ta sẽ thông báo phương trình vô nghiệm
If D<0 then writeln(‘ phuong trinh vo nghiem’);
Dạng đủ
If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Đ
<Câu lệnh 1>
<ĐK>
2 câu lệnh
có xảy ra
đồng thời
hay
không?
S
<Câu lệnh 2>
Ví dụ:
Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0
Bước 1: tính delta D = b2 – 4ac
Bước 2: kiểm tra D
+Nếu D<0:
Bước 3: Ta sẽ thông báo phương trình vô nghiệm
+ Nếu D>=0:
Bước 4: Tính và đưa ra màn hình nghiệm của
phương trình.
If D<0 then writeln(‘ phuong trinh vo nghiem’)
Else
begin
x1 := (-b + sqrt (D) ) / (2*a);
Trước else
x2 := (-b + sqrt (D) ) / (2*a);
không có dấu “ ; “
writeln (‘x1 = ‘,x1:5:2,’ x2 = ‘,x2:5:2);
end;
Tìm giống và khác nhau giữa 2 dạng ?
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> ;
Khác nhau:
+ Dạng thiếu: điều kiện sai sẽ bỏ qua câu lệnh.
+ Dạng đủ: điều kiện sai sẽ thực hiện câu lệnh 2.
Giống nhau: là câu lệnh cấu trúc rẽ nhánh, khi gặp điều kiện
sẽ thực hiện thao tác thích hợp.
3. CÂU LỆNH GHÉP:
Trong 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 như sau: BEGIN
< Các Câu lệnh >;
END;
VÝ dô:
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;
4. mét sè vÝ dô
VÝ dô
1
:
Program GPTB2;
Emcrt;
h·y hoµn thiÖn
Uses
ch¬ng tr×nh gi¶i phVar .¬ng
. . ;tr×nh bËc 2
(a0) theo dµn ý
BEGIN sau:
. . . NhËp vµo 3 hÖ sè a,b,c .. .
Delta :=. . .;
NÕu Delta<0 th× Writeln(‘PTVN’)
ngîc l¹i TÝnh vµ in nghiÖm;
Readln;
END.
* Bài tập củng cố:
1. Nêu cú pháp của câu lệnh if-then ở hai dạng thiếu và
đủ?
2. Bài tập trắc nghiệm:
Câu 1: Hãy chọn phương án ghép đúng nhất. Trong câu lệnh IF – THEN,
sau IF là <điều kiện>. Điều kiện là:
A, Biểu thức logic.
B. Biểu thức số học.
C. Một câu lệnh.
Câu 2: Hãy chọn phương án ghép đúng nhất.
Trong câu lệnh IF <điều kiện> THEN <câu lệnh>.
Câu lệnh đứng sau THEN được thực hiện khi?
A. điều kiện cho giá trị sai.
B. điều kiện cho giá trị đúng.
C. Không cần xét điều kiện
Câu 3: Với cấu trúc IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>,
câu lệnh 2 được thực hiện khi?
A.biểu thức điều kiện đúng.
B.biểu thức điều kiện sai
C.câu lệnh 1 được thực hiện
* Bài tập củng cố:
Áp dụng: hãy nhập vào một số nguyên a,nếu a
chia hết cho hai thì in ra màn hình “a la so chan”,
ngược lại in ra “a la so le”.
Program baitap1;
Uses crt;
Var a: integer;
Begin
Write(‘nhap so nguyen a ‘); readln(a);
If (a mod 2 =0) then
Writeln(a, ‘la so chan’);
Else
Writeln(a, ‘la so le’);
Readln
End.
* Dặn dò:
- Học cấu trúc và hoạt động của câu lệnh If…then dang đủ và
dạng thiếu.
- Đọc trước phần 3,4 SGK và trả lời câu hỏi: Nếu sau Then hoặc
Else nhiều hơn 1 câu lệnh thì giải quyết như thế nào?