Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Nguyễn Công Quang |
Ngày 10/05/2019 |
47
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:
Bài 9:
CẤU TRÚC RẼ NHÁNH
Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tiết 10
Nội dung bài học
Rẽ nhánh
Ví 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.
Rẽ nhánh
Dạng thiếu:
Nếu <điều kiện> đúng thì thực hiện
Dạng đủ:
Nếu <điều kiện> đúng thì thực hiện còn không thì thực hiện
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
Rẽ nhánh
Input : Nhập a, b, c
Output : Xuất ra nghiệm của phương trình bậc hai
Ví dụ: Gi?i phuong trỡnh b?c hai ax2+bx+c=0 (a?0)
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
sơ đồ thuật toán giải phương trình bậc 2 nhu th? no? (với a?0)
Sau khi tính Delta, tựy thu?c vo 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ểm tra
Delta < 0
Tính và đưa ra nghiệm
Thông báo vô nghiệm
Kết thúc
Sai
Đúng
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???
Nội dung bài học
Dạng Thiếu:
IF THEN ; (1)
Dạng Đủ:
IF THEN
ELSE ; (2)
Có 2 dạng:
2.Cấu trúc IF … THEN
Giải thích:
< Biểu thức đ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, nếu sai thì câu lệnh này sẽ bỏ qua.
(2)Dạng Đủ: có nghĩa là nếu biểu thức điều kiện đúng thì thực hiện, nếu sai thì thực hiện .
Chú ý:
Dạng (1) thực ra là dạng (2) thu gọn với là rỗng.
2.Cấu trúc IF … THEN
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 then….”
và “If then ….else…”
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);
Nội dung bài học
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.
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
;
end;
VD:
if a < b then
begin
max:=b;
min:=a;
end;
3.Câu lệnh ghép
program 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 ) ;
readln
end.
begin
end;
Nội dung bài học
Hãy xác định Input và Output của bài?
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 4 nhưng không chia hết cho 100.
Input: Nhập N từ bàn phím.
Output: Đư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ụ
Liệt kê
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úc
Thuật toán
B1:Nhập N
B2: 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án
B4:Nếu B2 sai thông báo năm N có 365 ngày và kết thúc thuật toán
Đúng
Sai
4. Một số ví dụ
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 cần tính số lượng ngày
In ra kết quả?
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
;
END;
IF <điều kiện> THEN;
IF <điều kiện> THEN
ELSE;
Bài tập thêm: Viết chương trình nhập vào hai số nguyên. Nếu số thứ nhất nhỏ hơn số thứ hai thì không cần đổi chỗ, ngược lại nếu số thứ nhất lớn hơn số thứ hai thì đổi chỗ để in ra hai số theo thứ tự từ nhỏ đến lớn.
Dặn dò
Về nhà:
Làm bài tập : 1, 2, 4 trang 51 SGK
Chuẩn bị bài 10: TỔ CHỨC LẶP
CẤU TRÚC RẼ NHÁNH
Chương III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tiết 10
Nội dung bài học
Rẽ nhánh
Ví 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.
Rẽ nhánh
Dạng thiếu:
Nếu <điều kiện> đúng thì thực hiện
Dạng đủ:
Nếu <điều kiện> đúng thì thực hiện
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
Rẽ nhánh
Input : Nhập a, b, c
Output : Xuất ra nghiệm của phương trình bậc hai
Ví dụ: Gi?i phuong trỡnh b?c hai ax2+bx+c=0 (a?0)
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
sơ đồ thuật toán giải phương trình bậc 2 nhu th? no? (với a?0)
Sau khi tính Delta, tựy thu?c vo 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ểm tra
Delta < 0
Tính và đưa ra nghiệm
Thông báo vô nghiệm
Kết thúc
Sai
Đúng
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???
Nội dung bài học
Dạng Thiếu:
IF
Dạng Đủ:
IF
ELSE
Có 2 dạng:
2.Cấu trúc IF … THEN
Giải thích:
< Biểu thức đ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
(2)Dạng Đủ: có nghĩa là nếu biểu thức điều kiện đúng thì thực hiện
Chú ý:
Dạng (1) thực ra là dạng (2) thu gọn với
2.Cấu trúc IF … THEN
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
và “If
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);
Nội dung bài học
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.
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
end;
VD:
if a < b then
begin
max:=b;
min:=a;
end;
3.Câu lệnh ghép
program 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 ) ;
readln
end.
begin
end;
Nội dung bài học
Hãy xác định Input và Output của bài?
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 4 nhưng không chia hết cho 100.
Input: Nhập N từ bàn phím.
Output: Đư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ụ
Liệt kê
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úc
Thuật toán
B1:Nhập N
B2: 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án
B4:Nếu B2 sai thông báo năm N có 365 ngày và kết thúc thuật toán
Đúng
Sai
4. Một số ví dụ
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 cần tính số lượng ngày
In ra kết quả?
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
END;
IF <điều kiện> THEN
IF <điều kiện> THEN
ELSE
Bài tập thêm: Viết chương trình nhập vào hai số nguyên. Nếu số thứ nhất nhỏ hơn số thứ hai thì không cần đổi chỗ, ngược lại nếu số thứ nhất lớn hơn số thứ hai thì đổi chỗ để in ra hai số theo thứ tự từ nhỏ đến lớn.
Dặn dò
Về nhà:
Làm bài tập : 1, 2, 4 trang 51 SGK
Chuẩn bị bài 10: TỔ CHỨC LẶP
* 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ẻ: Nguyễn Công Quang
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)