•Trong tin học: -Rẽ nhánh nằm trong thuật toán mà các thao tác tiếp theo sẽ phụ thuộc vào kết quả nhận được từ bước trước đó -Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi là r[r]
Trang 1Made by:
Group 1
Made by:
Group 1
TIN HỌC 11
Trang 3ừm, để
tớ nghĩ
đã.
Nếu ngày mai
m a thì tớ nghỉ
à! Nếu ngày mai
m a thì tớ nghỉ,
nếu không m a thì
tớ đến nhà cậu
học nhé
Này, ngày mai cậu có đi học nhóm không?
Trang 4Nếu thì
Nếu … thì … , nếu không thì
…
Cấu trúc dùng để mô tả các mệnh đề có dạng nh trên gọi là
cấu trúc rẽ nhánh.
Cấu trúc dùng để mô tả các mệnh đề có dạng nh trên gọi là
cấu trúc rẽ nhánh.
Trang 5Trò chơi khởi động:
Bạn hãy đặt một câu có sử dụng quan hệ từ
“nếu thì”
và với “nếu thì , nếu không thì ”
1 “Nếu chăm chỉ thì bạn sẽ học giỏi”
1’ “Nếu chăm chỉ thì bạn sẽ học giỏi, nếu không thì bạn sẽ nhận điểm kém
2 “Nếu chăm chú nghe giảng thì bạn sẽ hiểu bài rất tốt”
2’ “Nếu chăm chú nghe giảng thì bạn sẽ hiểu bài rất tốt, nếu không thì bạn
sẽ phải cố gắng hơn rất nhiều để hiểu bài”
Trang 6$$$ Đặt vấn đề: đối với những bài toán cần phải biện luận, ví dụ như giải phương trình ax+bx+c=0 (a≠0) thì có cần thao tác rẽ nhánh hay không?
* Rẽ nhánh là thực hiện công việc,
thao tác theo hướng này hoặc hướng
khác nếu một điều kiện cụ thể thỏa
mãn
Trang 7Phương pháp giải phương trình bậc hai ax2+bx+c=0 (a ≠ 0)
Lời giải
Tính biệt thức = b2 – 4ac Xét
+ Nếu < 0: Phương trình vô nghiệm.
+Nếu = 0: Phương trình có nghiệm kép.
+Nếu > 0: Phương trình có hai nghiệm phân biệt
Trang 8Sai Đúng
Thông báo
vô nghiệm
Tính và đưa
ra nghiệm th c ự
r i k t t ồ ế húc
Nhập a, b, c
D ← b2-4ac
D≥0
Trang 9• Nội dung cần nắm
-Hiểu được rẽ nhánh là gì?
-Khi nào cần dùng đến rẽ nhánh?
•Trong tin học:
-Rẽ nhánh nằm trong thuật toán mà các thao tác tiếp theo sẽ phụ thuộc vào kết quả nhận được từ bước
trước đó
-Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi là rẽ nhánh thiếu và đủ
- Mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc rẽ nhánh
Trang 104 Một số ví dụ
Ví dụ1: Tìm nghiệm thực của phương trình bậc 2 : ax 2 +bx+c=0 (a 0)
Xây dựng ý tưởng
- Nhập 3 số a,b,c
- Tính
delta:=b*b-4*a*c
- Nếu delta<0 thì
pt vô nghiêm,
ngược lại thì
phương trình có
nghiệm
Program giai_ptb2;
Var a, b, c, delta, x1, x2: real;
Begin
write(‘Nh ap he so a,b,c tu ban phim: ’);
readln(a,b,c);
delta:= b*b - 4*a*c;
if delta < 0 then
writeln(‘phuong trinh vo nghiem’)
else {delta >= 0}
begin
x1:=(-b + sqrt (delta))/(2*a);
x2:= -b/a – x1;
writeln(‘x1=‘,x1:8:2,
‘x2=‘,x2:8:2);
end ;
readln
End.
Dùng câu lệnh
if-then dạng đủ
Trang 11Ví dụ2:
Tìm số ngày của 1 năm N 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.
- Hướng dẫn: Trong biểu thức điều kiện ta
sử dụng các phép toán logic như là or , and
để gộp các điều kiện lại với nhau.
BTĐK ( (N mod 400 = 0) or (N mod 4 = 0) and
(N mod 100< >0) )
- Dùng cấu trúc dạng đủ để lập trình cho bài
toán trên ?
Trang 12* Chöông trình
Program so_ngay;
Var N, SN: integer;
Begin
write(‘ Nhap vao nam = ‘);
readln(N);
if ((N mod 400 = 0) or (N mod 4 = 0) and (N mod 100<>0)) then SN:= 366
else
SN:=365;
writeln(‘So ngay cua nam ’,N,’ la ’,SN);
Readln
End.
Trang 13Ví dụ 3: Tìm giá
trị lớn nhất
trong ba số a, b,
c?
Ví dụ 6: Kiểm
tra xem n, m có cùng tính chẵn
lẻ không?
Ví dụ 4: Tìm giá
trị nhỏ nhất trong ba số a, b, c?
Ví dụ 5: Kiểm
tra xem x có
chia hết cho 5
và 7 không?
Trang 14Program vidu1;
begin
clrscr;
write('nhap vao ba so a, b, c: ');
readln(a,b,c);
max:=a;
if max<b then max:=b;
if max<c then max:=c;
writeln('gia tri lon nhat: ',max:6:1); readln
end.
Trang 15program vidu2;
begin
clrscr;
write('nhap x= '); readln(x);
if (x mod 5 = 0) and (x mod 7= 0) then
writeln(x,' chia het cho 5 va 7')
7');
readln
end.
Trang 16program vidu3;
begin
clrscr;
write('nhap vao ba so a, b, c: ');
readln(a,b,c);
min:=a;
if min>c then min:=c;
writeln('gia tri nho nhat: ',min:6:1); readln
end.
Trang 17program vidu4;
uses crt;
var n,m:integer;
begin
clrscr;
write('nhap n, m: '); readln(n,m);
writeln(n,' va ',m,' cung tinh chan le') else writeln(n,' va ',m,' khong cung tinh
chan le');
readln
end.