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

Chia sẻ bởi Ong Viet Cuong | Ngày 10/05/2019 | 54

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:

Kính chào quý Thầy Cô và các em




đến dự buổi học hôm nay
Trường THPT Hà Tiên
THAO GIẢNG

Lớp học : 11CB6
Giáo viên : Ong Quốc Thịnh
KIỂM TRA 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ụ: 0< x < 9  (x > 0) and (x < 9)
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 được biểu thức quan hệ
Ví dụ: x > 9;
i * 4 < 3 * j
CHƯƠNG 3:
CẤU TRÚC RẼ NHÁNH VÀ LẶP
BÀI 9:

CẤU TRÚC RẼ NHÁNH
Nội dung:
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?
Nếu … thì… Cách diễn đạt này thuộc dạng thiếu
Nếu … thì… , nếu không thì…  Cách diễn đạt này thuộc dạng đủ
Mệnh đề 1

Nếu trời mưa thì Minh sẽ ở nhà xem ti vi.
Mệnh đề 2

Nếu trời mưa thì Minh sẽ ở nhà xem ti vi, nếu trời không mưa (điều kiện ngược lại)thì Minh sẽ đi học nhóm với Hùng
Rẽ nhánh
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.
Xét hai mệnh đề sau:
Ví dụ: Giải phương trình bậc hai: ax2 + bx +c =0

Giải thuật:
Bước 1: tính delta D = b2 – 4ac
Bước 2: kiểm tra D
+Nếu D<0:
Bước 3: Ta sẽ thông báo phương trình vô nghiệm.
+ Nếu D>0:
Bước 4: Tính và đưa ra nghiệm của phương trì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
IF < Di?u ki?n > THEN < Cõu l?nh >;
Điều kiện
Đúng

Câu lệnh
Nếu < Di?u ki?n > dỳng thì < Cõu l?nh > du?c th?c hi?n,
sai < Cõu l?nh > 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
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?
Gán Max:=b
nếu Max < c
Gán Max := c
Mô phỏng bài toán tìm số lớn nhất của 3 số a, b, c
Xác định bài toán:
- Input: Ta cần nhập vào 3 số a,b và c
- Output: Thông báo giá trị lớn nhất giữa 3 số này
Ngôn ngữ tự nhiên
Ngôn ngữ lập trình
Max = a
Max:= a {Phép gán}
Nếu b lớn hơn max thì
If b > max then
Max = c
Max:= c
Nếu c lớn hơn max thì
If c > max then
Max = b
Max:= b
b. D?ng d?:
IF < Di?u ki?n > THEN < Cõu l?nh 1 > ELSE < Cõu l?nh 2 >;
Điều kiện
Đúng

Câu lệnh 1
Sai

Câu lệnh 2
Nếu < Di?u ki?n > Dỳng thì < Cõu l?nh 1 > du?c th?c hi?n, ngu?c l?i < Cõu l?nh 2 > du?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`);
Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0
Bước 1: tính delta D = b2 – 4ac
Bước 2: kiểm tra D
+Nếu D<0:
Bước 3: Ta sẽ thông báo phương trình vô nghiệm
+ Nếu D>0:
Bước 4: Tính và đưa ra màn hình nghiệm của phương trình.
Trước else không có dấu “ ; “
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.

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.
Tìm giống và khác nhau giữa 2 dạng
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 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 như sau:
BEGIN
< Cỏc Cõu l?nh >;
END;
IF Delta<0 then writeln(`phuong 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ụ:
Ví dụ : tìm nghiệm thực của phương trình bậc hai
ax2 + bx + c = 0 với a khác 0
Input:
Output:
Thuật toán:
Bước 1: tính delta D
Bước 2: kiểm tra D
Bước 3: nếu D<0 thì đưa ra màn hình thông báo “phuong trinh vo nghiem”
Bước 4: nếu D>0 thì tính và đưa ra màn hình nghiêm thực của phương trình
nhập hệ số a,b,c.
Tính và đưa ra màn hình các nghiệm thực hoặc thông báo “phuong trinh vo nghiem”
4. Một số ví dụ
Program ptbac2;
Uses crt;
Var a, b, c, d, x1, x2: real;
Begin
Write(‘nhap he so a, b, c ‘);
Readln (a, b, c);
D := b*b - 4*a*c;
If (D<0) then writeln(‘phuong trinh vo nghiem’);
else
begin
x1 := (-b + sqrt (D) ) / (2*a);
x2 := (-b – sqrt (D) ) / (2*a);
writeln(‘x1= ’ , x1:7:3, ’ x2= ’ , x2:7:3);
end;
readln
End.
* Bài tập củng cố:
1. Nêu cú pháp của câu lệnh if-then ở hai dạng thiếu và đủ?
2. Bài tập trắc nghiệm:





Câu 1: Hãy chọn phương án ghép đúng nhất. Trong câu lệnh IF – THEN,
sau IF là <điều kiện>. Điều kiện là:
A, Biểu thức logic. B. Biểu thức số học. C. Một câu lệnh.

Câu 2: Hãy chọn phương án ghép đúng nhất.
Trong câu lệnh IF <điều kiện> THEN .
Câu lệnh đứng sau THEN được thực hiện khi?
điều kiện cho giá trị sai. B. điều kiện cho giá trị đúng.
C. Không cần xét điều kiện

Câu 3: Với cấu trúc IF <điều kiện> THEN ELSE ,
câu lệnh 2 được thực hiện khi?
A.biểu thức điều kiện đúng. B.biểu thức điều kiện sai
C.câu lệnh 1 được thực hiện




* Bài tập củng cố:
Áp dụng: hãy nhập vào một số nguyên a,nếu a chia hết cho hai thì in ra màn hình “a la so chan”, ngược lại in ra “a la so le”.
Program baitap1;
Uses crt;
Var a: integer;
Begin
Write(‘nhap so nguyen a ‘); readln(a);
If (a mod 2 =0) then
Writeln(a, ‘la so chan’);
Else
Writeln(a, ‘la so le’);
Readln
End.
* Dặn dò:
Học bài, Xem bài mới, làm bài tập SGK bài 1,2,4 trang 50-51
Thank you !!!
* 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ẻ: Ong Viet Cuong
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)