Nếu trời mưa thì tôi sẽ ở nhà, Đ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ó đ
Trang 1GIÁ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
Trang 2Đâ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
?
Trang 3Nếu trời mưa thì tôi sẽ ở nhà,
Đ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ả
Trang 4Trong ngôn ngữ tin học, cấu trúc
“Nếu thì…” được biểu diễn như thế nào?
Trang 5CẤU TRÚC RẼ NHÁNH
BÀI 9
Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Trang 6Nộ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
Trang 71 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.
Trang 8 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 đủ:
hiện < công việc 1 > còn không
Trang 9Ví 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:
Trang 10Ví dụ: Giải phương trình bậc hai ax2+bx+c=0 (a0)
Hãy nêu các bước c
gi i phải phương trình ương trình ng trình
b c hai?ậ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
Trang 11Sau khi tính Delta, tùy
một trong hai thao tác sẽ
thực hiện
Nhập a, b, c
Tính Delta = b 2 – 4ac
Kiển tra Delta < 0
S ơng trình đồ thuật toán thu t toán ậc hai?
gi i phải phương trình ương trình ng tình
b c 2 v ra sao?ậc hai? ẽ ra sao?
(a ≠ 0)
Trang 121 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???
Trang 13Dạ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).
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
Điều kiện Sai
Câu lệnh Đúng
Dạng thiếu
Trang 14Dạ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).
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
Trang 152.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…”
Trang 16Hãy dùng câu l nh ệnh
If then vi t l nh … then viết lệnh ết lệnh ệnh
xét các tr ng
để xét các trường ường
h p c a Deltaợp của Delta ủa Delta
IF Delta<0 THEN Writeln(‘phuong trinh vo nghiem’)
Trang 17Câ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;
Trang 19Ví 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 ố ngày của năm N, biết rằng năm nhuận là năm chia hết ủa năm N, biết rằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ết rằng năm nhuận là năm chia hết ằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ế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.ặc chia hết cho 4 nhưng không chia hết cho 100 ết rằng năm nhuận là năm chia hết ưng không chia hết cho 100 ết rằng năm nhuận là năm chia hết
Input: nh p N t b n phímận là năm chia hết ừ bàn phím àn phím
Output: đưng không chia hết cho 100.a s ng y c a n m N ra m n hìnhố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím ủa năm N, biết rằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết àn phím
N uết rằng năm nhuận là năm chia hết N chia h t cho 400 ết rằng năm nhuận là năm chia hết ho c ặc chia hết cho 4 nhưng không chia hết cho 100 N
chia h t cho 4 nh ng không ết rằng năm nhuận là năm chia hết ưng không chia hết cho 100
chia h t cho 100ết rằng năm nhuận là năm chia hết
thì In ra s ng y c a n m nhu n l 366,ố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím ủa năm N, biết rằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ận là năm chia hết àn phím
ng ưng không chia hết cho 100.ợc lại ạic l i In ra s ng y l 365ố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím àn phím
4 Một số ví dụ
Trang 20Liệ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
Kết thúc Thuật toán
Đúng
Sai
Trang 21Em hãy khai báo bi n cho b i toán trên? ết rằng năm nhuận là năm chia hết àn phím
Vi t i u ki n: ết rằng năm nhuận là năm chia hết đ ều kiện: ện:
N u ết rằng năm nhuận là năm chia hết N chia h t cho 400 ho c chia h t cho ết rằng năm nhuận là năm chia hết ặc chia hết cho 4 nhưng không chia hết cho 100 ết rằng năm nhuận là năm chia hết
4 nh ng không chia h t cho 100 ưng không chia hết cho 100 ết rằng năm nhuận là năm chia hết
thì nh n s ng y c a n m nhu n, ận là năm chia hết ố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím ủa năm N, biết rằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ận là năm chia hết ng ưng không chia hết cho 100.ợc lại c
l i ại nh n s ng y c a n m th ận là năm chia hết ố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím ủa năm N, biết rằng năm nhuận là năm chia hết ăm N, biết rằng năm nhuận là năm chia hết ưng không chia hết cho 100.ờng ng.
Nh p v o n m N c n tính s ng y ận là năm chia hết àn phím ăm N, biết rằng năm nhuận là năm chia hết ần tính số ngày ố ngày của năm N, biết rằng năm nhuận là năm chia hết àn phím
In ra k t qu ? ết rằng năm nhuận là năm chia hết ả?
Trang 22Củng cố
C u trúc mô t các m nh ấu trúc mô tả các mệnh đề: ả các mệnh đề: ệnh đề: đề: :
“ N u ếu … thì …”
“ N u ếu … thì … ng ược lại ại c l i …”
g i là c u trúc r nhánh ọi là cấu trúc rẽ nhánh ấu trúc mô tả các mệnh đề: ẽ nhánh.
l nh r nhánh d ng thi u ệnh đề: ẽ nhánh ại ếu
Trang 23Câ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>;
Trang 24Câ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…
Trang 25Câ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;
Trang 26Bài tập thêm: viết chương trình lập trình nhập từ bàn phím hai số
nguyên a,b đưa ra màn hình giá trị lớn hơn trong hai số đó.
Trang 27Tiết học đến đây
là hết rồi!!
Trang 28Hai dạng câu lệnh if – then như sau:
Điều kiện là biểu thức quan hệ hoặc logic.
Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal.
Giống nhau: Hai câu lệnh đều cùng là câu lệnh rẽ nhánh và khi
gặp một điều kiện nào đó thì chọn lựa thực hiện thao tác thích hợp.
Khác nhau: Trong câu lệnh if – then dạng thiếu, nếu điều kiện
không đúng thì thoát khỏi cấu trúc rẽ nhánh, thực hiện câu lệnh tiếp theo của chương trình, còn trong câu lệnh if – then dạng đủ, nếu điều kiện không đúng thì thực hiện công việc 2, sau đó mới thoát khỏi cấu trúc rẽ nhánh, thực hiện câu lệnh tiếp theo của
chương trình.