Giáo án môn Tin học 8 (cả năm)

PHẦN 1: LẬP TRÌNH ĐƠN GIẢN

BÀI 1: MÁY TÍNH VÀ CHƯƠNG TRÌNH MÁY TÍNH (Tiết 1)

I/ MỤC TIÊU:

1) Kiến thức:

- Biết con người chỉ dẫn cho máy tính thực hiện công việc thông qua lệnh.

2) Kỉ năng:

- Thực hiện tuần tự các lệnh để đạt được công việc.

3) Thái độ:

- Học tập nghiêm túc.

II/ CHUẨN BỊ:

- GV: Bút dạ, phiếu học tập, hình vẽ “Robốt nhặt rác”.

- HS: Vở ghi.

 III/ TIẾN TRÌNH LÊN LỚP.

1)Ổn định tổ chức:

- Kiểm tra sĩ số:

- Ổn định lớp.

 

doc 156 trang Người đăng phammen30 Lượt xem 1175Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án môn Tin học 8 (cả năm)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ý dô 3
GV: Minh häa ch­¬ng tr×nh cña vÝ dô 3
HS: Quan s¸t ghi bµi
GV: Cho HS nghiªn cøu vÝ dô 4
? §Ó in ra ch÷ ‘O’ ta sö dông lÖnh nµo.
HS: Tr¶ lêi
§Ó in ra 20 ch÷ ‘O’ ta cÇn 20 c©u lÖnh writeln(‘O’; ViÕt thÕ rÊt mÊt thêi gian.
? Em h·y sö dông c©u lÖnh lÆp ®Ó viÕt in ra 20 ch÷ ‘O’.
HS: Ho¹t ®éng theo bµn 2 phót råi tr¶ lêi c©u hái.
GV: NhËn xÐt, kÕt luËn
§­a ra ch­¬ng tr×nh minh häa.
HS: Chó ý quan s¸t.
3. VÝ dô vÒ c©u lÖnh lÆp (tiÕp)
VÝ dô 3 (SGK Tr58) in 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.
- VD4 (SGKTr58) ViÕt ch­¬ng tr×nh ®­a ra mµn h×nh nh÷ng ch÷ “0” theo h×nh trøng r¬i.
Program trung_roi;
Uses crt;
Var i: integer;
Begin
Clrscr;
For i:=1 to 10 do
begin
Writeln(‘0’); delay(100); 
end;
Readln;
End.
- TËp hîp c¸c c©u lÖnh con ®­îc ®Æt trong cÆp tõ kho¸ begin end; ®­îc gäi lµ c©u lÖnh ghÐp. 
Hoạt động 2: TÝnh tæng vµ tÝch b»ng c©u lÖnh lÆp.
GV: §­a vÝ dô 5 trªn mµn h×nh.
Yªu cÇu HS xem l¹i thuËt to¸n tÝnh tæng vë VD 3 bµi 5 Tr41
HS: 1 em lªn b¶ng m« t¶ l¹i thuËt to¸n tÝnh tæng ë VD5.
HS: NhËn xÐt, bæ sung
GV vµ HS cïng x©y dùng viÕt ch­¬ng tr×nh dùa vµo thuËt to¸n.
L­u ý: kiÓu sè Longint
GV: §­a ra vÝ dô 6. H­íng dÉn vÝ dô6
Tæ chøc Hs ho¹t ®éng c¸ nh©n trong 3 phót. Sau ®ã ho¹t ®éng theo nhãm nhá lµm vÝ dô 6.
HS: Ho¹t ®éng c¸ nh©n sau ®ã ho¹t ®éng nhãm thèng nhÊt kÕt qu¶ 
NhËn xÐt, bæ sung.
GV: KÕt luËn ®­a ra bµi viÕt ch­¬ng tr×nh.
HS: Quan s¸t kÕt qu¶ vµ ghi bµi.
4. TÝnh tæng vµ tÝch b»ng c©u lÖnh lÆp
VÝ dô 5. TÝnh tæng cña N sè tù nhiªn ®Çu tiªn.
VÝ dô 6. TÝnh day th­a cña N sè tù nhiªn ®Çu tiªn.
4) Củng cố:
Tãm t¾t kiÕn thøc träng t©m ®· häc.
HS ®äc ghi nhí.
5) Hướng dẫn về nhà:
- Häc l¹i bµi vÒ c©u lÖnh lÆp For .. to .. do. Xem l¹i c¸c vÝ dô SGK
VÒ nhµ lµm bµi tËp : TÝnh tæng c¸c sè ch½n cña d·y sè N vµ tÝnh tæng c¸c sè lÎ.
Gîi ý: KiÓm tra sè ®ã lµ ch½n th× ®iÒu kiÖn IF N mod 2 =0 then S:=S+i;
 Ngày....tháng.....năm......
TỔ TRƯỞNG (TP) CHUYÊN MÔN
(Ký, ghi rõ họ tên)
NHẬN XÉT CỦA TỔ TRƯỞNG (TP) CM
................................................................
................................................................
................................................................
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
Bài thực hành 5:
 SỬ DỤNG LỆNH LẶP FOR...DO
I/ MỤC TIÊU:
1) Kiến thức:
- 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
2) Kĩ năng:
- 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;
Rèn luyện kĩ năng đọc hiểu chương trình có sử dụng vòng lặp for...do.
3) Thái độ:
- Có ý thức, kỉ luật, nghiêm túc, trình bày một vấn đề chặt chẽ, rõ ràng.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án, tài liệu tin học có liên quan.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
- Câu hỏi: ? Nêu cấu trúc câu lệnh lặp đơn, câu lệnh lặp ghép, có biết ý nghĩa của câu lệnh lặp?
3)Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Bài tập.
Bài 1.
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.
Bài 2.
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.
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.
Bài 2.
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;
4) Củng cố:
GV : goi HS đọc phần tổng kết
GV : yêu cầu HS đọc phần đọc thêm
5) Hướng dẫn về nhà:
Tập lập trình một số BTVN của tiết trước, buổi sau sẽ chữa bài và chạy chương trình , lập trình bài đọc thêm để kiểm tra kết quả số Pi
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
Bài thực hành 5:
 SỬ DỤNG LỆNH LẶP FOR...DO (t2)
I/ MỤC TIÊU:
1) Kiến thức:
- Vận dụng kiến thức của vòng lặp for do, câu lệnh ghép để viết chương trình.
2) Kĩ năng:
- 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;
- Rèn luyện kỹ năng đọc hiểu chương trình có sử dụng vòng lặp for .. do.
3) Thái độ:
- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án, tài liệu tin học có liên quan.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
 Câu hỏi: 
Câu 1: Cho ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hằng ngày?
Câu 2: Hãy cho biết tác dụng của câu lệnh lặp với số lần biết trước?
Câu 3: Trình bày cấu trúc của câu lệnh lặp và nêu cách hoạt động của nó?
3)Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Bài tập.
- 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 tập 3 :
- GV: Đưa ra nội dung của bài toán: Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, và dừng màn hình để có thể quan sát kết quả.
- GV: Đưa nội dung chương trình lên màn hình, yêu cầu học sinh đọc hiểu chương trình.
- HS: Nghiên cứu bài toán, tìm input và output
- GV: yêu cầu một học sinh đứng tại vị trí trình bày hoạt động của chương trình, các nhóm khác cùng tham gia phân tích.
- HS: đọc, phân tích câu lệnh, tìm hiểu hoạt động của chương trình
- GV: yêu cầu học sinh lập bảng hoạt động của chương trình theo mẫu:
Giả sử N=2:
Bước
i
i<=10
Writeln(n,’.’,i,’=’,n*i)
1
1
đúng
2.1=2
- HS tham gia hoạt động của GV
- HS: các nhóm lập bảng và đại diện nhóm báo cáo kết quả.
- GV: nhận xét.
- GV: cho chương trình chạy trên máy, yêu cầu học sinh quan sát kết quả.
Bài tập 4: 
- GV: giới thiệu cấu trúc lệnh for lồng, hướng dẫn học sinh cách sử dụng lệnh.
- HS: ghi chép cấu trúc và lĩnh hội
- GV: đưa nội dung chương trình bài thực hành 3 lên màn hình, yêu cầu học sinh đọc chương trình, tìm hiểu hoạt động của chương trình.
- HS: hoạt động theo nhóm, tìm hiểu hoạt động của chương trinh, đại diện của nhóm báo cáo kết quả thảo luận.
- GV: cho chạy chương trình.
- HS : quan sát kết quả trên màn hình.
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.
Bài tập 3 :Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, và dừng màn hình để có thể quan sát kết quả.
Program Bang_cuu_chuong;
Uses crt;
Var i, n: integer;
Begin
Clrscr;
Writeln(‘Nhap vao so n’); readln(n);
Writeln(‘Bang nha’,n);
Writeln;
For i:=1 to 10 do
Writeln(n,’x’,i:2,’=’,n*i:3); 
Readln;
End.
Bài tập 4: Sử dụng lệnh For lồng trong for
* Câu lệnh for lồng trong for:
- For to do
 For to do
;
Program Tao_bang;
Uses crt;
Var i,j: byte;
Begin
Clrscr;
For i:=1 to 9 do
Begin
For j:=0 to 9 do 
Writeln(10*i+j:4);
Writeln;
End;
Readln;
End.
4) Củng cố:
- Giáo viên hệ thống lại toàn bộ nội dung bài học.
- Nhận xét, rút kinh nghiệm tiết thực hành 
5) Hướng dẫn về nhà:
- Học bài theo vở ghi, ôn lại các kiến thức chính đã học và luyện viết, làm đi làm lại nhiều lần.
- Xem trước các bài tập để tiết sau làm bài tập.
 Ngày....tháng.....năm......
TỔ TRƯỞNG (TP) CHUYÊN MÔN
(Ký, ghi rõ họ tên)
NHẬN XÉT CỦA TỔ TRƯỞNG (TP) CM
................................................................
................................................................
................................................................
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
BÀI TẬP
I/ MỤC TIÊU:
1) Kiến thức:
- Củng cố kiến thức vòng lặp với số lần biết trước và câu lệnh ghép.
2) Kĩ năng:
- Vận dụng vòng lặp for .to.do và câu lệnh ghép viết một số bài toán đơn giản.
3) Thái độ:
- Th¸i ®é häc tËp nghiªm tóc, tÝch cùc lµm c¸c d¹ng bµi tËp øng dông.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án, tài liệu tin học có liên quan.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
- Câu hỏi: ? Sử dụng vòng lặp for  do viết chương trình tính tổng của 10 số tự nhiên đầu tiên?
3)Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Bài tập dạng lí thuyết. 
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. 
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ố:
- Giáo viên hệ thống lại toàn bộ nội dung bài học. 
- Giáo viên nhận xét tiết học, rút kinh nghiệm tiết học.
5) Hướng dẫn về nhà:
- Học bài theo vở ghi, ôn lại các kiến thức chính đã học và luyện viết, làm đi làm lại nhiều lần.
- Học kĩ lí thuyết, viết chương trình tính tông 100 số tự nhiên, N số tự nhiên đầu tiên.
- Về nhà viết chương trình pascal bài 6.
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
BÀI TẬP(tt)
I/ MỤC TIÊU:
1) Kiến thức:
- Củng cố kiến thức vòng lặp với số lần biết trước và câu lệnh ghép.
2) Kĩ năng:
- Vận dụng vòng lặp for .to.do và câu lệnh ghép viết một số bài toán đơn giản.
3) Thái độ:
- Th¸i ®é häc tËp nghiªm tóc, tÝch cùc lµm c¸c d¹ng bµi tËp øng dông.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án, tài liệu tin học có liên quan.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
- Câu hỏi: ? Sử dụng vòng lặp for  do viết chương trình tính tổng của 10 số tự nhiên đầu tiên?
3)Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Bài tập dạng lí thuyết.
-GV: Nhận xét kết quả cuối cùng.
- GV: Đưa bài tập 4 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 7. 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 7.
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.
Câu 7 : Hãy cho biết trong các đoạn lệnh sau, chương trình lặp lại bao nhiêu vòng lÆp
for i:=1 to 10 do writeln(‘chao cac ban’);
for i:=3 to 6 do writeln(a);
for i:=0 to 95 do writeln(‘lơp 8a?’); 
for i:=13 to 45 do a:=a+1;
Câu 8: Viết chương trình in ra màn hình tổng của n số tự nhiên liên tiếp đầu tiên? Biết n được nhập từ bàn phím?(4đ)
Hoạt động 2: Thực hành trên máy
GV: Chuẩn bị phòng máy hoạt động tốt
HS: Kiến thức + 7 bài tập có lời giải
Nhập chường trình xem kết quả.
GV: Quan sát hs thực hành, 
HS thực hiện gõ lệnh	
GV: Nhận xét quá trình học sinh thực hành.
4) Củng cố:
- Giáo viên nhận xét tiết học, rút kinh nghiệm tiết học.
5) Hướng dẫn về nhà:
- Học bài theo vở ghi, ôn lại các kiến thức chính đã học và luyện viết, làm đi làm lại nhiều lần.
- Học kĩ lí thuyết, viết chương trình tính tông 100 số tự nhiên, N số tự nhiên đầu tiên.
- Về nhà viết chương trình pascal bài 6.
 Ngày....tháng.....năm......
TỔ TRƯỞNG (TP) CHUYÊN MÔN
(Ký, ghi rõ họ tên)
NHẬN XÉT CỦA TỔ TRƯỞNG (TP) CM
................................................................
................................................................
................................................................
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
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 thoả mãn;
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 trong Pascal.
3) Thái độ:
- Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
 Câu hỏi: 
? Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,,99,100?
3)Bài mới:
Với bài toán trên, trong Turbo Pascal ta sử dụng vòng lặp fortodo thì sẽ thực hiện dễ dàng . Nhưng nếu ta thay số 100 bởi n ( tính tổng n số tự nhiên đầu tiên ) thì ta sẽ gặp nhiều khó khăn trong việc sử dụng vòng lặp fortodo, bởi lúc này số lần lặp không biết trước. Vậy ta phải làm như thế nào ? Để giải quyết bài toán này chúng ta đi tìm hiểu bài mới.
Hoạt động của giáo viên và học sinh
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.
- GV: Nhắc lại tác dụng của câu lệnh lặp với số lần lặp biết trước?
- Để biết được các hoạt động lặp GV gọi HS đọc ví dụ.
- HS lắng nghe
- GV : Yêu cầu HS đọc ví dụ 1.
- HS : 2-3 HS đọc ví dụ.
- GV: Phân tích ví dụ 
- HS: Chú ý lắng nghe
- GV: Trong ví dụ 1, Long gọi cho Trang, Long có xác định được Long sẽ gọi cho Trang mấy lần hay không? Khi nào hoạt động gọi điện thoại của Long kết thúc?
- HS trả lời: Khi có người nhấc máy
- GV: Yêu cầu HS đọc ví dụ 2
- HS: 2-3 HS đọc ví dụ.
- GV: Phân tích ví dụ 
- HS: Chú ý lắng nghe 
- GV: Hướng dẫn HS xây dựng thuật toán
- HS: Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán
- GV: Chạy tay cho học sinh xem ( Chỉ nên chạy tay thử từ 1 đến 10 )
- HS : Chú ý lắng nghe và tiếp thu.
 - HS ghi vở ví dụ 2
- GV: Việc thực hiện lập lại các phép cộng trên với số lần chưa biết trước phụ thuộc vào điều kiện gì? Phép cộng chỉ dừng khi nào?
- HS trả lời: Điều kiện s<=1000 và chỉ dừng khi kết quả kiểm tra là sai.
- GV : Giới thiệu sơ đồ khối
- HS theo dõi và tiếp thu
1. Các hoạt động lặp với số lần chưa biết trước.
a/ Ví dụ 1:
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?
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.
4) Củng cố:
- Đọc ghi nhớ.
- Nêu vài ví dụ về hoạt động lặp với số lần chưa biết trước?
- Nêu cú pháp câu lệnh lặp While...do? Dựa trên sơ đồ hãy nêu quá trình thực hiện câu lệnh lặp?
5) Hướng dẫn về nhà:
- Học bài theo vở ghi 
- Làm các bài tập vào vở.
Tuần:
Ngày soạn:
Tiết:
Ngày dậy:
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt)
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 thoả mãn;
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 trong Pascal.
3) Thái độ:
- Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
II/ CHUẨN BỊ:
- GV: - Sách giáo khoa, giáo án.
- HS: Vë ghi.
III/ TIẾN TRÌNH LÊN LỚP.
1)Ổn định tổ chức:
- Kiểm tra sĩ số 
2)Kiểm tra bái cũ:
 Câu hỏi: 
? Viết thuật toán tính tổng 1000 số tự nhiên đầu tiên 1,2,3,,999,1000?
3)Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
Hoạt động 1: Ví dụ về lệnh lặp với số lần chưa biết trước.
- Trước khi đi tìm hiểu cú pháp của câu lệnh lặp với số lần chưa biết trứơc GV gọi HS nhắc lại cú pháp của câu lệnh lặp với số lần biết trước.
- HS trả lời
- GV chốt ý:
 For:= to do lệnh;
- 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 ;
Trong đó:
 + Điều kiện thường là phép toán so sánh
 + Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh phức tạp.
- HS: chú ý lắng ghe và ghi chép.
- GV: Dựa vào cú pháp hãy nêu hoạt động của câu lệnh lặp với số lần chưa biết trước?
 - HS nêu hoạt động của câu lệnh lặp với số lần chưa biết trước.
- GV: Giới thiệu chương trình mẫu. 
- 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 cho HS độc ví dụ 3 trong SGK
- 2 – 3 HS đọc ví dụ 3
- GV: Giới thiệu chương trình mẫu sgk ( Giáo viên in chương trình mẫu trên)
- HS: Quan sát 
- GV: Chạy tay cho học sinh xem
- HS: chú ý nghe và tự chạy tay lại 
- 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 
- HS: thực hiện
- GV: Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ...
- HS: thực hiện 
- GV yêu cầu HS đọc ví dụ 4/
- HS đọc ví dụ 4
- GV: Cho học sinh quan sát chương trình 
- HS quan sát chương trình
- GV: Chạy tay cho học sinh xem chương trình mẫu 
- HS: Chú ý nghe và tự chạy tay lại 
- GV: Cho học sinh chạy chương trình trên máy.
- HS thực hiện yêu cầu
- GV: Chạy chương trình này, ta nhận được giá trị ntn?
- HS: Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng đầu tiên lớn hơn 1000 là 1034.
- GV: Giới thiệu ví dụ 5.
- GV: Cho học sinh quan sát chương trình 
- HS quan sát chương trình
- GV: Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh whiledo thay cho câu lệnh fordo.
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.
* 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.
Ví dụ 3. 
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.
Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2
var S,n: integer;
begin
S:=0; n:=1;
while S<=1000 do
 begin 
 S:=S+n; n:=n+1; 
 end;
writeln('So n nho nhat de tong > 1000 la ',n);
writeln('Tong dau tien > 1000 la ',S);
end.
Ví dụ 5: Viết chương trình tính tổng 
Hoạt động 2: Lặp vô hạn lần – Lỗi lập trình cần trá

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

  • docgiao_an_tin_8.doc