Thư Viện STEM STEAM Tuần 21 Ngày soạn 15/01/2020 Tiết 39+40 Ngày dạy BÀI TẬP I Mục đích 1 Kiến thức Củng cố các kiến thức câu lệnh lặp với số lần chưa biết trước 2 Kĩ năng Hiểu hoạt động của câu lệnh[.]
Trang 1
Tuần:21 Ngày soạn:15/01/2020
BÀI TẬP
I.Mục đích
1 Kiến thức
Củng cố các kiến thức câu lệnh lặp với số lần chưa biết trước
2.Kĩ năng
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 và vận dụng vào các bài tập
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, tài liệu, Giáo án, bài tập
2 Học sinh :
- Làm bài tập trong SGK
IV Tiến trình tiết dạy
1.Ổn định tổ chức lớp
2 Kiểm tra bài cũ (Kiểm tra trong quá trình làm bài tập)
3 2 Hoạt động 2: Hình thành kiến thức (30 phút)
Bài tập 3: Sgk\71
Viết chương trình pascal thể hiện các thuật
toán sau:
a/ Thuật toán 1:
B1:S 10, X0.5
B2: Nếu S< 5.2, chuyển tới bước 4
B3: SS-X và quay lại bước 2
B4: Thông báo S và kết thúc thuật toán
- Thuật toán này nó chạy bao nhiêu vòng
Hs: Trả lời Bước s X S>5 s-x
1 10 0.5 Đ 10 - 0.5
Trang 2lặp?
Thuật toán chạy 10 vòng lặp
*Thuật toán chạy như sau:
GV: Yêu cầu học sinh viết chương trình
b) Thuật toán 2:
B1:S 10, X0
B2: Nếu S>10, chuyển tới bước 4
B3: nn = 3, : SS - n quay lại bước 2
B4: Thông báo S và kết thúc thuật toán
- Thuật toán này nó chạy bao nhiêu vòng
lặp?
Thuật toán không thực hiện bước nào
Gv: giải thích
GV: Yêu cầu học sinh viết chương trình
Bài 4: SGK\T71
a Chương trình chạy như sau:
S:= 0; n:= 0;
While s<=10 do
Begin n:=n+1; s:=s+n end;
GV: Chương trình trên thực hiện bao nhiêu
vòng lăp?
GV: Gợi ý cho chạy vòng lặp
2 9.5 0.5 Đ 9.5 – 0.5
3 9.0 0.5 Đ 9.0 – 0.5
4 8.5 0.5 Đ 8.5 - 0.5
5 8.0 0.5 Đ 8.0 – 0.5
6 7.5 0.5 Đ 7.5 – 0.5
7 7 0.5 Đ 7.0 - 0.5
8 6.5 0.5 Đ 6.5 – 0.5
9 6 0.5 Đ 6.0 – 0.5
10 5.5 0.5 Đ 5.5 - 0.5
11 5.0 0.5 S Kết thúc
HS: Viết chương trình S:=10; x:=0.5;
While s>5.2 do s:=s – x;
Write (s);
Hs: Trả lời
HS: Viết chương trình s:=10; n:= 0;
While s< 10 do Begin n:= n+3; s:=s- n;
end;
Writeln (s);
HS: Trả lời HS: Tiếp tục phân tích và chạy chương trình
Trang 3N S S<=10
b Chương trình chạy như sau:
S:= 0; n:= 0;
While s<=10 do
n:=n+1; s:=s+n ;
GV: Cho học sinh chạy chương trình và
xem có bao nhiêu vòng lặp?
GV: Chạy chương trình và giải thích sau
câu lệnh lặp chỉ thực hiện lệnh n:=n+1 nên
vòng lặp vô hạn
N=0 S = 0
1 S: luôn luôn bằng 0;
bởi vì sau câu lệnh n:
= n+1; câu lệnh lặp kết thúc nên điều kiện s=0 luôn luôn thoã mãn
2
3
4
…
N thực hiện vô
tận
GV: Từ 2 ví dụ trên em có nhận xét gì?
GV: Nhận xét và đưa ra kết luận
Bài 5 :T\71 : Hãy chỉ ra lỗi trong các câu
lệnh sau đây :
a x : =10 ; while x :=10 do x := x
+ 5
b x :=10 ; while x = 10 do x := x
+ 5
c s :=0 ;n :=0 ; while s<=10 do
n :=n+1 ; s :=s+n ;
HS: Chạy chương trình trên giấy nháp
HS: Trong câu a thì 2 lệnh n:=n+1 và s:=s+n nằm trong begin end nên thực hiện
2 lệnh trên cùng lúc
Trong câu b 2 lệnh không nằm trong begin end nên chỉ thực hiện lệnh sau điều kiện
a Sai vì x:=10 đúng phải là x=10;
b Sai vì x=x+5 đúng x:=x+5
c Sai vì vòng lặp sẽ vô hạn gây treo máy
Trang 4Bài tập 6: Cho đoạn chương trình sau hãy
xác định chương trình có bao nhiêu vòng
lặp và kết quả cuối cùng (j,k) bằng bao
nhiêu?
J:=1; k:=2;i:=0;
While i<5 do
Begin
I:=i+1;
J:=J+1;
K:=K+J;
End;
Writeln(j,k);
Nếu chương trình như sau thì cuối cùng kết
quả (j,k) bằng bao nhiêu?
J:=1; k:=2;
While i<5 do
I:=i+1;
J:=J+1;
K:=K+J;
Writeln(j,k);
HS: Phân tích vòng lặp trên giấy
HS: vẽ bảng phân tích và lên bảng làm bài
Trang 54.Hoạt động 3: Luyện tập, vận dụng, mở rộng (10 phút):
- Sử dụng While … do cho các chương trình lặp với số lần chưa biết trước
- Câu lệnh kép nằm trong Begin…end
5.Dặn dò:
- Xác định được chương trình có bao nhiêu vòng lặp
- Soạn bài TH6 – Chạy chương trình
VI Rút kinh nghiệm
………
………