Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Phạm Thị Hồng Phượng |
Ngày 10/05/2019 |
70
Chia sẻ tài liệu: Bài 9. Cấu trúc rẽ nhánh thuộc Tin học 11
Nội dung tài liệu:
Để thực hiện chương trình được viết bằng một ngôn ngữ lập trình ta cần phải làm gì?
KIỂM TRA BÀI CŨ:
Soạn thảo :Viết chương trình, nhập chương trình vào máy.
Dịch (Alt+F9): Phát hiện và thông báo lỗi cú pháp, NLT sửa lỗi.
Thực hiện chương trình (Ctrl+F9).
Nhập vào các giá trị chạy thử - Nhấn Enter.
chương 2: cấu trúc rẽ nhánh và lặp
CẤU TRÚC RẼ NHÁNH
Nội dung:
Rẽ Nhánh
Câu Lệnh If-Then
Câu Lệnh Ghép
Một Số Ví Dụ
Tháng 10 năm học 2008
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
1. RẼ NHÁNH
HÃY ĐƯA RA MỆNH ĐỀ NẾU- THÌ THEO HÌNH VẼ 2 ?
HS B
HS A
HÌNH VẼ 2
Nếu bạn A học trường 1 Thì rẽ bên trái
Nếu bạn B học trường 2 Thì rẽ bên phải
Nếu bạn A không học trường 2 Thì rẽ bên trái
HÃY ĐƯA RA MỆNH ĐỀ NẾU- KHÔNG THÌ THEO HÌNH VẼ 2 ?
HÌNH VẼ 1
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Nhập a,b,c
D b2 -4ac
D≥0?
Thông báo vô
Nghiệm, KT
Tính và đưa ra
Nghiệm, KT
Đ
S
Sơ đồ thể hiện sự rẽ nhánh
1. RẼ NHÁNH
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Nhập a,b,c
D b2 -4ac
D<0?
Thông báo
Nghiệm kép, KT
PT vô
Nghiệm, KT
Đ
S
Sơ đồ thể hiện sự rẽ nhánh
1. RẼ NHÁNH
D=0?
Đ
Thông báo 2
Nghiệm, KT
S
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
2. CÂU LỆNH IF-THEN
Điều kiện
Đ
S
Câu lệnh
Điều kiện
Đ
S
Câu lệnh 1
Câu lệnh 2
IF <Điều kiện> Then;
a. Dạng thiếu
IF <Điều kiện> Then
ELSE;
b. Dạng đủ
Nếu điều kiện đúng câu lệnh được thực hiện, ngược lại câu lệnh sẽ bị bỏ qua.
Nếu điều kiện đúng câu lệnh 1 được thực hiện, ngược lại câu lệnh 2 sẽ được thực hiện
Sau mỗi câu lệnh được kết thúc bằng dấu ; nhưng câu lệnh trước ELSE không có dấu ;
? Có nhận xét gì về câu lệnh trước ELSE
IF
Then
ELSE
Tên dành riêng (từ khóa)
Điều kiện :
Là biểu thức quan hệ hoặc biểu thức logic
Điều kiện :
Là câu lệnh đơn
Câu lệnh 1
Câu lệnh 2 :
Câu lệnh
Hãy so sánh hai cấu trúc trên?
Chú ý: Dạng đủ có thể lồng nhau, khi đó Else sẽ gắn với If gần nhất.
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
If a mod 2=0 then
Write( ‘ a la so chan ’);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then
Write(‘a, b, c la ba canh tam giac’)
Else
Write(‘ khong la ba canh tam giac’);
2. CÂU LỆNH IF-THEN
Ví dụ 1: Viết thông báo nếu số nguyên a chia hết cho 2 thì a là số chẳn .
Ví dụ 2: Kiểm tra xem 3 số nguyên a,b,c có phải 3 cạnh của tam giác không?
a mod 2=0
Nhập a
Đ
a là số chẳn
S
a>0,b>0,
c>0,a+b>c,
b+c>a,
a+c>b
Nhập a,b,c
Đ
a,b,c là 3 cạnh tam giác
S
a,b,c kgông là 3 cạnh
tam giác
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
3. CÂU LỆNH GHÉP
Sau Then, Else nếu thực hiện nhiều hơn một câu lệnh thì phải được đặt giữa BEGIN END (câu lệnh ghép)
If <Điều kiện> then
Begin
;
;
.. . . . . ..
;
End
Else
Begin
;
;
.. . . . . ..
;
End;
Ví du: D?i ch? 2 s? a, b sao cho s? b d?ng tru?c, s? l?n d?ng sau.
a=8;
b=2;
tg
a
b
8
2
If a>b then {doi cho b cho a}
BEGIN
tg:=a;
a:=b;
b:=tg;
Write(‘doi cho b cho a, ket qua la’, a,b);
END
Else Write(‘khong doi cho’);
Câu lệnh ghép
8
tg
2
a
8
b
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
4. MỘT SỐ VÍ DỤ
PROGRAM SOCHAN;
Var a: word;
BEGIN
Write(‘Nhap vao so nguyen a’);
Read(a);
If a mod 2=0 then
Write( ‘ a la so chan ’)
Readln
END.
Program kiemtra;
Uses Crt;
Var a,b,c: integer;
BEGIN
Clrscr;
Write(‘ Nhap vao 3 so nguyen a,b,c);
Readln(a,b,c);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then
Write(‘a, b, c la ba canh tam giac’)
Else
Write(‘ khong la ba canh tam giac’);
Readln
END.
VD2: Viết chương trình kiểm tra xem 3 số nguyên a, b, c nhập vào từ bàn phím có phải là 3 cạnh của tam giác không?
VD1: Viết chương trình thông báo số nguyên a nhập vào từ bàn phím là số chẳn?
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Program doicho;
Var a,b,tg: Integer;
BEGIN
Write(‘ Nhap vao 2 so a,b’); readln(a,b);
If a>b then {doi cho b cho a}
Begin
tg:=a;
a:=b;
b:=tg;
Write(‘ Ket qua tim duoc la:’, a,b);
End
Else
Write(‘khong doi cho’, a,b);
END.
VD3: Viết chương trình nhập 2 số a, b bất kỳ từ bàn phím, đổi chổ 2 số sao cho số bé đứng trước, số lớn đứng sau.
VD4: Tìm số lớn nhất trong 4 số nguyên a,b,c,d.
max:=a;
If b>max then max:=b
else
if c>max then max:=c
else max :=d
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
CỦNG CỐ
Cấu trúc câu lệnh IF-THEN có 2 dạng:
Dạng thiếu: IF <ĐiềuKiện> Then;
Dạng đủ: IF <ĐiềuKiện> Then
Else <;
<Điều kiện> là biểu thức quan hệ hoặc biểu thức logic
Dạng đủ có thể lồng nhau, khi đó Else sẽ gắn với If gần nhất.
VD: max:=a;
If b>max then max:=b else if c>max then max:=c else max :=d
Câu lệnh ghép
Sau Then, Else có nhiều hơn một thì phải được đặt giữa BEGIN END.
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
BÀI TẬP
Viết chương trình kiểm tra xem số nguyên a nhập vào có phải là tháng trong năm không?
Viết chương trình giải phương trình bậc 2: ax2+b+c=0 (a≠0)
HD:(xét các trường hợp của delta (delta <0, delta =0, delta >0))
Viết chương trình giải phương trình bậc nhất: ax+b=0
HD: xét các trường hợp của a,b : a ≠ 0
ngược lại xét : b=0,
ngược lại xét: b ≠ 0
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Program Giảipt_bac2;
Var a,b, c,d: Integer;
x,x1,x2: Real;
BEGIN
Write(‘ Nhap vao 3 so a,b,c’); readln(a,b,c);
D:=sqr(b)-4*a*c
If D<0 then writeln(‘phuong trinh vo nghiem’)
Else
If D=0 Then Writeln(‘ Phuong trinh co nghiem kep x= ‘, -b/(2*a))
Else
Begin
x1:=(-b+sqrt(d))/(2*a); x2:=(-b+sqrt(d))/2*a;
Writeln(‘ phuong trinh co 2 nghiem la:’, ‘x1=‘,x1,’x2=‘,x2);
End;
END.
VD4: Vi?t chuong trình gi?i phuong trình b?c 2: ax2+b+c=0 (a?0)
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
2. CÂU LỆNH GHÉP
Sau Then, Else nếu thực hiện nhiều hơn một câu lệnh thì phải được đặt giữa BEGIN END (câu lệnh ghép)
Ví du: Nh?p 2 s? nguyn a,b. D?i ch? 2 s? sao cho s? b d?ng tru?c, s? l?n d?ng sau.
If a>b then {doi cho b cho a}
BEGIN
tg:=a;
a:=b;
b:=tg;
Write(‘doi cho b cho a, ket qua la’, a,b);
END
Else Write(‘khong doi cho’);
Câu lệnh ghép
Nhập a,b
a>b
S
Kết quả là
a,b
tg a; a b; b tg
Kết quả là
a,b
Đ
tg
a
b
8
2
a=8;
b=2;
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
KIỂM TRA BÀI CŨ:
Soạn thảo :Viết chương trình, nhập chương trình vào máy.
Dịch (Alt+F9): Phát hiện và thông báo lỗi cú pháp, NLT sửa lỗi.
Thực hiện chương trình (Ctrl+F9).
Nhập vào các giá trị chạy thử - Nhấn Enter.
chương 2: cấu trúc rẽ nhánh và lặp
CẤU TRÚC RẼ NHÁNH
Nội dung:
Rẽ Nhánh
Câu Lệnh If-Then
Câu Lệnh Ghép
Một Số Ví Dụ
Tháng 10 năm học 2008
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
1. RẼ NHÁNH
HÃY ĐƯA RA MỆNH ĐỀ NẾU- THÌ THEO HÌNH VẼ 2 ?
HS B
HS A
HÌNH VẼ 2
Nếu bạn A học trường 1 Thì rẽ bên trái
Nếu bạn B học trường 2 Thì rẽ bên phải
Nếu bạn A không học trường 2 Thì rẽ bên trái
HÃY ĐƯA RA MỆNH ĐỀ NẾU- KHÔNG THÌ THEO HÌNH VẼ 2 ?
HÌNH VẼ 1
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Nhập a,b,c
D b2 -4ac
D≥0?
Thông báo vô
Nghiệm, KT
Tính và đưa ra
Nghiệm, KT
Đ
S
Sơ đồ thể hiện sự rẽ nhánh
1. RẼ NHÁNH
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Nhập a,b,c
D b2 -4ac
D<0?
Thông báo
Nghiệm kép, KT
PT vô
Nghiệm, KT
Đ
S
Sơ đồ thể hiện sự rẽ nhánh
1. RẼ NHÁNH
D=0?
Đ
Thông báo 2
Nghiệm, KT
S
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
2. CÂU LỆNH IF-THEN
Điều kiện
Đ
S
Câu lệnh
Điều kiện
Đ
S
Câu lệnh 1
Câu lệnh 2
IF <Điều kiện> Then
a. Dạng thiếu
IF <Điều kiện> Then
ELSE
b. Dạng đủ
Nếu điều kiện đúng câu lệnh được thực hiện, ngược lại câu lệnh sẽ bị bỏ qua.
Nếu điều kiện đúng câu lệnh 1 được thực hiện, ngược lại câu lệnh 2 sẽ được thực hiện
Sau mỗi câu lệnh được kết thúc bằng dấu ; nhưng câu lệnh trước ELSE không có dấu ;
? Có nhận xét gì về câu lệnh trước ELSE
IF
Then
ELSE
Tên dành riêng (từ khóa)
Điều kiện :
Là biểu thức quan hệ hoặc biểu thức logic
Điều kiện :
Là câu lệnh đơn
Câu lệnh 1
Câu lệnh 2 :
Câu lệnh
Hãy so sánh hai cấu trúc trên?
Chú ý: Dạng đủ có thể lồng nhau, khi đó Else sẽ gắn với If gần nhất.
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
If a mod 2=0 then
Write( ‘ a la so chan ’);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then
Write(‘a, b, c la ba canh tam giac’)
Else
Write(‘ khong la ba canh tam giac’);
2. CÂU LỆNH IF-THEN
Ví dụ 1: Viết thông báo nếu số nguyên a chia hết cho 2 thì a là số chẳn .
Ví dụ 2: Kiểm tra xem 3 số nguyên a,b,c có phải 3 cạnh của tam giác không?
a mod 2=0
Nhập a
Đ
a là số chẳn
S
a>0,b>0,
c>0,a+b>c,
b+c>a,
a+c>b
Nhập a,b,c
Đ
a,b,c là 3 cạnh tam giác
S
a,b,c kgông là 3 cạnh
tam giác
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
3. CÂU LỆNH GHÉP
Sau Then, Else nếu thực hiện nhiều hơn một câu lệnh thì phải được đặt giữa BEGIN END (câu lệnh ghép)
If <Điều kiện> then
Begin
.. . . . . ..
End
Else
Begin
.. . . . . ..
End;
Ví du: D?i ch? 2 s? a, b sao cho s? b d?ng tru?c, s? l?n d?ng sau.
a=8;
b=2;
tg
a
b
8
2
If a>b then {doi cho b cho a}
BEGIN
tg:=a;
a:=b;
b:=tg;
Write(‘doi cho b cho a, ket qua la’, a,b);
END
Else Write(‘khong doi cho’);
Câu lệnh ghép
8
tg
2
a
8
b
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
4. MỘT SỐ VÍ DỤ
PROGRAM SOCHAN;
Var a: word;
BEGIN
Write(‘Nhap vao so nguyen a’);
Read(a);
If a mod 2=0 then
Write( ‘ a la so chan ’)
Readln
END.
Program kiemtra;
Uses Crt;
Var a,b,c: integer;
BEGIN
Clrscr;
Write(‘ Nhap vao 3 so nguyen a,b,c);
Readln(a,b,c);
If (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then
Write(‘a, b, c la ba canh tam giac’)
Else
Write(‘ khong la ba canh tam giac’);
Readln
END.
VD2: Viết chương trình kiểm tra xem 3 số nguyên a, b, c nhập vào từ bàn phím có phải là 3 cạnh của tam giác không?
VD1: Viết chương trình thông báo số nguyên a nhập vào từ bàn phím là số chẳn?
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Program doicho;
Var a,b,tg: Integer;
BEGIN
Write(‘ Nhap vao 2 so a,b’); readln(a,b);
If a>b then {doi cho b cho a}
Begin
tg:=a;
a:=b;
b:=tg;
Write(‘ Ket qua tim duoc la:’, a,b);
End
Else
Write(‘khong doi cho’, a,b);
END.
VD3: Viết chương trình nhập 2 số a, b bất kỳ từ bàn phím, đổi chổ 2 số sao cho số bé đứng trước, số lớn đứng sau.
VD4: Tìm số lớn nhất trong 4 số nguyên a,b,c,d.
max:=a;
If b>max then max:=b
else
if c>max then max:=c
else max :=d
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
CỦNG CỐ
Cấu trúc câu lệnh IF-THEN có 2 dạng:
Dạng thiếu: IF <ĐiềuKiện> Then
Dạng đủ: IF <ĐiềuKiện> Then
Else <
<Điều kiện> là biểu thức quan hệ hoặc biểu thức logic
Dạng đủ có thể lồng nhau, khi đó Else sẽ gắn với If gần nhất.
VD: max:=a;
If b>max then max:=b else if c>max then max:=c else max :=d
Câu lệnh ghép
Sau Then, Else có nhiều hơn một
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
BÀI TẬP
Viết chương trình kiểm tra xem số nguyên a nhập vào có phải là tháng trong năm không?
Viết chương trình giải phương trình bậc 2: ax2+b+c=0 (a≠0)
HD:(xét các trường hợp của delta (delta <0, delta =0, delta >0))
Viết chương trình giải phương trình bậc nhất: ax+b=0
HD: xét các trường hợp của a,b : a ≠ 0
ngược lại xét : b=0,
ngược lại xét: b ≠ 0
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
Program Giảipt_bac2;
Var a,b, c,d: Integer;
x,x1,x2: Real;
BEGIN
Write(‘ Nhap vao 3 so a,b,c’); readln(a,b,c);
D:=sqr(b)-4*a*c
If D<0 then writeln(‘phuong trinh vo nghiem’)
Else
If D=0 Then Writeln(‘ Phuong trinh co nghiem kep x= ‘, -b/(2*a))
Else
Begin
x1:=(-b+sqrt(d))/(2*a); x2:=(-b+sqrt(d))/2*a;
Writeln(‘ phuong trinh co 2 nghiem la:’, ‘x1=‘,x1,’x2=‘,x2);
End;
END.
VD4: Vi?t chuong trình gi?i phuong trình b?c 2: ax2+b+c=0 (a?0)
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
2. CÂU LỆNH GHÉP
Sau Then, Else nếu thực hiện nhiều hơn một câu lệnh thì phải được đặt giữa BEGIN END (câu lệnh ghép)
Ví du: Nh?p 2 s? nguyn a,b. D?i ch? 2 s? sao cho s? b d?ng tru?c, s? l?n d?ng sau.
If a>b then {doi cho b cho a}
BEGIN
tg:=a;
a:=b;
b:=tg;
Write(‘doi cho b cho a, ket qua la’, a,b);
END
Else Write(‘khong doi cho’);
Câu lệnh ghép
Nhập a,b
a>b
S
Kết quả là
a,b
tg a; a b; b tg
Kết quả là
a,b
Đ
tg
a
b
8
2
a=8;
b=2;
CẤU TRÚC RẼ NHÁNH
RẼ NHÁNH
CÂU LỆNH IF-THEN
CÂU LỆNH GHÉP
MỘT SỐ VÍ DỤ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phạm Thị Hồng Phượng
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)