Tải bản đầy đủ (.ppt) (21 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 (523.15 KB, 21 trang )

Thời gian 1 tiết


1. RÏ nh¸nh

TL1: Ngày mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc.
Thuộc vào dạng điều kiện thiếu
Nếu……..thì……..

VD 2: Ngày mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc,
nếu mưa thì Châu sẽ gọi điện để trao đổi bài

Thuộc vào dạng điều kiện đủ:
Nếu……..thì…….nếu không thì….


VÝ dơ: Gi¶i ph¬ng tr×nh bËc hai ax2+bx+c=0 (a≠0)
Cấu trúc rẽ nhánh?

Cấu trúc rẽ nhánh là một

H·y nªu c¸c
điều khiển chọn thực hiện
bíc gi¶i ph
hay không thực hiện một
¬ng tr×nh
công việ
c phù
hợp với
bËc
hai?


điều kiện đang xảy ra

-

NhËp hƯ sè a,b,c
TÝnh Delta=b2 - 4ac
NÕu Delta ©m th× th«ng b¸o PT v«
nghiƯm, ngỵc l¹i tÝnh vµ ®a ra
nghiƯm.
Nhập a, b, c

Sơ đồ
D:=b*b-4*a*c
S

Thơng báo VN
Kết thúc

Đ
D>=0?

Tính và đưa ra nghiệm
Kết thúc


Dạng điều kiện thiếu
Nếu……..thì……..
Dạng điều kiện đủ:
Nếu……..thì…….nếu khơng thì….


Cấu trúc rẽ nhánh là một điều khiển chọn thực hiện hay không thực
hiện một công việc phù hợp với điều kiện đang xảy ra


a. Dạng thiếu
Nếu <ĐK> thì <CV>

b. Dạng đủ

Nếu <ĐK> thì <CV1>nếu không thì PASCAL

PASCAL

IF <ĐK> THEN <CL>;

IF <ĐK> THEN <CL1> ELSE <CL2>;

Trong ®ã:
- IF, THEN, ELSE lµ c¸c tõ kho¸.
- §iÒu kiÖn lµ biÓu thøc cã gi¸ trÞ l«gic.
- C©u lÖnh, CL1,CL2 lµ mét lÖnh cña TP.
SƠ ĐỒ KHỐI


a. Sơ đồ khối Dạng thiếu

Điều kiện

Câu lệnh


b. Sơ đồ khối Dạng đủ:

Điều kiện

Câu lệnh 1

Câu lệnh 2

Ý nghĩa câu lệnh rẽ nhánh:

Kiểm tra ĐK nếu đúng thì thực hiện CL, ngược lại thì
Dạng thiếu:
bỏ qua câu lệnh và thoát khỏi lệnh if-then.

Dạng đủ:Kiểm tra nếu ĐK đúng thì thực hiện CL1, ngược lại thì thực hiệ
Lu ý:- 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 “;”


2. CÂU LỆNH IF – THEN

VD1: Kiểm tra, nếu n chia hết cho 2 thì xuất ra màn hình thông báo ‘n lµ so
chan’
IF n mod 2 = 0 THEN write(‘n chan’);
VD2: Nếu điểm trung bình >= 5 thì xuất ra màn hình thông báo “bạn đã đậu”.
IF ĐTB>= 5 THEN WRITE(‘Ban đa đau’);
VD3: Tìm số lớn nhất của hai số a và b?
Dạng thiếu:
Dạng đủ:


if a>b then max:=a;
If a>b then max:=a Else max:=b;

VD4: Kết luận nghiệm PT bậc hai:

IF D<0 THEN
ELSE

writeln(‘phuong trinh vo nghiem’)
writeln(‘phuong trinh co nghiem’);


Theo cú pháp, sau một số từ khóa (như
THEN, ELSE) phải là một câu lệnh.
Nhưng trong nhiều trường hợp, các thao
tác sau những tên dành riêng đó khá
phức tạp, đòi hỏi không phải chỉ một
mà là nhiều câu lệnh để mô tả.


3. C©u lÖnh ghÐp
Trong TP 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:
BEGIN
BEGIN
END;
END;

VÝ dô:


<C¸cc©u
c©ulÖnh>;
lÖnh>;

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: Viết chương trình tìm nghiệm thực của phương trình bậc
hai:
ax2 + bx + c = 0 với a≠0
Yêu cầu đề bài:
* Input: Các hệ số a, b, c nhập từ bàn phím.
* Output: Đưa ra màn hình các nghiệm PT hoặc thông báo
“Phương trình vô nghiệm”


Sau Else không có dấu “;”

Câu lệnh ghép sau Else


Sau End có dấu “;”



4. MỘT SỐ VÍ DỤ
Ví dụ 2: Viết chương trình tính 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
Yêu cầu đề bài:
* Input: N nhập từ bàn phím.
* Output: Đưa số ngày của năm N ra màn hình.



Cng c
IF <điều kiện> THEN
<Câu lệnh>;
IF <điều kiện> THEN 1>
ELSE <Cl2>;

Cấu trúc mô tả các mệnh đề:
Nếu thì
Nếu thì ngợc lại
gọi là cấu trúc rẽ nhánh.
Lệnh rẽ nhánh dạng thiếu
Lệnh rẽ nhánh dạng đủ
Câu lệnh ghép
BEGIN
<Các câu lệnh>;

END;


Trắ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


Trắ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) ;
A. 7


B. a+b

C. 5+2

D. không in gì cả

Đáp án: Câu A


Trắ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’);
A. a la so chan

B. a la so le

C. 7 la so le

D. báo lỗi ngữ pháp

Đáp án: Câu B


Trắ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 m7) else write(m);
A. 2

B. 5

C. false

D. true

Đáp án: Câu D


Bµi tËp v ề nh à:
Viết câu lệnh rẽ nhánh tính:
1.

x+2
y = 1+
x +1

2.

x2 + y 2

z = x+ y
 0,5


Nếu


x2 + y2 ≤ 1

nếu

x2 + y2 > 1



y≥x

nếu

x2 + y2 > 1



y

Đáp án:

If (x+2) > 0 and (x+1) <> 0 then
y:= 1 + sqrt(x+2)/(x+1);

Bài 1
Else

Write(‘khong tinh duoc’);
If (sqr(x)+sqr(y)) <=1 then


z:= sqr(x) + sqr(y);

Else
if y >= x then

Bài 2

Else
z:= 0.5;

z:= x + y



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

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