28
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

Bai giang ctrn

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Bai giang ctrn

Đâ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

Page 3: Bai giang ctrn

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ả

Page 4: Bai giang ctrn

Trong ngôn ngữ

tin học, cấu trúc “Nếu ..thì…”

được biểu diễn như thế nào?

Page 5: Bai giang ctrn

CẤU TRÚC RẼ NHÁNHBÀI 9

Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP

Page 6: Bai giang ctrn

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

Page 7: Bai giang ctrn

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.

Page 8: Bai giang ctrn

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

Page 9: Bai giang ctrn

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

Page 10: Bai giang ctrn

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

Page 11: Bai giang ctrn

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)

Page 12: Bai giang ctrn

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???

Page 13: Bai giang ctrn

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

Page 14: Bai giang ctrn

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

Page 15: Bai giang ctrn

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…”

Page 16: Bai giang ctrn

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

Page 17: Bai giang ctrn

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;

Page 18: Bai giang ctrn

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;

Page 19: Bai giang ctrn

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ụ

Page 20: Bai giang ctrn

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

Page 21: Bai giang ctrn

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ả?

Page 22: Bai giang ctrn

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

Page 23: Bai giang ctrn

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

Page 24: Bai giang ctrn

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…

Page 25: Bai giang ctrn

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;

Page 26: Bai giang ctrn

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

Page 27: Bai giang ctrn

Tiết học đến đây là hết rồi!!

Page 28: Bai giang ctrn

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.