Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Hòang Thị Tưởng |
Ngày 10/05/2019 |
43
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:
Tiết 11 - §9:
10/26/2013
10/26/2013
Nguyễn Thị Ninh Giang
Trang 1
CẤU TRÚC RẼ NHÁNH
CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Nếu … thì… Cách diễn đạt này thuộc dạng thiếu
Nếu … thì… , nếu không thì (ngược lại)… Cách diễn đạt này thuộc dạng đủ
Mệnh đề 1
Chiều mai nếu trời không mưa thì Châu sẽ tới nhà Ngọc.
Mệnh đề 2
Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho Châu để trao đổi.
Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi là cấu trúc rẽ nhánh.
Dạng của mệnh đề 1 và 2 là gì?
1. Rẽ nhánh
Xét hai mệnh đề sau
§9: CẤU TRÚC RẼ NHÁNH
Bước 1: Nhập hệ số a,b,c
Bước 2: Tính delta D = b2 – 4ac
Bước 3: Kiểm tra D
+ Nếu D<0: thông báo phương trình vô nghiệm.
+ Nếu D>=0: phương trình có nghiệm
* Ví dụ:
Các bước giải bài toán:
§9: CẤU TRÚC RẼ NHÁNH
Nhập a, b, c
D ← b2 – 4ac
D>=0
Đúng
Sai
Thông báo vô nghiệm rồi kết thúc
Tính và đưa ra nghiệm thực rồi kết thúc
Sơ đồ khối:
§9: CẤU TRÚC RẼ NHÁNH
* Sơ đồ khối:
* Hoạt động:
* Trong đó:
IF a mod 2 = 0 THEN Writeln(‘ a la so chan’);
* Ví dụ 1:
Điều kiện là biểu thức quan hệ hoặc biểu thức logic.
Câu lệnh là một câu lệnh của TurboPascal.
a. Dạng thiếu:
IF <Điều kiện> THEN;
Nếu < Điều kiện > đúng thì < Câu lệnh > được thực hiện, sai < Câu lệnh > bị bỏ qua.
§9: CẤU TRÚC RẼ NHÁNH
2. Câu lệnh if - then
- Nếu A< 0 thì đưa ra màn hình câu ‘ A là số âm’
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số âm hay không?
Gợi ý:
- Nếu A >= 0 thì đưa ra màn hình câu ‘A là số không âm’
Ví dụ 3: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số không âm hay không?
Gợi ý:
IF A < 0 THEN Writeln(‘ A la so am’);
IF A >= 0 THEN Writeln(‘ A la so khong am’);
§9: CẤU TRÚC RẼ NHÁNH
* Bài toán: Tìm số lớn nhất của 2 số a và b.
→ Các câu lệnh kiểm tra tìm số lớn nhất:
Ngôn ngữ tự nhiên
Ngôn ngữ lập trình TurboPascal
Nếu a < b thì gán Max = b;
Nếu a > b thì gán Max = a;
If a < b then Max:=b;
If a > b then Max:=b;
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
IF <Điều kiện> THEN
ELSE;
* Hoạt động:
* Sơ đồ:
IF a mod 2 = 0 THEN Writeln(‘a la so chan’)
ELSE Writeln(‘a la so le’);
* Ví dụ 1:
a. Dạng đủ:
Nếu <Điều kiện> đúng thì được thực hiện, ngược lại được thực hiện.
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
- Nếu b > a thì gán max cho b còn ngược lại thì gán max cho a.
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng đủ tìm số lớn nhất max trong 2 số a và b.
Gợi ý:
IF b > a THEN max := b ELSE max := a;
Chú ý: Trước từ khoá ELSE không có dấu chấm phẩy “ ; ”
§9: CẤU TRÚC RẼ NHÁNH
* Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0 (a ≠ 0)
→ Các câu lệnh kiểm tra Delta:
§9: CẤU TRÚC RẼ NHÁNH
Khác nhau:
+ Dạng thiếu: điều kiện sai sẽ bỏ qua câu lệnh.
+ Dạng đủ: điều kiện sai sẽ thực hiện câu lệnh 2.
Tìm giống và khác nhau giữa 2 dạng
Giống nhau:
+ Là câu lệnh cấu trúc rẽ nhánh
+ Khi gặp điều kiện sẽ thực hiện thao tác thích hợp.
§9: CẤU TRÚC RẼ NHÁNH
IF (Delta<0) THEN Writeln(‘Phuong trinhvo 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);
Khối lệnh
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
§9: CẤU TRÚC RẼ NHÁNH
IF (Delta<0) THEN Writeln(`Phuong trinh vo nghiem`)
ELSE
BEGIN
X1:= (-b + SQRT(Delta))/(2*a);
X2:= (-b - SQRT(Delta))/(2*a);
Writeln(` Nghiem X1= `, X1:5:1);
Writeln(` Nghiem X2= `, X2:5:1);
END;
Ví dụ:
Trong ngôn ngữ lập trình cho phép gộp nhiều câu lệnh thành một câu lệnh gọi là câu lệnh ghép, có dạng:
BEGIN
;
END;
3. Câu lệnh ghép
§9: CẤU TRÚC RẼ NHÁNH
Em hãy hoàn thiện chương trình giải phương trình bậc 2 (a0) theo dàn ý sau:
Program GPTB2;
Uses crt;
Var . . . ;
BEGIN
Delta :=. . .;
Readln;
END.
… Nhập vào 3 hệ số a,b,c…
VÍ DỤ 1
Nếu (Delta<0) thì Writeln(‘PTVN’)
ngược lại tính và in ra nghiệm;
4. Một số ví dụ
§9: CẤU TRÚC RẼ NHÁNH
§9: CẤU TRÚC RẼ NHÁNH
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.
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 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
Hãy xác định Input và Output của bài?
§9: CẤU TRÚC RẼ NHÁNH
Nhập vào NĂM cần tính số lượng ngày
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.
Em hãy khai báo biến cho bài toán trên?
In ra kết quả?
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
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
Củng cố
Cấu trúc mệnh đề có dạng:
“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 đủ
IF <Điều kiện> THEN;
IF <Điều kiện> THEN
ELSE;
10/26/2013
10/26/2013
Nguyễn Thị Ninh Giang
Trang 1
CẤU TRÚC RẼ NHÁNH
CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Nếu … thì… Cách diễn đạt này thuộc dạng thiếu
Nếu … thì… , nếu không thì (ngược lại)… Cách diễn đạt này thuộc dạng đủ
Mệnh đề 1
Chiều mai nếu trời không mưa thì Châu sẽ tới nhà Ngọc.
Mệnh đề 2
Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho Châu để trao đổi.
Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi là cấu trúc rẽ nhánh.
Dạng của mệnh đề 1 và 2 là gì?
1. Rẽ nhánh
Xét hai mệnh đề sau
§9: CẤU TRÚC RẼ NHÁNH
Bước 1: Nhập hệ số a,b,c
Bước 2: Tính delta D = b2 – 4ac
Bước 3: Kiểm tra D
+ Nếu D<0: thông báo phương trình vô nghiệm.
+ Nếu D>=0: phương trình có nghiệm
* Ví dụ:
Các bước giải bài toán:
§9: CẤU TRÚC RẼ NHÁNH
Nhập a, b, c
D ← b2 – 4ac
D>=0
Đúng
Sai
Thông báo vô nghiệm rồi kết thúc
Tính và đưa ra nghiệm thực rồi kết thúc
Sơ đồ khối:
§9: CẤU TRÚC RẼ NHÁNH
* Sơ đồ khối:
* Hoạt động:
* Trong đó:
IF a mod 2 = 0 THEN Writeln(‘ a la so chan’);
* Ví dụ 1:
Điều kiện là biểu thức quan hệ hoặc biểu thức logic.
Câu lệnh là một câu lệnh của TurboPascal.
a. Dạng thiếu:
IF <Điều kiện> THEN
Nếu < Điều kiện > đúng thì < Câu lệnh > được thực hiện, sai < Câu lệnh > bị bỏ qua.
§9: CẤU TRÚC RẼ NHÁNH
2. Câu lệnh if - then
- Nếu A< 0 thì đưa ra màn hình câu ‘ A là số âm’
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số âm hay không?
Gợi ý:
- Nếu A >= 0 thì đưa ra màn hình câu ‘A là số không âm’
Ví dụ 3: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số không âm hay không?
Gợi ý:
IF A < 0 THEN Writeln(‘ A la so am’);
IF A >= 0 THEN Writeln(‘ A la so khong am’);
§9: CẤU TRÚC RẼ NHÁNH
* Bài toán: Tìm số lớn nhất của 2 số a và b.
→ Các câu lệnh kiểm tra tìm số lớn nhất:
Ngôn ngữ tự nhiên
Ngôn ngữ lập trình TurboPascal
Nếu a < b thì gán Max = b;
Nếu a > b thì gán Max = a;
If a < b then Max:=b;
If a > b then Max:=b;
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
IF <Điều kiện> THEN
ELSE
* Hoạt động:
* Sơ đồ:
IF a mod 2 = 0 THEN Writeln(‘a la so chan’)
ELSE Writeln(‘a la so le’);
* Ví dụ 1:
a. Dạng đủ:
Nếu <Điều kiện> đúng thì
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
- Nếu b > a thì gán max cho b còn ngược lại thì gán max cho a.
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng đủ tìm số lớn nhất max trong 2 số a và b.
Gợi ý:
IF b > a THEN max := b ELSE max := a;
Chú ý: Trước từ khoá ELSE không có dấu chấm phẩy “ ; ”
§9: CẤU TRÚC RẼ NHÁNH
* Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0 (a ≠ 0)
→ Các câu lệnh kiểm tra Delta:
§9: CẤU TRÚC RẼ NHÁNH
Khác nhau:
+ Dạng thiếu: điều kiện sai sẽ bỏ qua câu lệnh.
+ Dạng đủ: điều kiện sai sẽ thực hiện câu lệnh 2.
Tìm giống và khác nhau giữa 2 dạng
Giống nhau:
+ Là câu lệnh cấu trúc rẽ nhánh
+ Khi gặp điều kiện sẽ thực hiện thao tác thích hợp.
§9: CẤU TRÚC RẼ NHÁNH
IF (Delta<0) THEN Writeln(‘Phuong trinhvo 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);
Khối lệnh
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
§9: CẤU TRÚC RẼ NHÁNH
IF (Delta<0) THEN Writeln(`Phuong trinh vo nghiem`)
ELSE
BEGIN
X1:= (-b + SQRT(Delta))/(2*a);
X2:= (-b - SQRT(Delta))/(2*a);
Writeln(` Nghiem X1= `, X1:5:1);
Writeln(` Nghiem X2= `, X2:5:1);
END;
Ví dụ:
Trong ngôn ngữ lập trình cho phép gộp nhiều câu lệnh thành một câu lệnh gọi là câu lệnh ghép, có dạng:
BEGIN
END;
3. Câu lệnh ghép
§9: CẤU TRÚC RẼ NHÁNH
Em hãy hoàn thiện chương trình giải phương trình bậc 2 (a0) theo dàn ý sau:
Program GPTB2;
Uses crt;
Var . . . ;
BEGIN
Delta :=. . .;
Readln;
END.
… Nhập vào 3 hệ số a,b,c…
VÍ DỤ 1
Nếu (Delta<0) thì Writeln(‘PTVN’)
ngược lại tính và in ra nghiệm;
4. Một số ví dụ
§9: CẤU TRÚC RẼ NHÁNH
§9: CẤU TRÚC RẼ NHÁNH
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.
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 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
Hãy xác định Input và Output của bài?
§9: CẤU TRÚC RẼ NHÁNH
Nhập vào NĂM cần tính số lượng ngày
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.
Em hãy khai báo biến cho bài toán trên?
In ra kết quả?
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
§9: CẤU TRÚC RẼ NHÁNH
10/26/2013
Củng cố
Cấu trúc mệnh đề có dạng:
“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 đủ
IF <Điều kiện> THEN
IF <Điều kiện> THEN
ELSE
* 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ẻ: Hòang Thị Tưở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)