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

Chia sẻ bởi Lê Minh Truờng | Ngày 10/05/2019 | 111

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:

Kiểm tra bài cũ:
Tính chu vi của một hình chữ nhật có cạnh là a, b là số thực nhập từ bàn phím. Chương trình có bao nhiêu lỗi? Chỉ ra và viết lại cho đúng?
Var a, b, cv = real;
Begin;
write(‘Nhap canh a=’); readln(a);
write(‘Nhap canh b=’); readln(b);
cv = (a + b)*2;
Writeln(“Chu vi hinh chu nhat la:’, cv:4:2)
Readln
End
Bài 9. Cấu trúc rẽ nhánh
Bài 10. Cấu trúc lặp
Chương 3
CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 9. CẤU TRÚC RẼ NHÁNH
1. Rẽ nhánh
Này, ngày mai An có đi chơi với nhóm không?
Uh, để tớ nghĩ đã.

Nếu ngày mai mưa thì An không đi.

À! Nếu ngày mai mưa thì không đi, nếu không mưa thì An đến nhà
Bình rồi đi.
Cùng xem và tìm hiểu các tình huống sau:
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 đề có dạng như trên
gọi là cấu trúc rẽ nhánh dạng thiếu và đủ.
1. Rẽ nhánh
Ví dụ: Nêu các bước để kết luận nghiệm của phương trình bậc hai: ax2 + bx + c=0;
1. Rẽ nhánh
Tính Delta (D=b2 – 4ac)
Nếu Delta < 0 thì kết luận phương trình vô nghiệm
Nếu Delta >= 0 thì kết luận phương trình có nghiệm
x1 = (- b + sqrt(Delta))/2a);
x2 = (- b - sqrt(Delta))/2a);
Đúng
Sai
Kiểm tra
 ≥ 0
Thông báo vô nghiệm
Tính và đưa ra nghiệm
Kết thúc
Kết luận: Nếu < 0 thì phương trình vô nghiệm,
ngược lại thì phương trình có nghiệm.
1. Rẽ nhánh
Sơ đồ thể hiện cấu trúc rẽ nhánh:
If <Điều kiện> Then ;
Điều kiện
Đúng

Cõu l?nh

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
Ví dụ: If (a mod 2 = 0) Then writeln (’a la so chan’);
Trong đó: - Đ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 Turbo Pascal.
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 la so chan’)
else Writeln(‘a la so le’);
2. Câu lệnh If-then (tt)
Ví dụ: Để tìm số lớn nhất (max) trong hai số a và b, có thể thực hiện bằng hai cách:
- Dùng If-Then dạng thiếu:
Max:=a;
If a- Dùng If-Then dạng đủ:
If a2. Câu lệnh If-then (tt)
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:6:2);
Writeln(‘ Nghiem x2= ’, x2:6:2);
Trong câu lệnh If-Then hoặc If-Then-Else muốn thực hiện nhiều lệnh sau Then hay nhiều lệnh sau Else làm thế nào?
2. Câu lệnh If-then (tt)
3. Câu lệnh ghép
Trong Turbo Pascal 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âu lệnh hợp thành), có dạng:
Begin
;
End;
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:4:2);
writeln(‘Nghiem x2= ’, x2:4:2);
end;
Ví dụ:
x1:= (-b + sqrt(Delta))/(2*a);
x2:= (-b - sqrt(Delta))/(2*a);
writeln(‘Nghiem x1= ’, x1:4:2);
writeln(‘Nghiem x2= ’, x2:4:2);
4. Một số ví dụ:
Ví dụ 1: Hoàn thiện chương trình giải phương trình bậc 2 (a0) theo dàn ý sau:
Program GPTB2;
Uses crt;
Var . . . ;
Begin
. . . Nhập vào 3 hệ số a, b, c .. .
Delta :=. . .;
Nếu Delta<0 thì writeln(‘ptvn’)
ngược lại Tính và in nghiệm;
Readln;
End.
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.
Hãy xác định Input và Output của bài toán trên?
4. Một số ví dụ: (tt)
Những nội dung cơ bản cần đạt được
1. 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.
2. Câu lệnh If-then:
a. Dạng thiếu:
If <Điều kiện> Then ;
b. Dạng đủ:
If <Điều kiện> Then Else ;
3. Câu lệnh ghép:
Begin
;
end;
4. Vận dụng để giải các bài tập trong sách giáo khoa.

Củng cố
Câu 1: Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh If - then?
A. Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa hai dấu ngoặc đơn;
B. Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End;
C. Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End. ;
D. Nếu sau Then muốn thực hiện nhiều câu lệnh thì chỉ cần liệt kê các lệnh ra.
Củng cố
Câu 2: Hãy đánh dấu vào đáp số đúng, cho đoạn chương trình sau:
Begin
x:=a;
if a writeln(‘Ket qua x la’, x)
End.
a. Cho a=20; b=15. Kết quả x bằng bao nhiêu?


b. Cho a=5; b=10. Kết quả x bằng bao nhiêu?

?
?
* 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ê Minh Truờ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)