1.Kiến thức
Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình.
Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thỏa mãn.
Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while .. do trong Pascal.
2.Kĩ năng
Viết đúng lệnh while .. do trong một số tình huống đơn giản 3.Thái độ
Có ý thức tư duy, có thái độ ham học hỏi, tác phong làm việc nghiêm túc.
4. Định hướng phát triển năng lực:
năng lực sử dụng máy tính, năng lực giải quyết vấn đề, năng lực sáng tạo, ứng dụng KHKT, năng lực tự học, năng lực hợp tác, làm việc nhóm.
PHƯƠNG PHÁP:
Đặt và giải quyết vấn đề
II. CHUẨN BỊ BÀI HỌC: 1. Giáo viên : - SGK, SGV, tài liệu, Giáo án.
2. Học sinh :- Đọc trước bài 8.
III. TIẾN TRÌNH BÀI HỌC:
1.Hoạt động 1: Khởi động (5 phút)
? Hãy cho biết đoạn chương trình in ra giá trị của i,j,k là bao nhiêu ? J :=3 ;k :=4 ;
For i :=1 to 5 do j :=j+1 ; K :=k+j ;
Writeln(j,’ ‘,k) ;
2.Hoạt động 2: Hỡnh thành kiến thức (30 phút) HOẠT ĐÔNG CỦA GV và HS
Các hoạt động lặp với số lần chưa biết trước G: Kể một số hoạt động được lặp đi
lặp lại với số lần biết trước?
G: VD: Tính tổng số tự nhiên từ 1 đến 100, đánh răng, đi học…
H: Trả lời
114
G: Trong thực tế có nhiều hoạt động được thực hiện lặp đi lặp lại với số lần chưa biết trước.
VD: Nhặt thóc không biết khi nào thị nhặt xong.
VD: Bạn Long gọi cho bạn Trang mà không có ai nhấc máy. Vậy bạn Long cứ 10 phút gọi cho bạn Trang cho đến khi nhấc máy thì thôi. Vậy bạn Long có biết trước được gọi mấy lần thì bạn Trang nhấc máy không?
G: Khi nào thì kết thúc hoạt động bạn Long gọi cho bạn Trang?
G: Hãy hình dung
Trong khi <không có ai nhấc máy>
thì < bạn Long cứ mười phút lại gọi 1 lần> cho đến khi < có người nhấc máy>.
VD2: Gv mời 1 em đọc bài toán G: Phân tích bài toán
Phép cộng 1+2+3….n Cho đến khi S>1000 thì dừng lại và in ra kết quả S
G: Yêu cầu học sinh mô tả thuật toán G: Hoạt động này chỉ dừng lại khi điều kiện đó sai S>1000 thì dừng lại.
G: Vẽ sơ đồ
Sai Đúng
H: Học bài không biết khi nào thì thuộc.
H: Không biết được
H: Khi có người nhấc máy.
H: đọc bài.
B1: S 0,n 0;
B2: trong khi s<=1000, nn+1; Ngược lại chuyển tới bước 4;
B3: S s + n và quay lại bước 2;
B4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
H: Vẽ sơ đồ theo bài toán trên.
Sai Đúng
115
Điều kiện
Câu lệnh S<100 0
N:=n+1 S:=s+n
Kết quả
GIÁO ÁN PTNL 5 HOẠT ĐỘNG MÔN TIN 8
G: Yêu cầu HS vẽ sơ đồ theo bài toán trên.
G: Dựa vào 2 VD trên giới thiệu câu lệnh có dạng lặp với số lần chưa biết trước.
Ví dụ về lệnh lặp với số lần chưa biết trước Trong Pascal câu lệnh lặp với số lần
chưa biết trước có dạng:
While <điều kiện> do câu lệnh;
Trong đó: điều kiện thường là một phép so sánh.
Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
G: Câu lệnh này được thực hiện thế nào?
VD3: Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn sai số cho
trước(Sai số=0.005);
G: Cho học sinh giải bài toán.
G: Xác định bài toán G: Mô tả thuật toán
G: Viết chương trình sử dụng vòng lặp while .. do.
G: Gợi ý cho HS viết
Khai báo biến như thế nào?
Khai báo hằng?
Tại sao gán giá trị ban đầu là 1?
Sử dụng lệnh while<điều kiện> do
<câu lênh>
Tại sao lại bỏ trong begin..end?
1. Kiểm tra điều kiện
2. Nếu điều kiện đúng thực hiện câu lệnh và quay lại bước 1, câu lệnh sai sẽ bị bỏ qua và việc thực hiện lệnh sẽ kết thúc.
1/n=0.005 ==> n= 200;
H: input: sai số = 0.005>1/n Output: n
B1: x=1,n=1
B2: khi x>= 0.005 thi nn+1; x1/n B3: in ra giá trị n;
Program VD3;
Uses crt;
Var x: real;
N:integer;
Const saiso=0.005 Begin
Clrsrcr;
X:=1;n:=1;
While x>=saiso do Begin
N:=n+1;x:=1/n;
116
Nếu không bỏ trong begin .. end thì điều gì sẽ xảy ra?
End;
3.Hoạt động 3: Luyện tập, vận dụng, mở rộng (10 phút):
Câu lệnh lặp với số lần biết trước và câu lệnh lặp với số lần chưa biết trước.
Cú pháp câu lệnh lặp chưa biết trước?
.Dặn dò
Làm bài tập trong SGK\T71, học bài.
Tiếp tục xem trước Bài 8.
Rút kinh nghiệm
Ngày soạn:12/01/2021
Tiết: 44 Ngày dạy: /01/2021