Giáo án Tin học Lớp 8 - Chương trình học kì II - Năm học 2020-2021

Giáo án Tin học Lớp 8 - Chương trình học kì II - Năm học 2020-2021

.Mục tiêu

1. Kiến thức

 Viết đúng lệnh for . do trong một số tình huống đơn giản.

2. Kỹ năng

 Vận dụng lệnh for . do trong các bài toán đơ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.

III. Chuẩn bị :

1. Giáo viên : - SGK, SGV, tài liệu, Giáo án

2. Học sinh : Đọc trước bài 7.

III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC

1.Ổn định lớp(1 phút)

2.Kiểm tra bài cũ: Kết hợp trong giờ

3.Bài mới

I.Mục tiêu

1. Kiến thức: -Củng cố sử dụng câu lệnh điều kiện và câu lệnh lặp.

1. Kĩ năng: -Biết vận dụng câu lệnh IF . Then và For do vào một số bài tập đơn giản.

2. 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.

II. Chuẩn bị

1. Giáo viên : - SGK, SGV, tài liệu, Giáo án

2. Học sinh :- Làm bài tập trong SGK

III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC

1.Ổn định lớp(1 phút)

2.Kiểm tra bài cũ: Kết hợp trong giờ

3.Bài mới

 

doc 64 trang thucuc 3610
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án Tin học Lớp 8 - Chương trình học kì II - Năm học 2020-2021", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn: 17/01/2021 
Ngày dạy: 18/01/2021
Bài 7 : CÂU LỆNH LẶP
I.Mục tiêu
1. Kiến thức
- Biết nhu cầu cần có cấu trúc lặp 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 để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.
- Hiểu hoạt động của câu lệnh lặp với số lần biết trước for do trong Pascal.
- Hiểu lệnh ghép trong Pascal.
Kĩ năng
- Viết đúng lệnh for .. do trong một số tình huống đơn giản
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.
II. Chuẩn bị : 
1. Giáo viên: - SGK, SGV, tài liệu, Giáo án 
2. Học sinh: - Đọc trước bài 7.
III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC 
1.Ổn định lớp(1 phút) 
2.Kiểm tra bài cũ: Không kiểm tra.
3.Bài mới
Hoạt động của giáo viên và học sinh
Nội dung
HĐ 1. Các công việc phải thực hiện nhiều lần
GV: Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần. Ví dụ:
- Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà.
- Các em đọc bài thơ phải đọc đi đọc lại nhiều lần cho đến khi thuộc bài.
? Hãy cho thêm một vài ví dụ trong thực tế, trong đời sống hằng ngày mà ta phải thực hiện các thao tác được lặp đi lặp nhiều lần?
HS: Lắng nghe và suy nghĩ rồi đứng tại chỗ trả lời
GV: Khi viết chương trình máy tính cũng vậy, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều câu lệnh chỉ để thực hiện 1 phép tính nhất định.
 Từ VD của HS GV đưa ra thêm 1 số hoạt động để củng cố lại nội dung này.
HS: Ghi vào vở
HĐ 2. Câu lệnh lặp - một lệnh thay nhiều lệnh
GV: Yêu cầu 1 HS đọc ví dụ 1 trong SGK.
HS: Đọc ví dụ 1
GV: Gọi 1 hs lên bảng vẽ một hình vuông cạnh 1 đơn vị độ dài (20cm) và yêu cầu cả lớp theo dõi bạn thực hiện các thao tác trên bảng.
HS: Lên bảng vẽ hình vuông
GV: ? Yêu cầu 1 hs mô tả các bước bạn vẽ trên bảng.
HS: Trả lời 
GV: ? Vậy khi bạn vẽ 1 hình vuông đó thực hiện bao nhiêu thao tác? 
HS: Có thể vẽ 4 đoạn thẳng.
GV: Gợi ý thêm thao tác quay thước.
- Bổ sung trình bày các bước làm.
- Như vậy khi vẽ hình vuông có những thao tác lặp đi lặp lại. Thuật toán sau sẽ mô tả các bước để vẽ hình vuông.
HS: Cùng thảo luận, đưa ra ý tưởng
GV: Mô tả thuật toán trên bảng
HS: Chú ý quan sát các bước mô tả
GV: Yêu cầu 1 HS đọc ví dụ 2 trong SGK.
HS: Đọc ví dụ 2
GV: Mô tả thuật toán tính tổng các số tự nhiên từ 1→ 100.
HS: Chú ý ghi chép
HĐ 3. Ví dụ về câu lệnh lặp
GV: Yêu cầu 1 HS đọc mục 3
HS: Đọc mục 3
GV: Đưa ra cấu trúc câu lệnh lặp
 ? for, to, do là gì?
 Gọi 1 HS đứng tại chỗ trả lời
HS: Chú ý lắng nghe và trả lời câu hỏi
GV: Chốt lại câu trả lời của HS 
HS: Ghi vào vở
GV: Giải thích hoạt động của câu lệnh lặp
HS: Chú ý quan sát
1. Các công việc phải thực hiện nhiều lần
- Trong cuộc sống hàng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần.
- Có những hoạt động mà chúng ta thực hiện lặp với số lần nhất định và biết trước và những công việc và số lần không biết trước.
Ví dụ:
+ Số lần lặp biết trước:
 Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà.
+ Số lần lặp không biết trước:
 Trong một trận cầu lông các em lặp đi lặp lại công việc đánh cầu cho đến khi kết thúc trận cầu.
- Khi viết chương trình máy tính cũng vậy, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều lần câu lệnh chỉ để thực hiện 1 phép tính nhất định.
2. Câu lệnh lặp - một lệnh thay nhiều lệnh
Ví dụ 1: Giả sử cần vẽ 3 hình vuông có cạnh 1 đơn vị như sau:
Mỗi hình vuông là ảnh của hình bên trái nó dịch chuyển 1 khoảng cách 2 đơn vị.
·
Bước 1: Vẽ hình vuông (vẽ liên tiếp 4 cạnh và trở về đỉnh ban đầu)
Bước 2: Nếu số hình vuông đã được vẽ ít hơn 3, di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bước 1; ngược lại thì kết thúc thuật toán.
Riêng với 1 bài toán vẽ hình vuông thì thao tác chính là vẽ bốn cạnh bằng nhau, hay lặp lại 4 lần thao tác vẽ đoạn thẳng
Thuật toán mô tả các bước để vẽ hình vuông.
Bước 1: k ← 0 (k là số đoạn thẳng đó vẽ được).
Bước 2: k ← k+1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 900 sang phải.
Bước 3: Nếu k<4 thì quay lại bước 2; ngược lại kết thúc.
-> k là biến đếm
Ví dụ 2: Thuật toán tính tổng
 S = 1 + 2 + 3 + + 100
Bước 1: S ← 0; i ← 0.
Bước 2: i← i + 1
Bước 3: nếu i ≤ 100, thì S ← S + i và quay lại bước 2; ngược lại kết thúc.
 -> i là biến đếm
Mô tả thuật toán trên gọi là cấu trúc lặp.
Mọi ngôn ngữ lập trình đều có cách chỉ thị cho máy tính thực hiện cấu trúc lặp chỉ với 1 câu lệnh. Đó là các câu lệnh lặp
3. Ví dụ về câu lệnh lặp
- Trong Pascal cấu trúc lệnh lặp có dạng:
For := to do ;
Trong đó: for, to, do là từ khoá, biến đếm là biến kiểu nguyên, giá trị đầu và giá trị cuối là các giá trị nguyên.
- Đây là câu lệnh for dạng tiến
- Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần là 1 vòng lặp. Số vòng lặp là biết trước và bằng: 
 giá trị đầu - giá trị cuối + 1
- Hoạt động: Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp biến đếm được tự động tăng thêm 1 đơn vị cho đến khi bằng giá trị cuối thì kết thúc.
4.Củng cố (3’)
Câu lệnh lặp dùng để chỉ dẫn máy tính làm gì?
Cú pháp câu lệnh lặp?
Như thế nào được gọi là câu lệnh ghép?
5.Dặn dò (1’)
Làm bài tập trong SGK
Xem tiếp phần 3,4 bài 7.
*******************************************
Ngày soạn: 12/01/2020 
Ngày dạy: .
Tiết 38.	Bài 7 : CÂU LỆNH LẶP(tt)
I.Mục tiêu
1. Kiến thức
Viết đúng lệnh for .. do trong một số tình huống đơn giản..
2. Kỹ năng
Vận dụng lệnh for .. do trong các bài toán đơ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.
III. Chuẩn bị : 
1. Giáo viên : - SGK, SGV, tài liệu, Giáo án 
2. Học sinh : Đọc trước bài 7.
III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC 
1.Ổn định lớp(1 phút) 
2.Kiểm tra bài cũ: Kết hợp trong giờ
3.Bài mới
Hoạt động của giáo viên và học sinh
Nội dung
HĐ 1. Ví dụ về câu lệnh lặp
GV: Mô tả hoạt động của ví dụ 3 để HS thấy được số vòng lặp.
- Bảng lặp
Lần lặp thứ
1
Kết quả
1
1
Day la lan lap thu 1
2
2
Day la lan lap thu 2
3
3
Day la lan lap thu 3
4
4
Day la lan lap thu 4
5
5
Day la lan lap thu 5
HS: Chú ý quan sát và ghi vào vở
GV: Để in 1 chữ "O" ra màn hình ta sử dụng lệnh?
HS: Nguyên cứu trả lời câu hỏi 
GV: ? Muốn viết chương trình ghi nhận các vị trí của 1 quả trứng rơi từ trên cao xuống? thì như VD trên ta có thể lặp lại lệnh writeln('O') nhiều lần.
 ? Lệnh delay(100) có ý nghĩa gì?
HS: Là hàm khai báo thời gian rơi nhanh hay chậm của chữ O).
GV: Chốt lại câu trả lời, y/c ghi vào vở 
Giải thích khi sử dụng câu lệnh ghép ta phải được đặt trong 2 từ khóa begin và end.
HĐ 2. Tính tổng và tích bằng câu lệnh lặp
GV: Bài này giống ý tưởng trong ví dụ tính tổng 100 số tự nhiên đầu tiên. Từ ví dụ đó hãy áp dụng câu lệnh for.. do để giải quyết bài này
? Trong chương trình ta sử dụng những biến gì? những câu lệnh gì?
HS: Trả lời câu hỏi
GV: ? Biến S ta khai báo là kiểu longint nó là kiểu nguyên nó lưu trữ trong phạm vi lớn hơn kiểu integer hay không?
HS: Thảo luận rồi đại diện các nhóm trả lời 
Từ đó GV nhận xét và bổ sung
GV yêu cầu HS chạy bài toán bằng lời
GV: Trong chương trình ta sử dụng những biến gì? Những câu lệnh gì?
HS: Trả lời câu hỏi
GV: ý tưởng của bài này là tính tích N số tự nhiên đầu tiên. Vậy ý tưởng bài này giống ví dụ 5 không? chỉ khác là gì? 
HS: Chỉ khác là tích. 
GV: ? Vậy em nào có thể lên bảng viết được chương trình?
HS: Lên bảng viết chương trình.
GV yêu cầu HS chạy bài toán bằng lời
GV: Có chương trình sau:
? Chúng ta cùng mô tả bài toán này bằng lời nhé.
HS: Chú ý lắng nghe
GV: ? Các em thấy kết quả có gì khác với cách làm ở trên?
HS: Kết quả giống nhau
GV: ? Vậy chương trình này có khác với chương trình trên không và khác ở đâu? GV đưa ra cấu trúc câu lệnh for dạng lùi
For := downto do ;
3. Ví dụ về câu lệnh lặp
- Ví dụ 3: Chương trình đưa ra màn hình thứ tự lần lặp.
Program Lap;
var i: Integer;
begin
 for i:= 1 to 10 do
 writeln('Day la lan lap thu ',i);
 readln
end.
Ví dụ 4: Để in 1 chữ "O" ra màn hình ta sử dụng lệnh Writeln('O');
- Ví dụ cho lặp 20 lần.
Program Trung_roi;
uses crt;
var i: Integer;
begin
 clrscr;
 for i:= 1 to 20 do
 begin
 writeln('O'); delay(100)
 end;
 readln
end.
- delay(x): Dừng chương trình trong x miligiây trước khi chạy tiếp.
4. Tính tổng và tích bằng câu lệnh lặp
Ví dụ 5: Chương trình tính tổng của N số tự nhiên đầu tiên, với N được nhập vào từ bàn phím.
Program Tinh_tong;
uses crt;
var N, i : integer;
 S : longint;
begin
 clrscr;
 Write('Nhap so N='); Readln(N);
 S := 0;
 for i:= 1 to N do S:= S + i;
 writeln('Tong cua N la:',S); 
 readln
end.
- Kiểu longint có phạm vi từ -231 đến 231 - 1.
Ví dụ 6: Ta kí hiệu N! là tích N số tự nhiên đầu tiên: N! = 1.2.3...N
- Dạng tiến
Program Tinh_giai_thua;
uses crt;
var N, i : integer;
 P : longint;
begin
 clrscr;
 Write('Nhap so N='); Readln(N);
 P := 1;
 for i:= 1 to N do P:= P*i;
 writeln('Tich cua N so tu nhien la:',P); 
 readln
end.
- Dạng lùi
Program Tinh_giai_thua;
uses crt;
var N, i : integer;
 P : longint;
begin
 clrscr;
 Write('Nhap so N='); Readln(N);
 P := 1;
 for i:= N downto 1 do P:= P*i;
 writeln('Tich cua N so tu nhien la:',P); 
 readln
end.
* Câu lệnh for dạng lùi
For := downto do ;
4.Củng cố (3’)
- Vận dụng câu lệnh lặp vào các bài toán
5.Dặn dò (1’)
Làm bài tập trong SGK
Tiết sau là tiết bài tập.
Ngày soạn: 12/01/2020 
Ngày dạy: .
Tiết 39.
BÀI TẬP
I.Mục tiêu
1. Kiến thức: -Củng cố sử dụng câu lệnh điều kiện và câu lệnh lặp.
Kĩ năng: -Biết vận dụng câu lệnh IF .. Then và For do vào một số bài tập đơn giản.
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.
II. Chuẩn bị 
1. Giáo viên : - SGK, SGV, tài liệu, Giáo án
2. Học sinh :- Làm bài tập trong SGK
III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC 
1.Ổn định lớp(1 phút) 
2.Kiểm tra bài cũ: Kết hợp trong giờ
3.Bài mới
Hoạt động của thầy và trò
Nội dung
+ Hoạt động 1: Ôn lại một số kiển thức đã học (10’)
 GV yêu cầu Hs nhắc lại cú pháp các câu lệnh đã học
Hs: Nhắc lại
 - Cú pháp câu lệnh điều kiện:
	If then ;
	If then else ;
 - Cú pháp câu lệnh lặp: 
For := to do ;
+ Hoạt động 2: Vận dụng các kiến thức đã học để làm một số bài tập (30’)
Gv: Đưa ra các bài tập, yêu cầu hs làm bài.
* Bài tập 1: Hãy cho biết tác dụng của câu lệnh lặp!
* Bài tập 2: Chương trình Pascal sau đây thực hiện hoạt động nào?
var i: integer;
begin
for i:=1 to 1000 do;
end.
* Bài tập 3: Viết chương trình Pascal nhập n số nguyên từ bàn phím và ghi ra màn hình số lớn nhất trong các số đó. Số n cũng được nhập vào từ bàn phím. (Xem mô tả thuật toán trong Ví dụ 6, Bài 5.)
Hướng dẫn, giải đáp thắc mắc của Hs
Thuật toán:
Bước 1. Nhập số n. 
Bước 2. A¬ -32768 (gán số nhỏ nhất có thể trong các số kiểu nguyên cho A), i¬1. 
Bước 3. Nhập số thứ i và gán giá trị đó vào biến A.
Bước 4. Nếu Max < A, Max ¬ A. 
Bước 5. i¬i + 1.
Bước 6. Nếu i ≤ n, quay lại bước 3.
Bước 7. Thông báo kết quả Max là số lớn nhất và kết thúc thuật toán
1. Ôn lại một số kiến thức đã học:
- Cú pháp câu lệnh điều kiện:
	If then ;
	If then else ;
- Cú pháp câu lệnh lặp: 
For := to do ;
2. Bài tập:
* Bài tập 1:
Câu lệnh lặp có tác dụng làm đơn giản và giảm nhẹ công sức của người viết chương trình!
* Bài tập 2: Tuy có vòng lặp 1000 lần, nhưng chương trình Pascal nói trên không thực hiện bất kì một hoạt động nào. Tuy nhiên đây vẫn là câu lệnh hợp lệ.
* Bài tập 3: Chương trình Pascal có thể như sau:
uses crt;
var n,i,Max,A: integer;
begin
clrscr;
write('Nhap N='); readln(n);
Max:=-32768;
for i:=1 to n do
 begin write('Nhap so thu ',i,':'); readln(A);
 if Max<A then Max:=A end;
writeln('So lon nhat: ',Max);
end.
4.Củng cố (3’)
 - Câu lệnh điều kiện và vòng lặp.
5. Dặn dò (1’)
Viết chương trình tính tổng BT6\T61.
Soạn bài thực hành 5.
****************************************************
Ngày soạn: 12/01/2020 
Ngày dạy: .
Tiết 40.
Bài thực hành 5: SỬ DỤNG LỆNH LẶP FOR DO (t1)
I.Mục tiêu
1. Kiến thức
Viết được chương trình có sử dụng vòng lặp For Do
Sử dụng được câu lệnh ghép
 2.Kĩ năng
Đọc hiểu chương trình có vòng lặp For Do
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.
III. Chuẩn bị
1. Giáo viên: - SGK, tài liệu, Giáo án, Phòng máy
- Đồ dùng dạy học.
2. Học sinh:- Đọc trước bài Thực hành 5.
III. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC 
1Ổn định tổ chức lớp(1 phút).
2.Kiểm tra bài cũ : Kết hợp trong giờ	
3.Bài mới
Hoạt động của GV và HS
Nội dung
Hoạt động 1 : các kiến thức cần nhớ (5’)
- GV: Gọi HS nhắc lại cấu trúc lênh lặp với số lần lặp chưa biết trước?
- HS trả lời câu hỏi của GV
- GV nhận xét và chốt ý
- HS theo dõi, tiếp thu và ghi vở
- GV: Em hãy mô tả hoạt động của câu lệnh lặp với số lần chưa biết trước?
- HS dựa vào cấu trúc câu lệnh lặp và mô tả hoạt động của câu lệnh
- GV gọi 1 HS khác nhận xét và bổ sung
- 1 HS khác nhận xét
- GV nhắc lại một lần nữa
- HS lắng nghe và ghi bài vào vở
While Do 
* Hoạt động:
Bước 1 : Kiểm tra điều kiện.
Bước 2 : Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
Hoạt động 2 : bài tập 1 (20’)
GV: giành thời gian 15 phút để HS lập trình bài toán đã làm 
Bài 1
HS : đọc đề
GV :? Nêu cách giải?
HS : nêu phương án
GV :?Cần nhân 1 số với các số từ 1 đền 10. Gọi số đó là số N ta sẽ sử dụng vòng lặp xác định từ giá trị đầu đến giá trị cuối là bao nhiêu?
HS : từ 1 đến 10
GV :? yêu cầu mở rộng: in ra tất cả bảng cửu chương từ 1 đến 10?
HS : nêu phương án
GV :? giá trị N lúc này có phải nhập nữa không?
HS : không
GV :?Giá trị N chạy từ bao nhiêu đến bao nhiêu?
HS : từ 1 đến 10
GV : =>Vậy ta cần một vòng lặp N từ 1 đến 10 
GV: yêu cầu HS làm thành hai bài khác nhau
HS : lập trình và chạy chương trình 
GV : ? Quan sát kết quả nhận được? Kết quả có dễ dàng quan sát không?
HS : sửa theo hướng dẫn của GV.
GV :? Thực hiện bài 2
GV :? Để kết quả trông dễ nhìn ta sử dụng Câu lệnh GotoXY(a, b) có tác dụng đưa con trỏ về cột a, hàng b. WhereX cho biết số thứ tự của cột và WhereY cho biết số thứ tự của hàng đang có con trỏ. Ví dụ GotoXY(5,WhereY) đưa con trỏ về vị trí cột 5 của hàng hiện tại.
HS : Dịch và chạy chương trình 
GV: Giúp HS sửa một số lỗi.
Bài 1( SGK)
uses crt;
var N,i:integer;
begin
clrscr;
write('Nhap so N='); readln(N);
writeln;
writeln('Bang nhan ',N);
writeln;
for i:=1 to 10 do writeln(N,' x ',i:2,' = ',N*i:3);
readln
end.
In toàn bộ bảng cửu chương
uses crt;
var N,i:integer;
begin
clrscr;
writeln('Bang nhan ',N);
writeln;
for N:=1 to 10 do
for i:=1 to 10 do writeln(N,' x ',i:2,' = ',N*i:3);
readln
end.
Chỉnh sửa câu lệnh lặp của chương trình như sau:
for i:=1 to 10 do 
begin 
GotoXY(5,WhereY); writeln(N,' x ',i:2,' = ',N*i:3); writeln 
end;
Hoạt động 2 : bài tập 2 (15‘)
- Tương tự như bài 1, GV cho HS gõ bài làm của mình ở nhà vào máy.
- HS thực hiện theo yêu cầu của GV.
- GV quan sát trên máy HS và chữa lại chỗ sai.
- HS quan sát và theo dõi
- GV cho HS chữa bài vào vở
- HS ghi bài vào vở
Bài 2: Viết chương trình tìm xem có bao nhiêu số dương trong n số nhập vào từ bàn phím?
Program tinh_so_cac_so_duong;
Uses crt;
Var i,A, dem, n: integer; 
Begin
 Clrscr;
 Dem:=0;
 Writeln(‘Nhap vao so n’); readln(n);
 For i:=1 to n do 
 begin
 writeln(‘nhap vao so thu’,i); readln(A);
 if A>0 then dem:=dem+1;
 end;
 Writeln(‘So cac so duong la’,dem); 
 Readln;
End.
4.Củng cố: 2’
- Cú pháp câu lệnh lặp?Như thế nào được gọi là câu lệnh ghép.
- Sử dụng for do lồng vào nhau?câu lệnh Gotoxy(a,b) có tác dụng gì? Wherex,wherey dùng để làm gì?
5.Dặn dò: 2’
- Về nhà làm bài tập trong SGK
 - Chạy và sửa lỗi các chương trình trên.
********************************************************
Ngày soạn: 19/01/2020 
Ngày dạy: .
Tiết 41.
Bài 8 : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 
I.Mục tiêu
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.
II. Chuẩn bị : 
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. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC : 
1.Ổn định lớp (1 phút) 
2.Kiểm tra bài cũ: Kết hợp trong giờ.
3.Bài mới
Hoạt động của GV và HS
Nội dung
Hoạt động 1 : Các hoạt động lặp với số lần chưa biết trước (15’)
Gv : : y/c hs đọc ví dụ 1sgk/67
Gv : : Phân tích ví dụ 
Hs : 2-3 hs đọc ví dụ sgk
Hs : Chú ý lắng nghe
Gv : : Hướng dẫn hs xây dựng thuật toán
Hs : Chú ý nghe 
Gv : : Chạy tay cho học sinh
 xem (Chỉ nên chạy tay thử từ 1 -> 10 )
Hs ghi vở ví dụ 2
 Gv: Giới thiệu sơ đồ khối
Hoạt động 2: Ví dụ về lệnh lặp với số lần chưa biết trước (25’)
Gv: Có thể sử dụng lệnh lặp với số lần lặp chưa biết trước trong các chương trình lập trình . Sau đây ta xét câu lệnh và ví dụ trong TP
 Gv : : Giới thiệu cú pháp lệnh
while do .;
Gv: Xét ví dụ 3 
Chúng ta biết rằng, nếu n càng lớn thì càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì < 0.005 hoặc < 0.003 ? 
Gv: giới thiệu chương trình mẫu sgk (.
 Gv: Chạy tay cho học sinh xem
 Gv: Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 3 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy )
 Hs : thực hiện 
 Gv: Cho học sinh chạy chương trình trên máy 
 G : Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ...
1. Các hoạt động lặp với số lần chưa biết trước
a/ Ví dụ 1(sgk).
b/ Ví dụ 2 : Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
+ Hs : Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán
Giải :
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
+ Bước 1. S ¬ 0, n ¬ 0.
+ Bước 2. Nếu S ≤ 1000, n ¬ n + 1; ngược lại chuyển tới bước 4.
+ Bước 3. S ¬ S + n và quay lại bước 2.
+ Bước 4. 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.
* Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước
2. 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 do ;
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.
Câu lệnh lặp này được thực hiện như sau:
Bước 1 : Kiểm tra điều kiện.
Bước 2 : Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
Ví dụ 3. 
+ Hs : Đọc ví dụ 3 
+ Hs : quan sát 
Với giá trị nào của n ( n>o ) thì < 0.005 hoặc < 0.003? Chương trình dưới đây tính số n nhỏ nhất để nhỏ hơn một sai số cho trước : 
uses crt;
var x: real;
n: integer;
const sai_so=0.003;
begin
clrscr;
x:=1; n:=1;
while x>=sai_so do begin n:=n+1; x:=1/n end;
writeln('So n nho nhat de 1/n < ',sai_so:5:4, 'la ',n);
readln
end.
4.Củng cố 2’
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?
5.Dặn dò 2’
Làm bài tập trong SGK\T71, học bài.
Tiếp tục xem trước phần 2 Bài 8.
********************************************************
Ngày soạn: 19/01/2020 
Ngày dạy: .
Tiết 46.
BÀI TẬP
I.Mục tiêu
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.
II. Chuẩn bị : 
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. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC 
1.Ổn định tổ chức lớp(1 phút) 
2. Kiểm tra bài cũ (Kiểm tra trong quá trình làm bài tập)
3. Bài mới
Hoạt động của GV và HS
Nội dung
Hoạt động 1: Bài tập dạng lí thuyết (10’)
GV: Đưa ra đề bài toán, yêu cầu học sinh nghiên cứu theo nhóm.
-HS: Hoạt động theo nhóm tìm câu trả lời.
- HS: Đại diện của hai nhóm trình bày kết quả của nhóm.
-GV: Nhận xét kết quả cuối cùng.
- GV: Đưa bài tập 2 lên bảng, yêu cầu một học sinh đứng tại chỗ trả lời.
- HS: Một học sinh đứng tại chỗ trả lời bài tập 2. một học sinh khác đứng tại chỗ nhận xét.
- GV: Kết luận kết quả của bài 2.
-GV: GV: Đưa ra đề bài toán, yêu cầu học sinh nghiên cứu theo nhóm.
-HS: Hoạt động theo nhóm tìm câu trả lời.
- HS: Đại diện của hai nhóm trình bày kết quả của nhóm.
- GV: Nhận xét.
Bài 1: SGK (T60)
Bài 2: SGK (T60)
- Câu lệnh lặp có tác dụng chỉ dẫn cho máy tính thực hiện lặp lại một câu lệnh hay một nhóm câu lệnh với một số lần nhất định.
- Câu lệnh lặp làm giảm nhẹ công sức của người viết chương trình.
Bài 3 SGK (T60)
- Điều kiện cần kiểm tra trong câu lệnh lặp for do là giá trị của biến đếm phải nằm trong đoạn [giá trị đầu, giá trị cuối ], nếu thoả mãn điều kiện đó thì câu lệnh sẽ được thực hiện, nếu không thoả mãn câu lệnh sẽ bị bỏ qua.
Hoạt động 2: Bài tập dạng thực hành (30’)
GV: Đưa ra đề bài toán và yêu cầu một học sình đứng tại vị trí để trả lời bài tập.
-HS: 1em đứng tại vị trí trả lời, 1 em khác nhận xét.
- GV: Nhận xét kết quả câu trả lời của 2 bạn.
- GV: Đưa bài tập
- HS: Suy luận kết quả theo lí thuyết
- GV: Ghi kết quả suy luận của học sinh lên bảng
- HS: gõ chương trình vào máy và chạy thử
- HS: So sánh kết quả nhận được với kết quả đã suy lận
- 1 HS giải thích kết quả thu được
- GV Đưa ra bài tập 6.
- HS: Làm việc theo nhóm, sau 5 phút đại diện của 2 nhóm sẽ lên báo báo kết quả.
- Các nhóm khác nhận xét
- GV: Giúp các em hoàn thành thuật toán.
Bài 5 SGK (T61)
Tất cả các câu lệnh đều không hợp lệ vì:
a) giá trị đầu lớn hơn giá trị cuối
b) giá trị đầu và giá trị cuối có kiểu là số thực không cùng kiểu với biến đếm
c) sai cấu trúc câu lệnh
d) sai cấu trúc câu lệnh
e) biến đếm có kiểu là kiểu số thực nên không hợp lệ.
Bài 4 SGK (T61)
Giá trị của j sau mỗi lần lặp sẽ được tăng thêm 2 đơn vị
2, 4, 6, 8, 10, 12.
Bài 6 SGK (T 61)
- Mô tả thuật toán.
Bước 1: nhập n
 A<-0, i<-1
Bước 2: A<- 2\i(i+2)
Bước 3: i<-i+1
Bước 4: nếu i<=n quay về bước 2
Bước 5: ghi kết quả A ra màn hình và kết thúc thuật toán.
4.Củng cố: 3’
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ò: 1’
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.
Tiết 47.
Bài thực hành 6: SỬ DỤNG LỆNH LẶP WHILE DO
I.Mục tiêu
1. Kiến thức
Viết được chương trình có sử dụng vòng lặp While do
Sử dụng được câu lệnh ghép
 2.Kĩ năng
Đọc hiểu chương trình có vòng lặp while do
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.
III. Chuẩn bị : 
1. Giáo viên: - SGK, tài liệu, Giáo án, Phòng máy
2. Học sinh: - Đọc trước bài TH6
IV. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC : 
1.Ổn định tổ chức lớp(1 phút) 
2.Kiểm tra bài cũ ( Kiểm tra trong qua trình thực hành).
3.Bài mới
Hoạt động của GV và HS
Nội dung
Hoạt động 1 : bài tập 1 (40’)
GV: yªu cÇu c¸c nhãm gâ ctr×nh Chao_hoi mµ c¸c em ®· lµm ë bµi lÝ thuyÕt vµ quan s¸t kÕt qu¶ trong 5 phót
HS: gâ ch¬ng tr×nh, ch¹y thö ch¬ng tr×nh, vµ b¸o c¸o kÕt qu¶.
Sau khi kÕt qu¶ ch¹y ch¬ng tr×nh ®· ®óng, GV yªu cÇu häc sinh ®èi chiÕu bµi trong vë vµ ch¬ng tr×nh ®· ch¹y ®Ó kiªm tra cho ®óng.
GV: y/c HS ®äc bµi tËp 1 vµ x¸c ®Þnh Input, Output 
HS: tr¶ lêi c¸ nh©n
GV: Híng dÉn HS x©y dùng thuËt to¸n
HS: th¶o luËn theo nhãm vµ x©y dùng t.to¸n theo hdÉn cña GV.
GV: gäi ®¹i diÖn nhãm lªn tr×nh bµy trªn b¶ng.
HS: ®¹i diÖn nhãm tr×nh bµy, c¸c nhãm kh¸c nhËn xÐt.
GV: y/c HS c¨n cø vµo m« t¶ t.to¸n, x¸c ®Þnh c¸c biÕn vµ kiÓu dliÖu t¬ng øng cÇn khia b¸o trong ctr×nh.
HS: th¶o luËn nhãm nªu c¸c biÕn cÇn sö dông vµ kiÓu cña chóng.
GV: y/c HS gâ ctr×nh, dÞch, chØnh söa, ch¹y vµ kiÓm thö ctr×nh.
HS: thùc hiÖn.
GV: y/c HS th¶o luËn nhãm chuyÓn tõ sö dông c©u lÖnh while do sang c©u lÖnh for do vµo vë
HS: th¶o luËn nhãm, thùc hiÖn
GV: theo dâi, hdÉn HS thùc hiÖn
GV lu ý HS vÒ c¬ b¶n t×nh huèng sö dông while do vµ for lµ kh¸c nhau, while do thÝch hîp h¬n víi t×nh huèng lÆp víi sè lÇn cha biÕt tríc, for do thÝch hîp h¬n víi t×nh huèng lÆp víi sè lÇn biÕt tríc. Vdô kh«ng thÓ sö dông c©u lÖnh for do ®Ó thay thÕ while do trong ctr×nh Chao_hoi ®îc.
Bµi 1: ViÕt ctr×nh sö dông c©u lÖnh while do ®Ó tÝnh trung b×nh n sè thùc x1,x2,x3, xn. C¸c sè n vµ x1,x2,x3, ... xn ®îc nhËp vµo tõ bvµn phÝm
a)
 * X®bt:
Input: D·y sè thùc x1,x2,x3, ... xn ;
Output : Gi¸ trÞ trung b×nh (x1 + x2+x3+ ... xn)/n
* ThuËt to¸n :
Bíc 1: NhËp n lµ sè lîng ®îc nhËp vµo tõ bµn phÝm:
DemÑ0;
SumÑ0;
Bíc 2: Trong khi Dem<N th×
NhËp gi¸ trÞ sè thùc x tõ bµn phÝm;
SumÑSum+x;
DemÑDem+1;
Bíc 3: TBÑSum/N
Bíc 4: §a TB ra mµn h×nh, råi kÕt thóc
b) Ctr×nh (SGK)
d) sö dông lÖnh for...do thay cho while...do
Program Tinh_TB;
Uses crt;
Var i,n:integer;
X,Sum,TB:Real;
Begin
Sum:=0;
Write(‘nhap n=’); readln(n);
For i:= 1 to n do 
begin
Write(‘nhap gia tri so thuc x=’);readln(x);
Sum:=sum+x 
end;
TB:=sum/n;
Writeln(‘Trung binh cua ‘,n,’ so thuc la’,TB:10:3);
Readln;
End.
4.Củng cố: 
- Sử dụng vòng lặp While .. do cho các bài toán.
5.Dặn dò
- Xem trước bài thực hành 6.
V. Rút kinh nghiệm: 
	 .
	 .
*****************************************************
Ngày dạy: Lớp A ........................................... 
Lớp B ...........................................
Tiết 48.
Bài thực hành 6: SỬ DỤNG LỆNH LẶP WHILE DO (tt)
I.Mục tiêu
1. Kiến thức
Viết được chương trình có sử dụng vòng lặp While do
Sử dụng được câu lệnh ghép
 2.Kĩ năng
Đọc hiểu chương trình có vòng lặp while do
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.
II. Phương pháp
Đặt và giải quyết vấn đề - Luyện tập thực hành.
III. Chuẩn bị : 
1. Giáo viên : 
- SGK, tài liệu, Giáo án, Phòng máy
2. Học sinh :
- Đọc trước bài TH6
IV. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC : 
1.Ổn định tổ chức lớp(1 phút) 
2.Kiểm tra bài cũ ( Kiểm tra trong qua trình thực hành).
3.Bài mới
Hoạt động của GV và HS
Nội dung
Hoạt động 1 : bài tập 2 (40’)
GV: y/c HS đọc bài tập 2 và xác định Input, Output 
HS: trả lời cá nhân
GV: Hớng dẫn HS xây dựng thuật toán:
Để ktra N có phải là số ntố hay ko ta sẽ ktra xem N chia hết cho các số từ 2 đến N-1 hay ko? Nếu N ko chia hết cho số nào trong khoảng từ 2 đến N-1 thì N là số ntố, ngợc lại N ko phải là số ntố.
Sử dụng phép chia lấy phần d mod để ktra tính chia hết.
GV: y/c HS đọc ctrình, đối chiếu việc sử dụng câu lệnh để mô tả t.toán.
HS: đọc ctrình, thảo luận theo nhóm mô tả t.toán
GV: gọi đại diện nhóm lên trình bày trên bảng.
HS: đại diện nhóm trình bày, các nhóm khác nhận xét.
GV: ptích sự kết hợp giữa câu lệnh đk và câu lệnh lặp trong ctrình
HS: chú ý lắng nghe
HS: thảo luận nhóm nêu các biến cần sử dụng và kiểu của chúng.
GV: Y/c HS đọc, thảo luận theo nhóm để tìm hiểu ý nghĩa của từng lệnh trong ctrình
GV: y/c HS gõ ctrình, dịch, chỉnh sửa, chạy và kiểm thử ctrình.
HS: thực hiện
Bài 2: Tìm hiểu ctrình nhận biết một số tự nhiên N đợc nhập vào từ bàn phím có phải là số nguyên tố hay không.
* Xđbt:
Input: Số tự nhiên N;
Output: Trả lời N là số nguyên tố hoặc không là số nguyên tố
* Thuật toán: 
Bước 1: Nhập số tự nhiên N từ bàn phím
Bước 2: Nếu N<=0 thông báo N không phải là số tự nhiên, rồi chuyển đến bớc 4
Bước 3: Nếu N>0;
iÑ2;
Trong khi N mod i <>0 còn đúng thì iÑi+1;
Nếu i=N thì thông báo N là số nguyên tố, rồi chuyển đến bớc 4
Bước 4: Kết thúc
a) ctrình (SGK)
4.Củng cố: 
- Sử dụng vòng lặp While .. do cho các bài toán.
- Sử dụng câu lệnh ghép.
5.Dặn dò:
- Làm các bài tập ở SGK và ôn lại bài 7, 8
V. Rút kinh nghiệm: 
	 .
	 .
************************************************************
Ngày dạy: Lớp A ........................................... 
Lớp B ...........................................
Tiết 49.
 BÀI TẬP
I.Mục tiêu
1. Kiến thức
Viết được chương trình có sử dụng vòng lặp For to do
Viết được chương trình có sử dụng vòng lặp While do
Sử dụng được câu lệnh ghép
 2.Kĩ năng
Đọc hiểu chương trình có vòng lặp while do
Viết được chương trình có sử dụng vòng lặp For to do
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.
II. Phương pháp
Đặt và giải quyết vấn đề - ôn lại kiến thức
III. Chuẩn bị : 
1. Giáo viên : 
- SGK, tài liệu, Giáo án
2. Học sinh :
- Ôn lại bài 7 và 8
IV. TỔ CHỨC HOẠT ĐỘNG DẠY HỌC : 
1.Ổn định tổ chức lớp(1 phút) 
2.Kiểm tra bài cũ ( Kiểm tra trong làm bài tập).
3.Bài mới
Hoạt động của GV và HS
Nội dung
- Đưa ra dạng bài tập cần tìm hiểu.
- Cho lớp suy nghĩ thảo luận hai phút, mời một hs lên bảng trình bày.
- Cho nhận xét. Diễn giải thêm.
- Đưa ra đề bài dạng 2.
- Mời 1 hs lên bảng viết lại cú pháp câu lệnh lặp với số lần chưa biết trước.
- Theo dõi, nhận xét, chỉnh sửa nội dung nếu hs trình bày còn sai sót.
- Từ kiến thức đã học yêu cầu hs tìm ra lỗi sai trong các câu lệnh trên.
- Theo dõi. Hướng dẫn phần trình bày điều kiện nên cần gì và lệnh gán phải viết như thế nào cho đúng.
- Chỉnh sửa lỗi sai.Viết ra nội dung cần chỉnh sửa.
HS: Theo dõi, ghi bài giảng vào vở.
* Chú ý: Chú ý ngữ nghĩa trình bày và đặt điều kiện câu lệnh phải chính xác từng phần nếu không sẽ dẫn đến trường hợp lặp vô hạn.
Đưa ra đề bài dạng 3 (dạng trắc nghiệm);
- Yêu cầu học sinh viết chương trình ra giấy, chạy đoạn chương trình bằng bút (tay), kiểm tra kết quả.
- Chọn đáp án nhanh nhất, nhận xét và diễn giải trình tự các bước di của một chương trình.
Chú ý theo 

Tài liệu đính kèm:

  • docgiao_an_tin_hoc_lop_8_chuong_trinh_hoc_ki_ii_nam_hoc_2020_20.doc