Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Lã Thị Thảo An |
Ngày 10/05/2019 |
251
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:
1/ Để nhập một số vào từ bàn phím chúng ta dùng cặp thủ tục nào? Hãy cho ví dụ?
Kiểm tra bài cũ
CHƯƠNG 3
CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI 9
C?U TRC R? NHNH
Nếu mai trời không mưa thì An sẽ đến nhà Bình.
Nếu mai trời không mưa thì An sẽ đến nhà Bình, nếu mưa thì An sẽ gọi điện cho Bình.
1. Rẽ nhánh
Nếu …. thì….
Nếu …. thì…., nếu không thì…
Cấu trúc dùng để mô tả các mệnh đề đó gọi là cấu
trúc rẽ nhánh thiếu và đủ.
1. Rẽ nhánh
VD 2: Giải phương trình bậc hai: ax2 + bx + c =0
Tính D:=b*b+4a*c
Sơ đồ
Hãy nêu cách giải phương trình đó?
2. Câu lệnh if - then
a. Dạng thiếu:
if <điều kiện> then;
Trong đó:
- Điều kiện là biểu thức lôgic.
- Câu lệnh là một câu lệnh của Pascal.
Sơ đồ thể hiện cấu trúc if -then
2. Câu lệnh if - then
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc rẽ nhánh sau:
Nếu d<0 thì phương trình vô nghiệm.
Nếu a mod 2 =0 thì a là số chẵn.
if <điều kiện> then;
a. if d<0 then writeln(‘phuong trinh vo nghiem’);
b. if a mod 2 =0 then writeln(‘a la so chan’);
Giải
2. Câu lệnh if – then
b. Dạng đủ
if <điều kiện> then else ;
Sơ đồ cấu trúc if - then
Ý nghĩa: Tính và kiểm tra điều kiện. Nếu điều kiện đúng thì câu lệnh1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện.
đúng
Sai
2. Câu lệnh if - then
if <điều kiện> then else ;
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc rẽ nhánh sau:
Nếu d<0 thì phương trình vô nghiệm, ngược có nghiệm.
Nếu a mod 2=0 thì a là số chẵn, ngược lại a là số lẻ.
Giải
a. if d<0 then writeln(‘ phuong trinh vo nghiem’) else writeln(‘phuong co nghiem’);
b. if a mod 2=0 then writeln(‘a la so chan’) else
writeln(‘a la so le’);
3. Câu lệnh ghép
Trong Pascal cho phép gộp một dãy câu lệnh thành một câu lệnh ghép. Câu lệnh ghép có dạng.
.
Chú ý: Trước từ khoá else câu lệnh không có dấu chấm phẩy.
Begin
;
End;
Chú ý: sau end phải có dấu chấm phẩy;
3. Câu lệnh ghép
VD: Hãy dùng cấu trúc if- then để mô tả cấu trúc rẽ nhánh sau: Nếu ngày=3 và tháng =7 thì đưa ra hai câu thông báo “hôm nay là ngày 3 tháng 7”.
if (ngay=3) and (thang=7) then
writeln(‘hom nay la ngay 3 thang 7’);
writeln(‘hom nay la ngay 3 thang 7’);
Begin
end;
Cấu trúc dùng để mô tả mệnh đề
Nếu…thì,….
Nếu…..thì, nếu không thì……
Được gọi là cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh dạng thiếu
If <điều kiện> then;
Cấu trúc rẽ nhánh dạng đủ
If <điều kiện> then else ;
Câu lệnh ghép
Begin
;
End;
4.Một số ví dụ
Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai: ax2+bx+c=0 với a ≠ 0;
Hãy xác định input và 0utput của bài toán?
Input: nhập a, b, c;
output: đưa ra nghiệm thực hoặc thông báo “phương trình vô nghiệm”.
4.Một số ví dụ
Program Giai_PTB2;
uses crt;
var a, b, c, d, x1, x2: real;
Begin
write(‘a, b, c’);
readln(a, b, c);
d:=b*b – 4*a*c;
if d < 0 then writeln(‘ phuong trinh vo nghiem’)
else
begin
x1:= (-b - sqrt(d))/(2*a);
x2:= -b/a – x1;
writeln(‘x1=‘, x1:8:3, ‘x2=‘,x2:8:3);
end;
readln
end.
Hãy cho biết câu lệnh dùng để nhập a, b, c và tính d?
Hãy cho biết câu lệnh if – then ở ví dụ này thuộc dạng thiếu hay đủ?
Trong chương trình này có dùng câu lệnh ghép không? Nếu có nó được bắt đầu bằng từ khóa nào và kết thúc ở đâu?
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. (biết rằng năm nhuận có 366 ngày, năm thường có 365 ngày).
Hãy xác định input và output?
input: N nhập từ bàn phím.
output: đưa ra số ngày của năm N ra màn hình.
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ì số ngày của năm N là nhuận có 366 ngày, ngược lại số ngày là 356 ngày.
program Nam_nhuan;
uses crt;
var n: integer;
Begin
write(‘nhap nam can tim so ngay N=‘);
readln(N);
if (N mod 400 =0) or ((N mod 4=0) and(N mod 100<>0) then
writeln(‘nam do la nam nhuan co 366 ngay’)
else
writeln(‘nam do khong la nam nhuan co 365 ngay’);
readln
end.
Hãy 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ì là năm nhuận có 366 ngày ngược lại thì có số ngày là 365 ngày.
Em hãy khai báo biến cho bài toán trên?
Hãy nhập năm cần tìm số ngày?
Cho một số a thuộc số nguyên được nhập vào từ bàn phím. Hãy lập trình để kiểm tra xem a có chia hết cho 3 không?
Program kiemtra;
uses crt;
var n: Integer;
Begin
write(‘Hay nhap n tu ban phim’);
readln(n);
if n mod 3 =0 then writeln(‘n la so chia het cho 3’)
else writeln(‘ n la so khong chia het cho 3’);
readln
end.
Kiểm tra bài cũ
CHƯƠNG 3
CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI 9
C?U TRC R? NHNH
Nếu mai trời không mưa thì An sẽ đến nhà Bình.
Nếu mai trời không mưa thì An sẽ đến nhà Bình, nếu mưa thì An sẽ gọi điện cho Bình.
1. Rẽ nhánh
Nếu …. thì….
Nếu …. thì…., nếu không thì…
Cấu trúc dùng để mô tả các mệnh đề đó gọi là cấu
trúc rẽ nhánh thiếu và đủ.
1. Rẽ nhánh
VD 2: Giải phương trình bậc hai: ax2 + bx + c =0
Tính D:=b*b+4a*c
Sơ đồ
Hãy nêu cách giải phương trình đó?
2. Câu lệnh if - then
a. Dạng thiếu:
if <điều kiện> then
Trong đó:
- Điều kiện là biểu thức lôgic.
- Câu lệnh là một câu lệnh của Pascal.
Sơ đồ thể hiện cấu trúc if -then
2. Câu lệnh if - then
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc rẽ nhánh sau:
Nếu d<0 thì phương trình vô nghiệm.
Nếu a mod 2 =0 thì a là số chẵn.
if <điều kiện> then
a. if d<0 then writeln(‘phuong trinh vo nghiem’);
b. if a mod 2 =0 then writeln(‘a la so chan’);
Giải
2. Câu lệnh if – then
b. Dạng đủ
if <điều kiện> then
Sơ đồ cấu trúc if - then
Ý nghĩa: Tính và kiểm tra điều kiện. Nếu điều kiện đúng thì câu lệnh1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện.
đúng
Sai
2. Câu lệnh if - then
if <điều kiện> then
VD: Hãy dùng cấu trúc if – then để mô tả cấu trúc rẽ nhánh sau:
Nếu d<0 thì phương trình vô nghiệm, ngược có nghiệm.
Nếu a mod 2=0 thì a là số chẵn, ngược lại a là số lẻ.
Giải
a. if d<0 then writeln(‘ phuong trinh vo nghiem’) else writeln(‘phuong co nghiem’);
b. if a mod 2=0 then writeln(‘a la so chan’) else
writeln(‘a la so le’);
3. Câu lệnh ghép
Trong Pascal cho phép gộp một dãy câu lệnh thành một câu lệnh ghép. Câu lệnh ghép có dạng.
.
Chú ý: Trước từ khoá else câu lệnh không có dấu chấm phẩy.
Begin
End;
Chú ý: sau end phải có dấu chấm phẩy;
3. Câu lệnh ghép
VD: Hãy dùng cấu trúc if- then để mô tả cấu trúc rẽ nhánh sau: Nếu ngày=3 và tháng =7 thì đưa ra hai câu thông báo “hôm nay là ngày 3 tháng 7”.
if (ngay=3) and (thang=7) then
writeln(‘hom nay la ngay 3 thang 7’);
writeln(‘hom nay la ngay 3 thang 7’);
Begin
end;
Cấu trúc dùng để mô tả mệnh đề
Nếu…thì,….
Nếu…..thì, nếu không thì……
Được gọi là cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh dạng thiếu
If <điều kiện> then
Cấu trúc rẽ nhánh dạng đủ
If <điều kiện> then
Câu lệnh ghép
Begin
End;
4.Một số ví dụ
Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai: ax2+bx+c=0 với a ≠ 0;
Hãy xác định input và 0utput của bài toán?
Input: nhập a, b, c;
output: đưa ra nghiệm thực hoặc thông báo “phương trình vô nghiệm”.
4.Một số ví dụ
Program Giai_PTB2;
uses crt;
var a, b, c, d, x1, x2: real;
Begin
write(‘a, b, c’);
readln(a, b, c);
d:=b*b – 4*a*c;
if d < 0 then writeln(‘ phuong trinh vo nghiem’)
else
begin
x1:= (-b - sqrt(d))/(2*a);
x2:= -b/a – x1;
writeln(‘x1=‘, x1:8:3, ‘x2=‘,x2:8:3);
end;
readln
end.
Hãy cho biết câu lệnh dùng để nhập a, b, c và tính d?
Hãy cho biết câu lệnh if – then ở ví dụ này thuộc dạng thiếu hay đủ?
Trong chương trình này có dùng câu lệnh ghép không? Nếu có nó được bắt đầu bằng từ khóa nào và kết thúc ở đâu?
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. (biết rằng năm nhuận có 366 ngày, năm thường có 365 ngày).
Hãy xác định input và output?
input: N nhập từ bàn phím.
output: đưa ra số ngày của năm N ra màn hình.
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ì số ngày của năm N là nhuận có 366 ngày, ngược lại số ngày là 356 ngày.
program Nam_nhuan;
uses crt;
var n: integer;
Begin
write(‘nhap nam can tim so ngay N=‘);
readln(N);
if (N mod 400 =0) or ((N mod 4=0) and(N mod 100<>0) then
writeln(‘nam do la nam nhuan co 366 ngay’)
else
writeln(‘nam do khong la nam nhuan co 365 ngay’);
readln
end.
Hãy 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ì là năm nhuận có 366 ngày ngược lại thì có số ngày là 365 ngày.
Em hãy khai báo biến cho bài toán trên?
Hãy nhập năm cần tìm số ngày?
Cho một số a thuộc số nguyên được nhập vào từ bàn phím. Hãy lập trình để kiểm tra xem a có chia hết cho 3 không?
Program kiemtra;
uses crt;
var n: Integer;
Begin
write(‘Hay nhap n tu ban phim’);
readln(n);
if n mod 3 =0 then writeln(‘n la so chia het cho 3’)
else writeln(‘ n la so khong chia het cho 3’);
readln
end.
* 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ẻ: Lã Thị Thảo An
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)