Giáo án Tin học 8 - Tiết 37-40 - Hoàng Thị Lan

Giáo án Tin học 8 - Tiết 37-40 - Hoàng Thị Lan

1/ MỤC TIÊU:

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.

Thái độ nghiêm túc cẩn thận.

2/ CHUẨN BỊ:

Gv: Soạn giáo án, SGK, SBT

HS: Vở ghi, SGK, SBT, đọc trước nội dung bài học.

3/ TIẾN TRÌNH BÀI DẠY

1) æn ®Þnh líp: 1’

2)Kiểm tra: (3’)

Tr×nh bµy cÊu tróc cña c©u lÖnh rÏ nh¸nh trong pascal, nªu ý nghÜa ho¹t ®éng cña c©u lÖnh?

 

doc 10 trang Người đăng tranhiep1403 Lượt xem 1153Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 37-40 - Hoàng Thị Lan", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Ngày dạy:	
Tiết 37: 
Bài 7: CÂC LỆNH LẶP 
1/ MỤC TIÊU:
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.
Thái độ nghiêm túc cẩn thận. 
2/ CHUẨN BỊ: 
Gv: Soạn giáo án, SGK, SBT
HS: Vở ghi, SGK, SBT, đọc trước nội dung bài học. 
3/ TIẾN TRÌNH BÀI DẠY
1) æn ®Þnh líp: 1’
2)Kiểm tra: (3’)
Tr×nh bµy cÊu tróc cña c©u lÖnh rÏ nh¸nh trong pascal, nªu ý nghÜa ho¹t ®éng cña c©u lÖnh?
3)Bài mới: (35’)
Hoạt động của GV & HS
Nội dung
Hs lắng nghe
Hs cho ví dụ
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. Yêu cầu 1 hs mô tả các bước bạn vẽ trên bảng.
Vậy khi bạn vẽ 1 hình vuông đã thực hiện bao nhiêu thao tác? (hs có thể chỉ trả lời 4 thao tác là vẽ 4 đoạn thẳng)
Gv: Mô tả thuật toán trên bảng
Gv: Mô tả thuật toán tính tổng các số tự nhiên từ 1→ 100
1hs lên bảng vẽ, cả lớp theo dõi
GV: Gợi ý thêm thao tác quay thước.
Các thao tác đó như thế nào? 
Gv: 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.
Hoạt động 1 :
1/ Các công việc phải thực hiện nhiều lần (15’)
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 họ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?
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.
Hoạt động 2:
2/ Câu lệnh lặp – một lệnh thay cho nhiều lệnh (20’)
Các thao tác giống nhau.
Vd1: 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
Vd2: Thuật toán tính
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âu lệnh lặp
Cấu trúc mô tả thuật toán như trên gọi là cấu trúc lặp.
4) Củng cố luyện tập: (4’)
? Em hãy cho một vài ví dụ về hoạt động thực hiện lặp lại trong cuộc sống hằng ngà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.
HS: Thảo luận nhóm và đại diện mỗi nhóm đưa ra ví dụ của nhóm mình.
Hoạt động cá nhân, một đến ba học sinh đứng tại chỗ trả lời.
5) Hướng dẫn về nhà học bài và làm bài: (2’)
Học bài và làm bài tập 1, 2 trong SGK trang 60.
Đọc trước nội dung tiếp theo của bài, giờ sau học tiếp.
Ngày dạy:	
Tiết 38
Bài 7 : CÂC LỆNH LẶP ( TT )
I- MỤC TIÊU:
Hiểu hoạt động của câu lệnh với số lần biết trước for...do trong Pascal.
Viết đúng được lệnh for...do trong một số tình huống đơn giản.
Hiểu lệnh ghép trong Pascal
Thái độ nghiêm túc cẩn thận. 
II- CHUẨN BỊ: 
Gv: Soạn giáo án, SGK, SBT
HS: Vở ghi, SGK, SBT, đọc trước nội dung bài học. 
III- TiÕn tr×nh BÀI DẠY
1)Kiểm tra: (5’)
M« t¶ thËt to¸n tÝnh tæng cña 100 sè tù nhiªn ®Çu tiªn?
2)Bài mới: (35’)
Hoạt động của thẩy và trò
Nội dung bài dạy
Gv: minh họa bẳng ngôn ngữ Pascal cú pháp câu lệnh for  to  do
Lưu ý cho hs:
biến đếm là biến đơn có kiểu nguyên;
giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn hơn giá trị đầu;
câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
Cho hs nhận xét và so sánh sự khác nhau ở câu lệnh lặp trong hai vd trên?
Gv: Giải thích cho học tại sao vd2 trong câu lệnh lặp có begin  end
3/ Ví dụ về câu lệnh lặp (17’)
Cú Pháp câu lệnh lặp với số lần biết trước trong Pascal.
for:= to do 
trong đó: for, to, do là các từ khóa
Vd 1: Chuong trình in ra màn hình thứ tự lần lặp.
var i:integer;
begin
	for i:= 1 to 20 do
	writeln(‘Day la lan lap 	thu’,i);
	readln;
end.
Vd2: chương trình ghi nhận vị trí 10 chữ O rơi từ trên xuống.
ues crt;
var i:integer;
begin
	clrscr;
	for i:= 1 to 20 do
	begin 
	writeln(‘O’);
	delay(200);
	end;
	readln;
end.
*Lưu ý: Câu lệnh có sử dụng câu lệnh ghép thì phải đặt trong hai từ khóa begin  end.
Gv: trình bày đoạn chương trình tính tổng N số tự nhiên, với N là số tự nhiên được nhập từ bàn phím (Pascal)
Theo công thức tính tổng ta cần khai bao nhieu biến? kiểu biến?
Trong 2 biến thì biến nào có giá trị được nhập từ bàn phím?
Trong trường hợp dữ liệu có kiểu nguyên rất lớn ta dùng longint
4/ Tính tổng và tích bằng câu lệnh lặp (18’)
Vd 1: chương trình tính tổng N số tự nhiên đầu tiên, với N là số tự nhiên được nhập từ bàn phím.
S = 1+2+3+  + N 
program Tinh_tong;
var 	N,i:integer;
	S:longint;
begin
	write(‘Nhap so N = ‘);
	readln(N);
	S:= 0;
	for i:= 1 to N do
	S:= S+i;
	writeln(‘Tong cua’, N, ‘so tư 	nhien dau tien S = ‘, S);
	readln;
end.
*Kiểu longint có phạm vi từ -231 đến 231 – 1.
Vd 2: chương trình tính tích N số tự nhiên, với N là số tự nhiên được nhập từ bàn phím.
N! = 1.2.3.N
program Tinh_Giai_Thua;
var 	N,i:integer;
	P:longint;
begin
	write(‘Nhap so N = ‘);
	readln(N);
	P:= 1;
	for i:= 1 to N do
	P:= P*i;
	writeln( N, ‘! = ‘, P);
	readln;
end.
4) Củng cố: (4’)
1/ Cấu trúc lặp trong chương trình dùng để làm gì?
2/ Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước được thể hiện với câu lệnh nào?
5) Hướng dẫn về nhà: (1’)
Học bài, làm các bài tập trong SGK trang 60 – 61, xem lại các ví dụ, tiết sau làm bài tập tại lớp. 
Ngày dạy:	
Tiết 39: BÀI TẬP.
I- MỤC TIÊU:
Củng cố lại kiến thức trong bài 7 thông qua việc làm bài tập tại lớp và ở nhà của HS.
Thái độ nghiêm túc cẩn thận. 
II- CHUẨN BỊ: 
Gv: Soạn giáo án, SGK, SBT
HS: Vở ghi, vở bài tập, SGK, SBT. 
III- TIẾN TRÌNH BÀI DẠY:
 1- ¤®TC: 1’
Kiểm tra: Kiểm tra bài cũ trong quá trình học.
Nội dung bài tập: (42’)
Bài 1 (10’) Em hãy cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hằng ngày.
Trả lời:
Cã thÓ nªu rÊt nhiÒu vµi vÝ dô vÒ c¸c ho¹t ®éng lÆp. D­íi ®©y lµ mét sè vÝ dô:
Hµng ngµy em ®Æt ®ång hå b¸o thøc lóc 6 giê ®Ó dËy sím tËp thÓ dôc.
Hµng ngµy (hoÆc hµng tuÇn) b¸c l¸i xe kh¸ch l¸i xe ®Ó chuyªn chë hµnh kh¸ch xuÊt ph¸t tõ mét thêi gian vµ ®Þa ®iÓm nhÊt ®Þnh vµ ®i theo mét tuyÕn ®­êng ®· ®­îc x¸c ®Þnh tr­íc.
Mçi lÇn ®­îc khëi ®éng, m¸y tÝnh cña em sÏ thùc hiÖn cïng c¸c ho¹t ®éng tù kiÓm tra c¸c thµnh phÇn m¸y tÝnh, sau ®ã khëi ®éng hÖ ®iÒu hµnh theo mét tr×nh tù ®· ®­îc quy ®Þnh tr­íc. 
Bài 2 (17’) : a) Cã thÓ thÊy, ®Ó vÏ ®­îc h×nh ...a), thao t¸c chÝnh cÇn thùc hiÖn lµ vÏ nöa ®­êng trßn theo h­íng nhÊt ®Þnh. Ta gäi thao t¸c vÏ nöa ®­êng trßn theo h­íng A lµ vÏ nöa ®­êng trßn cã b¸n kÝnh 1 ®¬n vÞ b¾t ®Çu tõ mét ®iÓm x¸c ®Þnh, ®­êng kÝnh nèi ®iÓm ®Çu vµ ®iÓm cuèi cña nöa ®­êng trßn vu«ng gãc víi h­íng A vµ nöa ®­êng trßn "cong vÒ h­íng A" (h×nh...). Ta chØ xÐt A lµ c¸c h­íng lªn trªn, xuèng d­íi, sang tr¸i, sang ph¶i. 
Víi c¸c h­íng, ta ®Þnh nghÜa phÐp to¸n sau: lªn trªn + 1 = sang tr¸i, sang tr¸i +1 = xuèng d­íi, xuèng d­íi +1 = sang ph¶i, sang ph¶i +1 = lªn trªn. Khi ®ã cã thÓ m« t¶ c¸c b­íc cña thuËt to¸n ®Ó vÏ h×nh 1a nh­ sau:
a)	b)
H×nh 1
Cã thÓ m« t¶ c¸c b­íc cña thuËt to¸n ®Ó vÏ h×nh ... a) nh­ sau:
B­íc 1. X¸c ®Þnh ®iÓm b¾t ®Çu vÏ lµ X. 
B­íc 2. §Æt i = 0 vµ ®Æt h­íng = lªn trªn.
B­íc 3. VÏ nöa ®­êng trßn theo h­íng ®· ®Æt. 
B­íc 4. i = i + 1. 
B­íc 5. NÕu i > 4, chuyÓn b­íc 6; ng­îc l¹i, ®Æt h­íng = h­íng + 1 vµ quay l¹i b­íc 3.
B­íc 6. KÕt thóc thuËt to¸n. 
L­u ý. Khi tr×nh bµy thuËt to¸n lÇn ®Çu tiªn cho häc sinh kh«ng nªn ®Þnh nghÜa c¸c phÐp to¸n víi h­íng mµ nªn liÖt kª ®ñ bèn h­íng trong thuËt to¸n.
b) ThuËt to¸n t­¬ng tù nh­ trªn. Thao t¸c chÝnh cÇn lÆp l¹i lµ vÏ h×nh vu«ng. T¹i mçi b­íc, gi÷ nguyªn t©m h×nh vu«ng vµ thay ®æi h­íng vÏ mét gãc 30o.
Bài 3 (5’) Cho biết t¸c dụng của c©u lệnh lặp với số lần biết trước.
Trả lời:
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 4 (10’): Khi thực hiện câu lệnh lặp, máy tính kiểm tra một điều kiện. Với lệnh lặp 
For := to do ;
của Pascal, điều kiện cần phải kiểm tra là gì?
Trả lời:
Chóng ta nãi r»ng khi thùc hiÖn c¸c ho¹t ®éng lÆp, ch­¬ng tr×nh kiÓm tra mét ®iÒu kiÖn. Víi lÖnh lÆp 
for := to do ;
cña Pascal, ®iÒu kiÖn cÇn ph¶i kiÓm tra chÝnh lµ gi¸ trÞ cña biÕn ®Õm lín h¬n gi¸ trÞ cuèi. NÕu ®iÒu kiÖn kh«ng ®­îc tho¶ m·n, c©u lÖnh ®­îc tiÕp tôc thùc hiÖn; ng­îc l¹i, chuyÓn sang c©u lÖnh tiÕp theo trong ch­¬ng tr×nh.
c) Củng cố - Hướng dẫn học bài và làm bài ở nhà: (3’)
Học bài và làm lại các bài tập 
Làm tiếp các bài tập còn lại trong SGK, giờ sau làm tiếp bài tập.
Ngày dạy:	
Tiết 40 : BÀI TẬP. ( TT )
I- MỤC TIÊU:
Củng cố lại kiến thức trong bài 7 thông qua việc làm bài tập tại lớp và ở nhà của HS.
Thái độ nghiêm túc cẩn thận. 
II- CHUẨN BỊ: 
Gv: Soạn giáo án, SGK, SBT
HS: Vở ghi, vở bài tập, SGK, SBT. 
TIẾN TRÌNH BÀI DẠY:
 1) ¤®tc: 1’
2)Kiểm tra: Kiểm tra bài cũ trong quá trình học.
3) Nội dung bài tập: (43’)
 (5’) Sau khi thực hiện đoạn chương trình sau, giá trị của biến j bằng bao nhiêu?
J:=0;
for i:=0 to 5 j:=j+2;
Trả lời:
Sau khi thực hiện đoạn chương chương trên giá trị của j =12.
: (7’) Hãy mô tả thuật toán để tính tổng sau đây:
Trả lời:
ThuËt to¸n tÝnh tæng A = 
B­íc 1. G¸n A ¬ 0, i ¬ 1. 
B­íc 2. A ¬ .
B­íc 3. i ¬ i + 1. 
B­íc 4. NÕu i £ n, quay l¹i b­íc 2. 
B­íc 5. Ghi kÕt qu¶ A vµ kÕt thóc thuËt to¸n.
: (7’) Các câu lệnh Pascal sau có hợp lệ không? Vì sao?
 a) for i:=100 to 1 do writeln(‘A’);
 b) for i:=1.5 to 10.5 do writeln(‘A’);
 c) for i=1 to 10 do writeln(‘A’);
 d) for i:=1 to 10 do; writeln(‘A’);
 d) var x:real; begin for x:=1 to 10 do writeln(‘A’); end.
Trả lời:
Trõ d), tÊt c¶ c¸c c©u lÖnh ®Òu kh«ng hîp lÖ: 
a) Gi¸ trÞ ®Çu ph¶i nhá h¬n gi¸ trÞ cuèi; 
b) C¸c gi¸ trÞ ®Çu vµ gi¸ trÞ cuèi ph¶i lµ sè nguyªn; 
c) ThiÕu dÊu hai chÊm khi g¸n gi¸ trÞ ®Çu; 
d) Thõa dÊu chÊm phÈy thø nhÊt, nÕu nh­ ta muèn lÆp l¹i c©u lÖnh writeln('A') m­êi lÇn, ng­îc l¹i c©u lÖnh lµ hîp lÖ; 
e) BiÕn x ®· ®­îc khai b¸o nh­ lµ biÕn cã d÷ liÖu kiÓu sè thùc vµ v× thÕ kh«ng thÓ dïng ®Ó x¸c ®Þnh gi¸ trÞ ®Çu vµ gi¸ trÞ cuèi trong c©u lÖnh lÆp.
: (7’) ThuËt to¸n:
B­íc 1. NhËp c¸c sè n vµ x. 
B­íc 2. A ¬ 1, i ¬ 0 (A lµ biÕn l­u luü thõa bËc n cña x). 
B­íc 3. i¬i + 1, A ¬ A.x. 
B­íc 4. NÕu i < n, quay l¹i b­íc 3.
B­íc 5. Th«ng b¸o kÕt qu¶ A lµ luü thõa bËc n cña x vµ kÕt thóc thuËt to¸n.
Ch­¬ng tr×nh Pascal cã thÓ nh­ sau:
var n,i,x: integer; a: longint;
begin
write('Nhap x='); readln(x);
write('Nhap n='); readln(n);
A:=1;
for i:=1 to n do A:=A*X;
writeln(x,' mu ',n,' bang ',A);
end.
 (10’) 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.
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.
L­u ý. Trong ch­¬ng tr×nh trªn chóng ta chØ sö dông hai biÕn A vµ Max ®Ó gi¶i bµi to¸n. Mét c¸ch tù nhiªn, ®Ó nhËp n sè chóng ta cÇn tíi n biÕn. Tuy nhiªn, ë ®©y viÖc xö lÝ c¸c gi¸ trÞ trong d·y sè cã thÓ thùc hiÖn b»ng c¸ch chØ cÇn so s¸nh c¸c gi¸ trÞ ®· ®­îc nhËp vµo, do ®ã chóng ta chØ cÇn mét biÕn ®Ó l­u lÇn l­ît c¸c gi¸ trÞ nhËp vµo lµ ®ñ. Mét c¸ch gi¶i quyÕt kh¸c lµ sö dông biÕn m¶ng (xem bµi tËp 6, bµi 9).
: (7’) Lêi gi¶i bµi nµy t­¬ng tù nh­ lêi gi¶i cña bµi 9 ë trªn (xem thuËt to¸n trong lêi gi¶i bµi tËp 5a, bµi 5). Ch­¬ng tr×nh Pascal cã thÓ nh­ sau:
uses crt;
var n,i,SoDuong,A: integer;
begin
clrscr;
write('Nhap N='); readln(n);
if n>0 then
 begin
 SoDuong:=0;
 for i:=1 to n do
 begin write('Nhap so thu ',i,':'); readln(A);
 if A>0 then SoDuong:=SoDuong+1 end;
 writeln('So cac so duong = ',SoDuong)
 end
 else writeln('n phai > 0!');
end.
4- Củng cố - Hướng dẫn về nhà học bài và làm bài: (2’)
Học bài.
Làm lại các bài tập.
- Xem trước nội dung bài thự

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

  • docTin8 tiet 3740.doc