- Vieát ñöôïc caùc leänh reõ nhaùnh khuyeát, reõ nhaùnh ñaày ñuû vaø aùp duïng ñeå theå hieän ñöôïc thuaät toaùn cuûa moät soá baøi toaùn ñôn giaûn.. Veà thaùi ñoä :.[r]
(1)Trường THPT Gia Bình 2 Giáo án tin học lớp 11
CHƯƠNG III
CẤU TRÚC RẼ NHÁNH VÀ LẶP Tuần : Tiết : 11
§9 CẤU TRÚC RẼ NHÁNH
I Mục tiêu
1 Về kiến thức:
- Hiểu nhu cầu cấu trúc rẽ nhánh biểu diễn thuật toán
- Hiểu chế hoạt động câu lệnh rẽ nhánh (dạng thiếu dạng đầy đủ) - Hiểu câu lệnh ghép
Về kỹ :
- Sử dụng cấu trúc rẽ nhánh mơ tả thuật tốn số toán đơn giản
- Viết lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ áp dụng để thể thuật toán số toán đơn giản
3 Về thái độ:
- Tiếp tục khơi gợi lịng ham thích giải tốn lập trình máy tính
- Tiếp tục rèn luyện phẩm chất cần thiết người lập trình như: xem xét gảii vấn đề cách cẩn thận, chu đáo, có sáng tạo, khơng thỏa mãn với kết ban đầu đạt được,……
II Phương pháp, phương tiện dạy học - Phương pháp : thuyết trình, vấn đáp
- Phương tiện : máy chiếu, máy tính,sách giáo khoa III Tiến trình daïy
1 Kiểm tra cũ: 2 Giảng
HOẠT ĐỘNG GV HOẠT ĐỘNG HS NỘI DUNG
- Thường ngày có nhiều việc thực có điều kiện cụ thể thỏa mãn dạng mệnh đề nếu… thì…
-Yêu cầu học sinh tìm số ví dụ
- u cầu học sinh trình thuật tốn cách liệt kê sơ đồ khối để giải phương trình bậc hai
- Phân tích để học sinh thấy cấu trúc rẽ nhánh thuật toán
Học sinh ý lắng nghe cho ví dụ tương tự
- nhập a,b,c Tính delta=b2
4ac
Nếu delta>=0 thí tính đưa nghiệm, ngược lại thơng báo phương trình vơ nghiệm
§9 CẤU TRÚC RẼ NHÁNH 1 Khái niệm rẽ nhánh
Ví dụ: Để viết chương trình giải phương trình bậc hai, ta phải:
Tính =b24ac
Sau tùy thuộc vào giá trị mà ta có tính nghiệm hay khơng Tức là: Nếu <0 phương trình vơ nghiệm, ngược lại phương trình có nghiệm Như ta có số mệnh đề dạng: Nếu ………thì………
Nếu ………thì………ngược lại
(2)Trường THPT Gia Bình 2 Giáo án tin học lớp 11 - Từ sơ đồ khối giải phương
trình bậc hai Em cho biết: sử dụng cấu trúc lệnh học trước mơ tả thật tốn khơng?
- Làm chó học sinh thấy rõ cần thiết phải có câu lệnh rẽ nhánh
- Giới thiệu cú pháp phân tích hoạt động câu lệnh rẽ nhánh ngôn ngữ Pascal
- Theo em điều kiện biểu thức nào?
- Chú ý trước Else khơng có dấu chấm phấy
- Cho số ví dụ minh họa để giải thích hoạt động dạng câu lệnh if
- Giả sử ta có đoạn lệnh sau: If d<0 then writeln(‘Pt VN’) Else
Begin
x1:=(bsqrt(d))/2*a;
x2:=(b+sqrt(d))/2*a;
writeln(‘x1=’,x1:8:3,’x2=’,x2:8:3); End;
-Nếu ta bỏ lệnh begin…end; xảy điều ta nhập hệ số tương ứng
Khi chương trình khơng in câu thơng báo phương trình vơ nghiệm mà báo lỗi cho kết sai - Câu lệnh begin .end; gọi câu lệnh ghép
- Không thể viết chương trình để mơ tả thuật tốn
- Học sinh ý theo dõi hoạt động dạng câu lệnh rẽ nhánh
- Là biểu thức lơgic
- Học sinh ý theo dõi lắng nghe
2 Câu lệnh if-then Dạng thiếu:
If <ĐK> then <câu lệnh>; Dạng đầy đủ:
If <ÑK> then <câu lệnh 1> Else <câu lệnh 2>;
Điều kiện : biểu thức quan hệ hay lơgic
Câu lệnh, câu lệnh 1, câu lệnh 2 câu lệnh Pascal
Trước Else khơng có dấu chấm phẩy
* Ý nghóa:
Dạng thiếu: Nếu điền kiện thực câu lệnh, điều kiện sai khơng thực
Dạng đầy đủ: Nếu điền kiện đúng thực câu lệnh 1, điều kiện sai thực câu lệnh 2
Ví du 1:
If a mod 3=0 then
Write(‘a chia het cho 3’)
Else write(‘a khoâng chia het cho 3); Ví dụ 2:
Max:=a
If b>a then max:=b; Hoặc
If a>b then max:=a Else max:=b; 3 Câu lệnh ghép
Trong Pascal câu lệnh ghép có dạng: Begin
<các câu lệnh> End;
Ví dụ:
If delta<0 then
write(‘pt vo nghiem’) Else
Begin
x1:=(bsqrt(delta))/2*a;
x2:=(b+sqrt(delta))/2*a;
End; NhËp a, b, c
TÝnh Delta = b2
– 4ac
KiÓm tra Delta <
Tính đ a
ra nghiệm Thông báo
vô nghiệm
Kết thúc
(3)Trường THPT Gia Bình 2 Giáo án tin học lớp 11
- Từ ví dụ u cầu học sinh hồn thiện chương trình giải phương trình bậc hai
- Hướng dẫn học sinh cách viết ví dụ
- Suy nghĩ trả lời phương trình vơ nghiệm
- Hồn thiện chương trình giải phương trình bậc hai
- Học sinh theo dõ viết chương trình theo hướng dẫn
4 Một số ví dụ
Ví dụ 1: Tìm nghiệm pt bậc dạng ax2+bx+c=0 Các hệ số a,b,c nhập từ bàn
phím
program vidu1;
Uses crt;
var a,b,c,d,x1,x2:real;
begin
clrscr;
write('Nhap a,b,c:’);readln(a,b,c); d:=b*b4*a*c;
If d<0 then writeln(‘Pt vo Nghiem’) Else
Begin
x1:=(bsqrt(d))/2*a;
x2:=(b+sqrt(d))/2*a;
Writeln(‘x1=’,x1:8:3,’x2=’,x2:8:3); End;
readln;
end.
Ví dụ 2: Tìm số ngày năm N, biết năm nhuận năm chia hết cho 400
hoặc chia hết cho không chia hết cho 100
program vidu1;
Uses crt;
var N,sn:integer;
begin
clrscr;
write('Nhap nam:’);readln(N); If (N mod 400=0) or
((N mod 4=0) and (N mod 100<>0) then Then sn:=366
Else sn:=365;
Writeln(‘So cua nam ‘,N,’ la ‘,sn); readln;
end.
3 Củng cố :
Cú pháp ý nghĩa câu lệnh rẽ nhánh? Câu lệnh sau then sau else có nhiều lệnh khơng? Có thể chứa lệnh if khơng?