Tải bản đầy đủ (.pptx) (28 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 (821.72 KB, 28 trang )

GIÁO VIÊN : NGUYỄN THỊ THANH XUÂN
SỞ GDĐT TP HỒ CHÍ MINH
TRƯỜNG THPT ĐINH THIỆN LÝ
MÔN: TIN HỌC
Đây là một mệnh đề thiếu vì nó không đề
cập việc gì sẽ xảy ra nếu điều kiện không
thoả.
Nếu bạn học giỏi thì bạn sẽ được thưởng .
Điều kiện đúng
Thực hiện công việc
?
Nếu trời mưa thì tôi sẽ ở nhà,
nếu trời không mưa thì tôi sẽ đến nhà bạn
Điều kiện đúng
Thực hiện công việc với điều kiện
đúng
Điều kiện không thoả mãn
Thực hiện công việc với điều kiện không
thoả
Là một mệnh đề đầy đủ vì nó đề cập việc gì sẽ
xảy ra nếu điều kiện không thoả
Trong ngôn ngữ
tin học, cấu trúc
“Nếu thì…”
được biểu diễn
như thế nào?
CẤU TRÚC RẼ NHÁNH
BÀI 9
Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Nội dung bài học
Rẽ nhánh


1
Cấu trúc IF … THEN
2
Câu lệnh ghép
3
Một số ví dụ
4
1. Rẽ nhánh
Ví dụ về mệnh đề “Nếu … thì”
→ Dạng phủ định của mệnh đề trên là:
Nếu điện không bị mất/ thì lớp sẽ học bình thường. (2)
Nếu điện bị mất/ thì lớp học sẽ được nghỉ. (1)
Dạng (1) hoặc (2) gọi là dạng thiếu của mệnh
đề.
Gộp (1) và (2) ta có dạng đủ của mệnh đề.
Nếu điện bị mất thì lớp học sẽ được nghỉ, nếu không thì lớp
sẽ học bình thường.

1. Rẽ nhánh
Dạng thiếu:
Nếu <điều kiện> đúng thì
thực hiện <công việc>
Dạng đủ:
Nếu <điều kiện> đúng thì thực
hiện <công việc 1> còn không
thì thực hiện <công việc 2>
Điều kiện
Câu lệnh 1
Câu lệnh 2
Đúng

Sai
Ví dụ:
Nếu a chia hết cho 2 thì a là số chẵn. (Dạng )
Nếu a chia hết cho 2 thì a là số chẵn còn không a là số lẻ.
(Dạng )
Ví dụ: Giải phương trình bậc hai:
ax2 + bx + c = 0
1. Rẽ nhánh
Input : Nhập a, b, c
Output : Xuất ra nghiệm của phương trình
bậc hai
Ví dụ: Giải phương trình bậc hai ax2+bx+c=0 (a≠0)
Hãy nêu các b c ướ
gi i ph ng trình ả ươ
b c hai?ậ
-
Nhập hệ số a,b,c
-
Tính Delta=b2 - 4ac
-
Nếu Delta <0 thì thông báo
PT vô nghiệm, ngược lại tính
và đưa ra nghiệm
Sau khi tính Delta, t
ùy
thuộc vào giá trị
Delta,
m
ột trong hai thao tác sẽ
thực hiện

Nhập a, b, c
Tính Delta = b2 – 4ac
Kiển tra
Delta < 0
Tính và đưa
ra nghiệm
Thông
báo vô
nghiệm
Kết thóc
Sai đúng
S thu t toán ơ đồ ậ
gi i ph ng tình ả ươ
b c 2 v ra sao?ậ ẽ
(a
≠ 0
)
1. Rẽ nhánh
Mệnh đề “Nếu … thì” và “Nếu … thì…, nếu không
thì…” có thể biểu diễn trong ngôn ngữ Pascal
được không???

Dạng Thiếu:
IF<điều kiện> THEN <câu lệnh> ;(1)

< điều kiện > kiểu logic sẽ cho
ra một trong hai giá trị: đúng
(TRUE) hoặc sai (FALSE).

(1)Dạng Thiếu: có nghĩa là nếu

biểu thức điều kiện đúng thì thực
hiện <câu lệnh 1>, nếu sai thì
câu lệnh này sẽ bỏ qua.
Có 2 dạng:
2.Cấu trúc IF … THEN
Dạng Đủ:
IF <điều kiện> THEN <câu lệnh 1>
ELSE <câu lệnh 2> ; (2)

< điều kiện > kiểu logic sẽ cho
ra một trong hai giá trị: đúng
(TRUE) hoặc sai (FALSE).

(2)Dạng Đủ: có nghĩa là nếu
biểu thức điều kiện đúng thì
thực hiện <câu lệnh 1>, nếu sai
thì thực hiện <câu lệnh 2>.
Chú ý:
-Dạng (1) thực ra là dạng (2) thu
gọn với <câu lệnh 2> là rỗng.
-Trước ElSE không có dấu ;

2.Cấu trúc IF … THEN
Sự giống nhau và khác nhau của hai dạng câu lệnh :
“If <biểu thức điều kiện> then….”
và “If <biểu thức điều kiện> then ….else…”
Hãy dùng câu l nh ệ
If then vi t l nh … ế ệ
xét các tr ng để ườ
h p c a Deltaợ ủ

IF Delta<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);

3.Câu lệnh ghép
Câu lệnh ghép là một câu lệnh được hợp thành từ nhiều
câu lệnh thành phần.
Câu lệnh ghép nhằm thực hiện thao tác gồm nhiều thao
tác thành phần, mỗi thao tác thành phần tương ứng với
một câu lệnh thành phần hoặc câu lệnh ghép khác.
VD:
if a < b then
begin
max:=b;
min:=a;
end;
Câu lệnh ghép bắt đầu bằng từ khóa Begin sau đó
là các câu lệnh, cuối cùng là từ khóa End với dấu ‘;’
Cú pháp:
begin
<Các câu lệnh > ;
end;
3.Câu lệnh ghép
program giai_ptBAC2 ;
uses crt ;
var a,b,c : real;
Delta, x1, x2 : real;

begin
clrscr ;
write ( ‘a, b, c: ’ ) ;
readln(a, b, c) ;
delta := b*b-4*a*c ;
if delta < 0 then
writeln (‘ Phuong trinh vo nghiem ’)
else

x1 := ( - b – sqrt (Delta)) / ( 2*a );
x2 := -b/a – x1 ;
writeln ( ‘ Phuong trinh co nghiem x1 = ’, x1:8:3, ‘ x2= ’,x2:8:3 ) ;

readln
end.
begin
end;
Hãy xác
nh Input đị
v Output à
c a b i ủ à
toán?
Ví dô 2: tìm 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.ặ ế ư ế
Input: nh p N t b n phímậ ừ à
Output: a s ng y c a n m N ra m n hìnhđư ố à ủ ă à
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,ố à ủ ă ậ à

ng c l iượ ạ In ra s ng y l 365ố à à
4. Một số ví dụ
Liệt kê
B1:Nhập N
B2: Kiểm tra N chia hết
cho 400 hoặc (N chia hết
cho 4 và không chia hết
cho 100)
B3:Nếu B2 đúng thì
thông báo năm N có 366
ngày và kết thúc thuật
toán
B4:Nếu B2 sai thông báo
năm N có 365 ngày và
kết thúc thuật toán
4. Một số ví dụ
Sơ đồ khối
Bắt đầu
Nhập N
Thông báo năm
này
có 365 ngày
Thông báo năm
này
có 366 ngày
(N mod 400=0) or ((N mod
4=0)
and (N mod 100<>0) )
Kết thúc
Thuật toán

Đúng
Sai
Em hãy khai báo bi n cho b i toán trên?ế à
Vi t i u ki n: ế đ ề ệ
N u ế N chia h t cho 400 ho c chia h t cho ế ặ ế
4 nh ng không chia h t cho 100ư ế
thì nh n s ng y c a n m nhu n, ậ ố à ủ ă ậ ng c ượ
l iạ nh n s ng y c a n m th ng.ậ ố à ủ ă ườ
Nh p v o n m N c n tính s ng yậ à ă ầ ố à
In ra k t qu ?ế ả
C ng củ ố

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;
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>;ệ

Câu 1: cú pháp biểu diễn cấu trúc rẽ nhánh dạng thiếu là:
A.Iff<biểu thức điều kiện>then<câu lệnh>;
B.Iff<biểu thức điều kiện>then<câu lệnh>else<câu lệnh>;
C.If<biểu thức điều kiện>then<câu lệnh>;
D.If<biểu thức điều kiện>then<câu lệnh>else<câu lệnh>;
C.If<biểu thức điều kiện>then<câu lệnh>;
Câu 2: cú pháp biểu diễn cấu trúc rẽ nhánh dạng đầy đủ là:
A.Iff<biểu thức điều kiện>then<câu lệnh>;
B.Iff<biểu thức điều kiện>then<câu lệnh>else<câu lệnh>;
C.If<biểu thức điều kiện>then<câu lệnh>;
D.If<biểu thức điều kiện>then<câu lệnh>else<câu lệnh>;
Câu 3: muốn kiểm tra đồng thời cả ba giá trị của A,B,C có cùng lớn
hơn 0 hay không ta viết câu lệnh if thế nào cho đúng?
A.If A,B,C > 0 then…
B.If A>0, B>0, C>0 then…
C.If (A>0)or (B>0)or(C >0) then…
D.If(A>0) and (B>0) and (C>0)then…
D.If<biểu thức điều kiện>then<câu lệnh>else<câu lệnh>;
D.If(A>0) and (B>0) and (C>0)then…
Câu 4: xét chương trình sau:
var a,b,c : integer;
BEGIN
write (‘a= ’); readln(a);
write (‘b= ’); readln(b);
write (‘c= ’); readln(c);
if a<b then a:=b;
if a<c then a:=c;
writeln(a);
END.
Những phát biểu nào sau đây là đúng khi chạy chương trình? Nếu nhập:

A. a= 7; b=10; c= 2007 thì kết quả chương trình ra 7;
B. a=7; b=10; c=2007 thì kết quả chương trình là 10;
C. a=7; b=10; c=2007 thì kết quả chương trình là 2007
D. a=5; b=1; c=1983 thì kết quả chương trình là 5;
E. a=5; b=1; c=1983 thì kết quả chương trình là 1;
F.a=5; b=1; c=1983 thì kết quả chương trình là 1983;
C. a=7; b=10; c=2007 thì kết quả chương trình là 2007
F.a=5; b=1; c=1983 thì kết quả chương trình là 1983;

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

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