Bai giang ctrn
-
Upload
xuan-nguyen -
Category
Documents
-
view
168 -
download
3
Transcript of Bai giang ctrn
GIÁO VIÊN : NGUYỄN THỊ THANH XUÂN
SỞ GDĐT TP HỒ CHÍ MINHTRƯỜ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ÁNHBÀI 9
Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Nội dung bài học
Rẽ nhánh1
Cấu trúc IF … THEN2
Câu lệnh ghép3
Một số ví dụ4
1. Rẽ nhánhVí 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Điều kiện
Câu lệnh 1Câu lệnh 1
Câu lệnh 2Câ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, cOutput : 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 (a0)
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
Điều kiện
Sai
Câu lệnh Đúng
Dạng thiếu
Điều kiệnSaiCâu lệnh 1Câu lệnh 2
Đúng
Dạng đủ
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
beginmax:=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épprogram 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 ) ; readlnend.
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ímOutput: đư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 NB2: 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ánB4: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úcThuậ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à 2007D. 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;
Bà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ố đó.
Mở rộng cho ba số a, b, c.
Dặn dòVề nhà:
1. Làm bài tập : 1, 2, 4 trang 51 SGK
2. Chuẩn bị bài 10: TỔ CHỨC LẶP
Tiết học đến đây là hết rồi!!
Hai dạng câu lệnh if – then như sau:Dạng thiếu:if <điều kiện> then <câu lệnh>;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à 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.