NÕu biÓu thøc ®iÒu kiÖn nhËn gi¸ trÞ sai th× thùc hiÖn c©u lÖnh, ngượclại thì thực hiện câu lệnh khác D... Nhãm 1: Cõu 2: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây đúng A.[r]
Trang 1CH¦¥NG III: cÊu tróc rÏ nh¸nh vµ lÆp
Bµi 9: CÊu tróc rÏ nh¸nh(TiÕt 1)
l RÏ nh¸nh
l C©u lÖnh if…then
l C©u lÖnh ghÐp
Trang 21 rẽ nhánh
Thường ngày chúng ta có những công việc chỉ có
được thực hiện khi một điều kiện cụ thể nào đó được
thoả mãn
Trang 3Nếu hôm nay không có
việc gì thì mình sẽ đi
xem Nam đá bóng
Nếu tối nay trời mưa thì mình sẽ nghỉ học, nếu không thì mình
sẽ đi học
Trang 4- Hai dạng mệnh đề:
•Dạng thiếu:
Nếu….thỡ
•Dạng đủ:
Nếu….thỡ….nếu khụng thỡ
Trang 5Nhập a, b, c (a 0) Tớnh D = b 2 - 4ac Nếu D < 0 thì PTVN Nếu D0 thì PT có nghiệm
Xét ví dụ sau:
Ví dụ: Kiểm tra phương trình bậc hai:
ax 2 +bx+c=0 (a 0) có nghiệm không?
Em nào có thể viết được thuật toán kiểm tra phương
trình có nghiệm?
Trang 6Như vậy sau khi tính D,
tuỳ thuộc vào vai trò
của D, một trong 2
thao tác sẽ được thực
hiện Delta D
Nhập a, b, c
D b2 – 4ac
D ≥ 0 ?
Kết thúc
Sơ đồ thuật toán kiểm tra phương trình bậc 2 (a 0) có
nghiệm
Trang 7-Như vậy trong nhiều thuật toán, các thaotác tiếp theo
sẽ phụ thuộc vào kết quả nhận được từ các bước trước đó
-Cấu trúc dùng để mô tả các mệnh đề như trên được gọi
la cấu trúc rẽ nhánh
Trang 8IF <điều kiện> THEN <câu lệnh>;
a) Dạng thiếu
2 Câu lệnh IF-THEN
Nếu <điều kiện > đúng thì <câu lệnh> sẽ đư ợc thực hiện, ngược lại thì <câu lệnh> sẽ bị bỏ qua.
IF <điều kiện > THEN <câu lệnh 1>
ELSE <câu lệnh 2>;
b) Dạng đủ
Trong đó
ỉĐiều kiện là biểu thức logic.
ỉCâu lệnh, câu lệnh 1, câu lệnh 2 là một lệnh trong Pascal.
Nếu <điều kiện> đúng thỡ <câu lệnh 1> được thực hiện,
ngược lại thì <câu lệnh 2> đư ợc thực hiện.
Trang 92 Câu lệnh IF-THEN (tt)
SAI
Đúng
Câu lệnh
Điều kiện
Sơ đồ khối biểu diễn câu lệnh dạng thiếu
Trang 102 Câu lệnh IF-THEN (tt)
Câu lệnh 1
Điều kiện
Sơ đồ khối biểu diễn câu lệnh dạng đủ
Câu lệnh 2
Trang 11- Theo cấu trúc của câu lệnh dạng thiếu ta co thể viết câu lệnh kiểm tra như sau:
If (D<0)then write(‘PTVN);
If(D>=0) then write (‘PT co nghiem’);
- Câu lệnh kiểm tra dựa vào câu lệnh dạng đủ:
If (D<0) then write(‘PTVN) Else write (‘PT co nghiem’);
Ví dụ: Kiểm tra phương trình bậc hai:
ax 2 +bx+c=0 (a 0) có nghiệm không?
Trang 12< C¸c c©u lÖnh>;
END;
3 C©u lÖnh ghÐp
IF D<0 THEN Writeln(‘Phuong trinh vo nghiem’) ELSE
BEGIN
X1:= (-B + SQRT(D))/(2*A);
X2:= (-B - SQRT(D))/(2*A);
END;
VÝ dô
Trong ng«n ng÷ lËp tr×nh cho phÐp gép mét d·y c©u lÖnh thµnh mét c©u lÖnh ghÐp
Trong Turbo Pascal, c©u lÖnh ghÐp cã d¹ng nh sau:
Trang 13Nhóm 1:
Cõu 1: Cú pháp If<điều kiện>then<câu lệnh>; có nghĩa là:
A Nếu biểu thức điều kiện nhận giá trị đúng thì thực hiện câu lệnh, ngược lại thì câu lệnh bị bỏ qua
B Nếu biểu thức điều kiện nhận giá trị sai thì thực hiện câu lệnh, ngược lại thì bỏ qua
C Nếu biểu thức điều kiện nhận giá trị sai thì thực hiện câu lệnh, ngược lại thì thực hiện câu lệnh khác
D Đáp án B và C đúng
Trang 14Nhóm 1:
Cõu 2: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây đúng
A If(n mod 10) then write(‘n la so tron chuc’)
Else write(‘n khong la so tron chuc’);
B If(n div 10 = 0) then write(‘n la so tron chuc’);
Else write(‘n khong la so tron chuc’);
C If(n mod 10 = 0) then write(‘n la so tron chuc’)
Else write(‘n khong la so tron chuc’);
D Đáp án A và C đúng
Đỏp ỏn: Cõu C
Trang 15Nhóm 2:
Câu hỏi:Kết quả của đoạn chương trình sau là gì?
Var x, y: integer;
Begin
x:=10; y:=15;
If(x>y) then x:=x-y
Else y:=y-x;
A y=5 và x=10 B.X=5 và y=15
C.X=10 và y=15 D.Chương trình báo lỗi
Trang 16Nhóm 3:
Cho tình huống sau: Trong một giờ học, GV có tổ chức một trò chơi,GV chia lớp thành 4 nhóm, mỗi nhóm một câu hỏi, nếu nhóm nào có câu trả lời đạt điểm 10 thì sẽ có thưởng, ngược lại thì không
có thưởng
Yêu cầu: Em hãy sử dụng câu lệnh If…then để mô tả tình huống trên
Câu lệnh:
If (d=10) then write(‘co phan thuong’)
Else write(‘khong co phan thuong’);
Trang 17Nhóm 4:
Câu 1:Trong ngôn ngữ lập trình Pascal, muốn kiểm tra đồng thời cả 3 giá trị của A, B, C có cùng lớn hơn 0 hay không thì ta viết câu lệnh
If thế nào cho đúng
A If A,B,C>0 then……
B If (A>0) and (B>0) and (C>0) then…
C If A>0 and B>0 and C>0 then…
D If (A>0) or (B>0) or (C>0) then…
Đáp án: B
Trang 18Nhóm 4:
Câu 2: Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây đúng với câu lệnh If…then
A Nếu sau Else muốn thực hiện nhiều câu lệnh thì các lệnh phải
được đặt giữa Begin…End;
B Nếu sau Else muốn thực hiện nhiều câu lệnh thì các lệnh phải
được đặt trước Begin…End;
C Nếu sau Else muốn thực hiện nhiều câu lệnh thì các lệnh phải
được đặt giữa hai dấu ngoặc đơn
D Nếu sau Else muốn thực hiện nhiều câu lệnh thì các lệnh phải
được đặt giữa Begin…End
Trang 19Củng cố
Câu lệnh If…then
- Dạng thiếu:
-Dạng đủ:
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 lệnh ghép:
BEGIN
END;
Trang 20Bài tập về nh�:
1.Ôn lại bài học hôm nay
2 Xem trước mục 4: Một số ví dụ 3.Làm bài tập 1, 2, 4/50, 51/ SGK