Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Dễ Nhớ Và Ít Nhất |
Ngày 10/05/2019 |
49
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
Giáo án điện tử tin học lớp 11
Ôn lại kiến thức cũ
Biểu thức quan hệ được tạo thành như thế nào?
Hai biểu thức cùng kiểu liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức quan hệ
Ví dụ: X > 5
i+2 > 3*j
Ôn lại kiến thức cũ
Biểu thức logic được tạo thành như thế nào?
Các biểu thức quan hệ liên kết với nhau bởi phép toán logic
Ví dụ: (5<=x) and (x<=11)
Có mấy cấu trúc lập trình ?
Có 3 cấu trúc lập trình cơ bản
Cấu trúc tuần tự
Cấu trúc rẽ nhánh
Cấu trúc lặp
Lần lượt thực hiện các câu lệnh từ trên xuống dưới.
Thực hiện 1 trong số nhiều nhánh của chương trình (tuỳ điều kiện).
Lặp đi lặp lại một đoạn chương trình.
1. Rẽ nhánh
Mời các bạn cùng xem và tìm hiểu các tình huống sau nhé!
ừm, để tớ nghĩ đã.
Nếu ngày mai mưa thì tớ nghỉ.
à! Nếu ngày mai mưa thì tớ nghỉ, nếu không mưa thì tớ đến nhà cậu học nhé.
Này, ngày mai cậu có đi học nhóm không?
Xét các mệnh đề sau sau đây:
Mệnh đề 1:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm
Mệnh đề 2:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm, nếu trời mưa thì Hùng sẽ gọi điện cho Tâm để trao đổi
Nếu ... thì
Nếu … thì…, nếu không thì …
Mệnh đề 1:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm
Nếu …thì…
Mệnh đề 2:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm, nếu trời mưa thì Hùng sẽ gọi điện cho Tâm để trao đổi
Nếu …thì…,nếu không…thì…
Cách diễn đạt
Nếu…thì….Cách diễn đạt thuộc dạng thiếu
Nếu…thì…, nếu không…thì….Cách diễn đạt thuộc dạng đủ
Cấu trúc dùng để mô tả các mệnh đề có dạng như trên gọi là
cấu trúc rẽ nhánh.
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.
Các em hãy vẽ sơ đồ thuật toán giải phương trình bậc 2 (với a?0)
Sau khi tính Delta, tuỳ thuộc vào 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
IF <Điều kiện> THEN;
Điều kiện
Đúng
Câu lệnh
Nếu <điều kiện> đúng thì được thực hiện,
sai bị bỏ qua.
Sai
a. Dạng thiếu
Câu lệnh
Đúng
Câu lệnh
Điều kiện
Điều kiện
2. Câu lệnh IF - THEN
- Điều kiện là biểu thức quan hệ hoặc biểu thức lôgic.
- Câu lệnh là một lệnh của TP.
Trong đó:
Ví dụ:
IF a mod 2=0 THEN Writeln(` a la so chan`);
Max
Giải thuật
nếu Max < b
nếu Max < c
Gán Max:=a
Lần lượt so sánh Max với b và c.
In giá trị Max
Ví dụ : Giải bài toán
Hãy lập chương trình nhập vào từ bàn phím 3 số nguyên a, b, c bất kỳ (a?b ?c). In ra màn hình số có giá trị lớn nhất?
Cấu trúc rẽ nhánh
b. Dạng đủ
IF <Điều kiện> THEN ELSE ;
Điều kiện
Đúng
Câu lệnh 1
Sai
Câu lệnh 2
Nếu <điều kiện> đúng thì được thực hiện,
ngược lại thì được thực hiện.
Điều kiện
Câu lệnh 1
Câu lệnh 2
Điều kiện
Câu lệnh 1
Điều kiện
Ví dụ:
IF a mod 2=0 THEN Writeln(`a là so chan`)
ELSE Writeln(`a la so le`);
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(`phương trình vô nghiệm`)
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);
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ụ:
Program GPTB2;
Uses crt;
Var . . . ;
BEGIN
. . . Nhập vào 3 hệ số a,b,c .. .
Delta :=. . .;
Readln;
END.
Nếu Delta<0 thì writeln(`ptvn`)
ngược lại Tính và in nghiệm;
4. Một số ví dụ
Em hãy hoàn thiện chương trình giải phương trình bậc 2 (a?0) theo dàn ý sau:
Ví dụ 1:
Loại biểu thức gì nhất thiết phải có mặt trong câu lệnh rẽ nhánh?
Một câu lệnh rẽ nhánh chứa m lệnh if dạng đủ và lồng vào nhau. Câu lệnh đó tạo ra bao nhiêu nhánh chương trình.
Xét một chương trình có n câu lệnh rẽ nhánh dạng đủ không lồng vào nhau. Để kiểm tra việc thực hiện tất cả các câu lệnh trong chường trình, ta cần ít nhất bao nhiêu bộ dữ liệu thử nghiệm?
Có thể dùng cấu trúc rẽ nhánh dạng thiếu để môt ta cấu trúc rẽ nhánh dạng đủ được không? Cho ví dụ minh họa.
Hãy nhớ
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;
Hãy xác định Input và Output của bài?
BTVN 01: 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
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ả?
Hãy lập chương trình tính tiền điện với yêu cầu như sau :
Nhập vào chỉ số mới, chỉ số cũ. Tìm số điện tiêu thụ.
Tính tiền như sau :
Nếu số điện <= 500 : giá 750 đồng/số
Nếu số điện > 500 và <=1000 : giá 1200 đồng/số
Nếu số điện >1000 : giá 1500 đồng/số
In ra số tiền phải trả.
BTVN 02
cấu trúc rẽ nhánh
Giáo án điện tử tin học lớp 11
Ôn lại kiến thức cũ
Biểu thức quan hệ được tạo thành như thế nào?
Hai biểu thức cùng kiểu liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức quan hệ
Ví dụ: X > 5
i+2 > 3*j
Ôn lại kiến thức cũ
Biểu thức logic được tạo thành như thế nào?
Các biểu thức quan hệ liên kết với nhau bởi phép toán logic
Ví dụ: (5<=x) and (x<=11)
Có mấy cấu trúc lập trình ?
Có 3 cấu trúc lập trình cơ bản
Cấu trúc tuần tự
Cấu trúc rẽ nhánh
Cấu trúc lặp
Lần lượt thực hiện các câu lệnh từ trên xuống dưới.
Thực hiện 1 trong số nhiều nhánh của chương trình (tuỳ điều kiện).
Lặp đi lặp lại một đoạn chương trình.
1. Rẽ nhánh
Mời các bạn cùng xem và tìm hiểu các tình huống sau nhé!
ừm, để tớ nghĩ đã.
Nếu ngày mai mưa thì tớ nghỉ.
à! Nếu ngày mai mưa thì tớ nghỉ, nếu không mưa thì tớ đến nhà cậu học nhé.
Này, ngày mai cậu có đi học nhóm không?
Xét các mệnh đề sau sau đây:
Mệnh đề 1:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm
Mệnh đề 2:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm, nếu trời mưa thì Hùng sẽ gọi điện cho Tâm để trao đổi
Nếu ... thì
Nếu … thì…, nếu không thì …
Mệnh đề 1:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm
Nếu …thì…
Mệnh đề 2:
Chiều mai nếu trời không mưa thì Hùng sẽ đến nhà Tâm để học nhóm, nếu trời mưa thì Hùng sẽ gọi điện cho Tâm để trao đổi
Nếu …thì…,nếu không…thì…
Cách diễn đạt
Nếu…thì….Cách diễn đạt thuộc dạng thiếu
Nếu…thì…, nếu không…thì….Cách diễn đạt thuộc dạng đủ
Cấu trúc dùng để mô tả các mệnh đề có dạng như trên gọi là
cấu trúc rẽ nhánh.
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.
Các em hãy vẽ sơ đồ thuật toán giải phương trình bậc 2 (với a?0)
Sau khi tính Delta, tuỳ thuộc vào 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
IF <Điều kiện> THEN
Điều kiện
Đúng
Câu lệnh
Nếu <điều kiện> đúng thì
sai
Sai
a. Dạng thiếu
Câu lệnh
Đúng
Câu lệnh
Điều kiện
Điều kiện
2. Câu lệnh IF - THEN
- Điều kiện là biểu thức quan hệ hoặc biểu thức lôgic.
- Câu lệnh là một lệnh của TP.
Trong đó:
Ví dụ:
IF a mod 2=0 THEN Writeln(` a la so chan`);
Max
Giải thuật
nếu Max < b
nếu Max < c
Gán Max:=a
Lần lượt so sánh Max với b và c.
In giá trị Max
Ví dụ : Giải bài toán
Hãy lập chương trình nhập vào từ bàn phím 3 số nguyên a, b, c bất kỳ (a?b ?c). In ra màn hình số có giá trị lớn nhất?
Cấu trúc rẽ nhánh
b. Dạng đủ
IF <Điều kiện> THEN
Điều kiện
Đúng
Câu lệnh 1
Sai
Câu lệnh 2
Nếu <điều kiện> đúng thì
ngược lại thì
Điều kiện
Câu lệnh 1
Câu lệnh 2
Điều kiện
Câu lệnh 1
Điều kiện
Ví dụ:
IF a mod 2=0 THEN Writeln(`a là so chan`)
ELSE Writeln(`a la so le`);
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(`phương trình vô nghiệm`)
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);
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ụ:
Program GPTB2;
Uses crt;
Var . . . ;
BEGIN
. . . Nhập vào 3 hệ số a,b,c .. .
Delta :=. . .;
Readln;
END.
Nếu Delta<0 thì writeln(`ptvn`)
ngược lại Tính và in nghiệm;
4. Một số ví dụ
Em hãy hoàn thiện chương trình giải phương trình bậc 2 (a?0) theo dàn ý sau:
Ví dụ 1:
Loại biểu thức gì nhất thiết phải có mặt trong câu lệnh rẽ nhánh?
Một câu lệnh rẽ nhánh chứa m lệnh if dạng đủ và lồng vào nhau. Câu lệnh đó tạo ra bao nhiêu nhánh chương trình.
Xét một chương trình có n câu lệnh rẽ nhánh dạng đủ không lồng vào nhau. Để kiểm tra việc thực hiện tất cả các câu lệnh trong chường trình, ta cần ít nhất bao nhiêu bộ dữ liệu thử nghiệm?
Có thể dùng cấu trúc rẽ nhánh dạng thiếu để môt ta cấu trúc rẽ nhánh dạng đủ được không? Cho ví dụ minh họa.
Hãy nhớ
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
Hãy xác định Input và Output của bài?
BTVN 01: 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
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ả?
Hãy lập chương trình tính tiền điện với yêu cầu như sau :
Nhập vào chỉ số mới, chỉ số cũ. Tìm số điện tiêu thụ.
Tính tiền như sau :
Nếu số điện <= 500 : giá 750 đồng/số
Nếu số điện > 500 và <=1000 : giá 1200 đồng/số
Nếu số điện >1000 : giá 1500 đồng/số
In ra số tiền phải trả.
BTVN 02
* 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ẻ: Dễ Nhớ Và Ít Nhất
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)