Tải bản đầy đủ (.ppt) (17 trang)

bài 9: cấu trúc rẽ nhánh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (218.08 KB, 17 trang )

CHƯƠNG 3:
CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI 9:
CẤU TRÚC RẼ NHÁNH
Nội dung:
1. Rẽ nhánh
2. Câu lệnh if-then
3. Câu lệnh ghép
4. Một số ví dụ
Dạng thiếu:
Nếu … thì…
Dạng đủ:
Nếu … thì… nếu không thì…
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
1. Rẽ nhánh
Ví dụ: Giải phương trình bậc hai: ax
2
+ bx +c =0
Giải thuật:
Bước 1: tính delta D = b
2
– 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 = b
2
– 4ac
D>=0 ?
ĐúngSai
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
Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then
2 dạng:
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
2. Câu lệnh if-then
SƠ Đồ HOạT ĐộNG CủA CấU TRÚC
IF-THEN
Dạng thiếu:
If <điều kiện> then <câu lệnh>;
<ĐK>
<Câu lệnh>

Đ
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 sẽ không
được thực hiện,
chương trình sẽ
thoát
Bài toán: Giải phương trình bậc hai: ax
2
+ bx +c =0

Bước 1: tính delta D = b
2
– 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>;
<ĐK>
<Câu lệnh 1> <Câu lệnh 2>


2 câu
lệnh có
xảy ra
đồng thời
hay
không?
Bài toán: Giải phương trình bậc hai: ax
2
+ bx +c =0
Bước 1: tính delta D = b
2
– 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);
x2 := (-b + sqrt (D) ) / (2*a);
writeln (‘x1 = ‘,x1:5:2,’ x2 = ‘,x2:5:2);
end;
Trước else
không có dấu “ ;

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.
Tìm giống và khác nhau giữa 2 dạng
begin
<câu lệnh 1>;
<câu lệnh 2>;
<câu lệnh 3>;

end;
Xét ví dụ giải phương trình bậc hai:
If D<0 then Writeln(‘phuong trinh vo nghiem’)
Else
begin
x1 := (-b - sqrt(D) ) / (2*a);
x2 := (-b + sqrt(D) ) / (2*a);
end;
3. Câu lệnh ghép
Ví dụ : tìm nghiệm thực của phương trình bậc hai
ax
2
+ bx + c = 0 với a khác 0
Input:
Output:
Thuật toán:
Bước 1: tính delta D
Bước 2: kiểm tra D
Bước 3: nếu D<0 thì đưa ra màn hình thông báo
“phuong trinh vo nghiem”

Bước 4: nếu D>0 thì tính và đưa ra màn hình
nghiêm thực của phương trình
nhập hệ số a,b,c.
Tính và đưa ra màn hình các nghiệm thực
hoặc thông báo “phuong trinh vo nghiem”
4. Một số ví dụ
Program ptbac2;
Uses crt;
Var a, b, c, d, x1, x2: real;
Begin
Write(‘nhap he so 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 – sqrt (D) ) / (2*a);
writeln(‘x1= ’ , x1:7:3, ’ x2= ’ , x2:7:3);
end;
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 bài, Xem bài mới, làm bài tập SGK bài 1,2,4
trang 50-51

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×