Bài 9. Cấu trúc rẽ nhánh

Chia sẻ bởi Nguyễn Thanh Nhàn | Ngày 10/05/2019 | 63

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ời gian 1 tiết
1. Rẽ nhánh
VD1: Ngày mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc.
VD 2: Ngày mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc,
nếu mưa thì Châu sẽ gọi điện để trao đổi bài
Thuộc vào dạng điều kiện thiếu
Nếu……..thì……..
Nếu……..thì…….nếu không thì….
Thuộc vào dạng điều kiện đủ:
Ví dụ: Giải phương 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 âm thì thông báo PT vô nghiệm, ngược lại tính và đưa ra nghiệm.
D:=b*b-4*a*c
D>=0?
Thông báo VN
Kết thúc
Tính và đưa ra nghiệm
Kết thúc
Nhập a, b, c
Đ
S
D>=0?
Sơ đồ
Cấu trúc rẽ nhánh là một điều khiển chọn thực hiện hay không thực hiện một công việc phù hợp với điều kiện đang xảy ra
Cấu trúc rẽ nhánh?
Nếu <ĐK> thì
Nếu <ĐK> thì nếu không thì
IF <ĐK> THEN ;
IF <ĐK> THEN ELSE ;
a. Dạng thiếu
b. Dạng đủ
PASCAL
- IF, THEN, ELSE là các từ khoá.
- Điều kiện là biểu thức có giá trị lôgic.
- Câu lệnh, CL1,CL2 là một lệnh của TP.
Trong đó:
SƠ ĐỒ KHỐI
Ý nghĩa câu lệnh rẽ nhánh:
Kiểm tra ĐK nếu đúng thì thực hiện CL, ngược lại thì
bỏ qua câu lệnh và thoát khỏi lệnh if-then.
Dạng thiếu:
Dạng đủ:
Kiểm tra nếu ĐK đúng thì thực hiện CL1, ngược lại thì thực hiện CL2;
a. Sơ đồ khối Dạng thiếu
b. Sơ đồ khối Dạng đủ:
Lưu ý:- Sau Then v� sau else ch? cú 1 câu l?nh chuong trỡnh.
- Tru?c Else khụng ch?a d?u ";"
VD2: Nếu điểm trung bình >= 5 thì xuất ra màn hình thông báo "bạn đã đậu".
IF ÑTB>= 5 THEN WRITE(‘Ban ña ñau’);
VD1: Kiểm tra, nếu n chia h?t cho 2 thì xuất ra màn hình thông báo `n l� so chan`
IF n mod 2 = 0 THEN write(‘n chan’);
VD4: Kết luận nghiệm PT bậc hai:
VD3: Tìm số lớn nhất của hai số a và b?

IF D<0 then writeln(`phuong trinh vo nghiem`)
ELSE writeln(`phuong trinh co nghiem`);
2. CÂU LỆNH IF – THEN
Theo cú pháp, sau một số từ khóa (như THEN, ELSE) phải là một câu lệnh. Nhưng trong nhiều trường hợp, các thao tác sau những tên dành riêng đó khá phức tạp, đòi hỏi không phải chỉ một mà là nhiều câu lệnh để mô tả.
3. Câu lệnh ghép
Trong TP 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
< Các câu lệnh>;
END;
IF Delta<0 then writeln(`phương trình vô nghiệm`)
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ụ:
4. MỘT SỐ VÍ DỤ
* Input: Các hệ số a, b, c nhập từ bàn phím.

* Output: Đưa ra màn hình các nghiệm PT hoặc thông báo “Phương trình vô nghiệm”
Yêu cầu đề bài:
Ví dụ 1: Viết chương trình tìm nghiệm thực của phương trình bậc hai: ax2 + bx + c = 0 với a≠0
Câu lệnh ghép sau Else
Sau End có dấu “;”
Sau Else không có dấu “;”
* Input: N nhập từ bàn phím.

* Output: Đưa số ngày của năm N ra màn hình.
Yêu cầu đề bài:
4. MỘT SỐ VÍ DỤ
Ví dụ 2: Viết chương trình tính 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
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 ;
Trắc nghiệm
Câu 1: Cho biết kết quả hiển thị lên màn hình của đoạn chương trình sau:
Var a, b,max: word;
A:= 100; b:=5;
Max:=a;
If b>a then max:=b;
Write(‘so lon nhat la: ‘, max);
so lon nhat la: max B. 100
C. so lon nhat la: 100 d. so lon nhat la: 5
Đáp án: Câu C
Trắc nghiệm
Câu 2: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var a,b: integer;
A:=5; b:=2;
If a>b then write(a+b) ;
7 B. a+b
C. 5+2 D. không in gì cả
Đáp án: Câu A
Trắc nghiệm
Câu 3: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var a: integer;
A:=7;
If a mod 2=0 then write(‘a la so chan’) else write(‘a la so le’);
a la so chan B. a la so le
C. 7 la so le D. báo lỗi ngữ pháp
Đáp án: Câu B
Trắc nghiệm
Câu 4: Đoạn chương trình sau đưa ra màn hình kết quả gì?
Var m,n: integer;
m:=2; n:=5;
If m7) else write(m);
2 B. 5
C. false D. true
Đáp án: Câu D
Bài tập v? nh�:
Viết câu lệnh rẽ nhánh tính:
1.
2.
Nếu
nếu
nếu


Đáp án:
Bài 1
If (x+2) > 0 and (x+1) <> 0 then
y:= 1 + sqrt(x+2)/(x+1);
Else
Write(‘khong tinh duoc’);
Bài 2
If (sqr(x)+sqr(y)) <=1 then z:= sqr(x) + sqr(y);
Else
if y >= x then z:= x + y
Else
z:= 0.5;
* 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 Thanh Nhàn
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)