TiÕt 43 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ùn[r]
Trang 1Ngày dạy:4/1/2011
37 Bài 7: câu lệnh lặp
A Mục tiêu :
1 Kiến thức:
-
-
-
2 Kỹ năng:
-
-
3 Thỏi độ:
- Thỏi * nghiờm tỳc =
B Chuẩn bị :
1 Giáo viên :
- SGK, SGV, tài liệu, Giáo án
- Đồ dùng dạy học
2 Học sinh :
- Đọc #$%! bài
- SGK, Đồ dùng học tập
C Tiến trình tiết dạy :
I ổn định tổ chức lớp :
- Kiểm tra sĩ số :
- ổn định trật tự :
II Kiểm tra bài cũ :
III Dạy bài mới :
Hoạt động 1 : Các công việc phải thực hiện nhiều lần.
Trong
' * 37 % &
Vớ dụ:
- Cỏc ngày trong
3/ E (@ nhà
- Cỏc em F bài thỡ 9 F
Hóy cho thờm !* vài vớ I trong
% trong D +, > ngày
mà ta 9 % & cỏc thao tỏc
Gv: Khi ( 38 trỡnh mỏy
tớnh
cõu & % & 1 phộp
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 *$8! 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ố không biết #$%!"
VD
+ 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ổ sáng đến #$H và buổi #$0 trở về nhà
+ Số lần lặp không biết #$%!
- 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 !$F trình máy tính cũng vậy, trong nhiều
#$H 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
Trang 2tớnh P
Vớ I cú 38 trỡnh:
Uses crt:
Begin
Clrscr;
Writeln(‘0’); delay(300);
Writeln(‘0’); delay(300);
……… 20L
Writeln(‘0’); delay(300);
End
GV: Khi '# 38 trỡnh này thỡ
GV: C sung
Hoạt động 2 : Câu lệnh lặp, một lệnh thay thế cho nhiều lệnh
Gv: KF 1 hs lờn 29 (` !* hỡnh
vuụng ' 1 8 (P * dài (20cm) và
yờu
cỏc thao tỏc trờn 29
GV:Yờu
(` trờn 29
HS: ;9 D
GV: 6# khi 2' (` 1 hỡnh vuụng H
% & bao nhiờu thao tỏc? HS: Cú
9 D 4 thao tỏc là (` 4 '
e
GV: K7 ý thờm thao tỏc quay 31
GV: Thao tỏc
Gv: g 3 (# khi (` hỡnh vuụng cú
toỏn sau +` mụ 9 cỏc 231 (` hỡnh
vuụng
GV: Mụ
GV: Em lờn mụ
(` hỡnh vuụng
HS: ;9 D
Gv: Mụ
% nhiờn i Oj 100
2/ Cõu
VD1: K9 +l (` 3 hỡnh (38 cú ' 1 8 (P
3 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ác 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 đã *$8! vẽ ít hơn 3 , di
chuyển bút vẽ về bên phải 2 đơn vị và trở lại &$%! 1;
$8! 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
toỏn mụ ! cỏc "#$ %& '( hỡnh vuụng.
,#$ 1: k m 0 (k là +, ' e H (` 37X
,#$ 2: k m k+1 6` ' e 1 8 (P * dài và
quay 31 900 sang 9
thỳc
k là biến đếm
Vd2:
S= 1+2+3+ … + 100
,#$ 1: S m 0; i m 0.
,#$ 2: m i + 1
37 ' G thỳc
i là biến đếm
- Mụ
- tớnh cõu &
Trang 3 A. ,
- Các công việc phải thực hiện nhiều lần ?
- Câu lệnh lặp – một câu lệnh thay thế cho nhiều lệnh
k dũ
- Làm cỏc bài
- -F bài xem ' cỏc vớ I _
Ngày dạy:6/1/2010
Tiết 38 Bài 7: câu lệnh lặp (tiếp theo)
A Mục tiêu :
1 Kiến thức:
-
-
-
2 Kỹ năng:
-
-
3 Thỏi độ:
- Thỏi * nghiờm tỳc =
B Chuẩn bị :
1 Giáo viên :
- SGK, SGV, tài liệu, Giáo án
- Đồ dùng dạy học
2 Học sinh :
- Đọc #$%! bài
- SGK, Đồ dùng học tập
C Tiến trình tiết dạy :
I ổn định tổ chức lớp :
- Kiểm tra sĩ số :
- ổn định trật tự :
II Kiểm tra bài cũ :
Nêu các công việc phải thực hiện nhiều lần mà em biêt Cho ví dụ
III Dạy bài mới :
Hoạt động 1 : Ví dụ về câu lệnh lặp
Trang 4GV: Minh F/ 2e ngụn
Pascal cỳ phỏp cõu & for … to
… do
- biến đếm là 2 8 cú
- giỏ trị đầu và giỏ trị cuối
là cỏc biểu v cú cựng
trị cuối 9 1 8 giỏ
trị đầu;
- cõu lệnh cú là cõu
& 8 9 hay cõu
& ghộp
Cho hs xột và so sỏnh +% khỏc
nhau E cõu & trong hai vd
trờn?
Gv: K9 thớch cho F ' sao vd2
trong cõu & cú begin … end
- Cỳ Phỏp cõu & (1 +, 2 31 trong Pascal
=>?"@ %@A.B <giỏ >C %DA to <giỏ >C EA do
<cõu
trong đú:
+ for, to, do là cỏc i khúa
+ + giỏ (1 biến đếm và giỏ trị cuối 9 1 8 giỏ trị đầu + cõu lệnh cú là cõu & 8 9 hay cõu & ghộp
Vd 1: Chuong trỡnh in ra màn hỡnh v %
Program lap;
var i:integer;
begin
for i:= 1 to 20 do writeln(‘Day la lan lap thu’,i);
readln;
end.
Vd2: 38 trỡnh ghi (P trớ 10 O 8 i trờn
ues crt;
var i:integer;
begin
clrscr;
for i:= 1 to 20 do
begin
writeln(‘O’);
delay(200);
end;
readln;
end.
(Delay (200)là hàm khai báo thời gian rơi nhanh hay chậm của chữ O)
*Lưu ý: Câu l&nh đơn giản Writeln(‘O’) và Delay(200)
*$8! đặt trong từ khoá BEGIN và AND để tạo thành câu lệnh ghép trong PASCAL
Hoạt động 2 : Tính tổng và tích bằng câu lệnh lặp
Gv: trỡnh bày ' 38 trỡnh tớnh
C N +, % nhiờn, (1 N là +, %
nhiờn 37 i bàn phớm (Pascal)
GV: Theo cụng v tớnh C ta
khai bao nhieu
GV: Trong 2 2 thỡ 2 nào cú giỏ
P 37 i bàn phớm?
HS: -' * theo nhúm và 9 D
GV: g xột
Vd 1:
(1 N là +, % nhiờn 37 i 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;
Trang 5for i:= 1 to N do
S:= S+i;
writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S);
readln;
end.
31 231 – 1
Vd 2: 38 trình tính tích N +, % nhiên, (1 N là +,
% nhiên 37 i 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.
A. ,
- Trong ngôn
cho 31 37 & (1 câu & nào?
k dò
- Häc bµi, xem l¹i bµi vµ lÊy thªm c¸c vÝ dô
- ChuÈn bÞ bµi häc mới
Ngµy d¹y:11/1/2011
TiÕt 39
Bµi tËp
A Môc tiªu :
1 Kiến thức
-
-
2 Kỹ năng.
-
-
-
3 Thái độ
- Thái * nghiêm túc =
B ChuÈn bÞ :
1 Gi¸o viªn : - SGK, SGV, tµi liÖu, Gi¸o ¸n, …
2 Häc sinh : - SGK, §å dïng häc tËp
Trang 6C Tiến trình tiết dạy :
I ổn định tổ chức lớp :
- Kiểm tra sĩ số :
- ổn định trật tự :
II Kiểm tra bài cũ :
Trong quá trình làm bài tập
III Dạy bài mới :
Hoạt đông 1: Ôn lại kiến thức
GV: Yêu cầu học sinh Lờy ví dụ
HS: Trả lời
GV: Nhận xét
GV: Cho học sinh hoạt động theo cặp và trả lời
HS: Hoạt động theo cặp và đại diện trả lời
GV: Nhận xét và bổ sung
GV: Cho hoc sinh hoạt động theo nhóm và đại
diện nhóm trả lời, nhóm khác bổ sung
HS: Hoạt động theo nhóm và báo cáo
GV: Đ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ền kiện
không *$8! thõa mãn, câu lệnh tiếp tục *$8! thực
hiện; $8! lại chuyển sang câu lệnh tiếp theo
trong !$F trình
Câu 1: Cho một vài ví dụ về hoạt động *$8! 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
Câu 3: Chúng ta nói rằng khi thực hiện các hoạt
động lặp, !$F trình kiểm tra một điều kiện Với lệnh lặp
for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
của Pascal, điều kiện cần phải kiểm tra là gì?
Hoạt động 2: Bài tập GV: Cho học sinh làm việc theo nhóm Đại diện
một nhóm trả lời các nhóm khác bổ sung
HS: Hoạt động theo nhóm và nhận xét
GV: Nhận xét và bổ sung
GV: Yêu cầu một học sinh gõ và chạy !$F
trính trên máy cho cả lớp quan sat
HS: Gõ !$F trình và quan sát
GV: Yêu cầu học sinh trả lời
HS: Trả lời
GV: Tuy có vòng lặp 1000 lần, $ !$F
trình Passcal 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ệ
GV: Cho HS hoạt động theo nhóm và mời đại
diện nhóm trả lời
HS: Hoạt động theo nhóm và báo cáo
Câu 4: Hãy lập !$F trình hiển thị các tháng
trong một năm ra màn hình
<$F trình Program hien_thi_thang;
Var i:integer;
Begin For i:=1 to 12 do writeln(‘Day la thang : ’,i); Readln
End
Câu 5: <$F 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.
Câu 6: Hãy mô tả thuật toán để tính tổng sau đây
( n là số tự nhiên *$8! nhập từ bàn phím)
A =
) 1 (
1
5 3
1 4 2
1 3 1
1
n n
Bước 1 Gán A 0, i 1
Trang 7GV: Nhận xét và bổ sung
Bước 2 A 1
( 2)
i i
Bước 3 i i + 1
Bước 4 Nếu i r n, quay lại &$%! 2
Bước 5 Ghi kết quả A và kết thúc thuật toán.
Hoạt đông 4: củng cố và dặn dò
* Củng cố:
Ôn lại kiến thức đã học
* Dặn dò
Đọc phần lý thuyết để vận dụng làm bài tập
Ngày dạy:13/1/2010
Tiết 40
Bài tập
A Mục tiêu :
1 Kiến thức
-
-
2 Kỹ năng.
-
-
-
3 Thỏi độ
- Thỏi * nghiờm tỳc =
B Chuẩn bị :
1 Giáo viên : - SGK, SGV, tài liệu, Giáo án, …
2 Học sinh : - SGK, Đồ dùng học tập
C Tiến trình tiết dạy :
I ổn định tổ chức lớp :
- Kiểm tra sĩ số :
- ổn định trật tự :
II Kiểm tra bài cũ :
Trong quá trình làm bài tậHp
III Dạy bài mới :
Hoạt động 1: bài tập
GV: Cho học sinh hoạt đông theo nhóm và đại
diện nhóm lên trả lời các nhóm khác bổ sung
HS: Học sinh hoạt động theo nhóm và báo cáo
GV; Nhận xét và bổ sung
Câu 7: Các câu lệnh Pascal 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’);
e) var x: real; for x:=1 to 10 do writeln(’A’);
Trang 8GV: Cho HS làm việc theo nhóm và đại diện
nhóm trả lời các nhóm khác bổ sung
HS: Hoạt đông theo nhóm và bổ sung
GV: Nhận xét và bổ sung
GV: Cho HS gõ !$F trình trên máy và chạy
kết quả cho cả lớp quan sát
HS: Gõ và chạy !$F trình
GV: Cho HS làm việc theo nhóm và đại diện
nhóm trả lời các nhóm khác bổ sung
HS: Hoạt đông theo nhóm và bổ sung
GV: Nhận xét và bổ sung
GV: Cho học sinh viết !$F trình
HS: Viết !$F trình lên bảng
GV: Bổ sung
GV: Cho HS gõ !$F trình trên máy và chạy
kết quả cho cả lớp quan sát
HS: Gõ và chạy !$F trình và quan sát
GV: o$% dẫn học sinh làm bài tập về nhà
Câu 8: Lập !$F trình tính tổng 50 số
nguyên đầu tiên của dãy số Program tinh_tong;
Var I,S: integer;
Begin S:=0;
For i:=1 to 50 do S:=S+I;
Write(‘Tong day so la: ‘, S);
Readln End
Câu 9: Hãy mô tả thuật toán và sử dụng câu
lệnh lặp với số lần xác định #$%! để viết
!$F trình Pascal tính lũy thừa bậc n của số nguyên X.
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ũy thừa bậc n của x)
Bước 3 ii + 1, A A.x
Bước 4 Nếu i < n, quay lại &$%! 3.
Bước 5 Thông báo kết quả A là lũy thừa bậc n của x và kết thúc thuật toán.
Chương trình:
Program tinh_luy_thua 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(‘Ket qua cua luy thua la',A);
Readln end
Bài ' nhà:
Câu 1: Viết !$F 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 *$8! nhập vào
từ bàn phím (Xem mô tả thuật toán trong Ví
dụ 6, Bài 5.)
Trang 9Câu 2: Viết !$F trình Pascal nhập n số
nguyên từ bàn phím và ghi ra màn hình số các
số $F trong các số đó Số n cũng *$8! nhập
vào từ bàn phím (Xem Bài tập 5a, Bài 5.)
Hoạt động 2: củng cố và dặn dò
- Làm bài tập
- Ôn lại kiến thức để thực hành _
Ngày dạy:18/1/2011
Tiết 41
Bài thực hành 5: Sử dụng lệnh lặp for to do
A Mục tiêu :
1 Kiến thức :
- Vận dụng kiến thức của vòng lặp for to… do, câu lệnh ghép để viết !$F trình
2 Kỹ năng
- Viết *$8! !$F trình có sử dụng vòng lặp for to do;
- Sử dụng *$8! câu lệnh ghép;
- Rèn luyện kỹ năng đọc hiểu !$F 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.
B Chuẩn bị :
1 Giáo viên : - SGK, SGV, tài liệu, Giáo án
- Chuẩn bị phòng thực hành đủ số máy tính hoạt động tốt
2 Học sinh : - Đọc #$%! bài thực hành.
- Học thuộc kiến thức lý thuyết đã học
C 4 TRèNH :1J :
I
II M& tra bài N :
M! tra trong quỏ trỡnh % hành
III :O bài $ :
HOạT Động 1: làm các bài toán sau
GV: Cho học sinh hoạt động theo nhóm và đại
điện nhóm lên viết !$F trình
HS: Hoạt động nhóm và viêt !$F trình
GV: Bổ sung
GV: yêu cầu học sinh gõ bài tập vào
HS: gõ !$F trình, chạy thử !$F trình, và
báo cáo kết quả
GV: Hỗ trợ học sinh trong quá trình thực hành
GV: Sau khi kết quả chạy !$F trình đã
đúng, gv yêu cầu học sinh chữa bài của mình
đã làm ở nhà cho đúng theo !$F trình đã
chạy
Bài 1: Tính tổng của n số tự nhiên đầu tiên Program tinh_tong;
Uses crt;
Var i, n: integer; tong: longin;
Begin
Clrscr;
Tong:=0;
Writeln(‘Nhap vao so n’);
readln(n);
For i:=1 to n do Tong: = Tong+i;
Writeln(‘Tong của’, n,’so tu nhien dautien la’,tong);
Readln;
Trang 10GV: Yêu cầu HS gõ bài tập 2
HS: Gõ !$F trình, chạy thử và báo kết quả
GV: Hỗ trợ học sinh trong quá trình thực hành
GV: Sau khi kết quả chạy !$F trình đã
đúng, gv yêu cầu học sinh chữa bài của mình
đã làm ở nhà cho đúng theo !$F trình đã
chạy
GV: Yêu cầu học sinh $ bài tập vào máy
tính
GV: Cho học sinh đọc bài tập 1(SGK) và nêu
yêu cầu của bài toán
GV: Học sinh quat sát và tìm hiểu yêu cầu của
bài toán
GV: Nhấn mạnh sự thay đổi của biến i
GV: Theo sự hiểu biết của em thì các tham số
2, 3 có ý nghĩ gì?
HS: Có ý nghĩa quy định cách trình bày
GV: Cho học sinh gõ !$F trình lên máy và
chạy xem kết quả
HS: Gõ !$F trình và quan sát kết quả
GV: Hỗ trợ trong quá trình thực hành
End
Bài 2: Viết !$F trình tìm xem có bao nhiêu
số $F 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 3 Viết !$F trình in ra màn hình bảng nhân của một số từ 1 đến 9, số *$8! nhập từ bàn phím và dừng màn hình để có thể quan sát kết quả (SGK)
<$F trình:(SGK)
Hoạt đông 2: củng cố và dặn dò
* Củng cố
- Giáo viên hệ thống lại toàn bộ bài học
- Nhận xét, rút kinh nghiệm tiết thực hành
*Dặn dò
- Thoát !$F trình , tắt máy và ghép lại ghế
- Đọc các bài tập 2,3 ở phần thực hành
Ngày dạy:20/1/2011
Tiết 42
Bài thực hành 5: Sử dụng lệnh lặp for to do
A Mục tiêu :
1 Kiến thức :
- Vận dụng kiến thức của vòng lặp for to… do, câu lệnh ghép để viết !$F trình
2 Kỹ năng
Trang 11- Viết *$8! !$F trình có sử dụng vòng lặp for to do;
- Sử dụng *$8! câu lệnh ghép;
- Rèn luyện kỹ năng đọc hiểu !$F 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.
B Chuẩn bị :
1 Giáo viên :
- SGK, SGV, tài liệu, Giáo án
- Chuẩn bị phòng thực hành đủ số máy tính hoạt động tốt
2 Học sinh :
- Đọc #$%! bài thực hành
- Học thuộc kiến thức lý thuyết đã học
C 4 TRèNH :1J
I
II M& tra bài N :
M! tra trong quỏ trỡnh % hành
III :O bài $ :
Hoạt động 1: làm bài tập 2 và 3
GV: $0 ra nội dung của bài toán
GV: Yêu cầu học sinh mở bài tập 1 trong máy
tính
GV: Dùng bảng phụ *$0 hình 36 và hình 37
(SGK)
HS: Quan sát và *$0 ra sự khác biệt giữa hai
kết quả
GV: Với hai kết quả trên thì kết quả nào đẹp
hơn
HS: Trả lời
GV: Để làm *$8! $ kết quả của hình 37 thì
các em phải làm $ thế nào?
HS: Trả lời
GV: Với !$F trình cũ thì cần thêm những
dòng lệnh nào?
HS: Trả lời
GV: Giải thích những dòng lệnh mới
HS: Lắng nghe
GV: Cho HS sửa !$F trình và chạy xem kết
quả
HS: Gõ !$F trình, kiểm tra kết quả
GV: Hổ trợ học sinh trong quá trình thực hành
GV: Yêu cầu học sinh $ bài tập vào máy tính
GV: Cho HS đọc nội dung của bài toán
HS: Đọc và nghiên cứu
GV: Giới thiệu cấu trúc lệnh for lồ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
Bài tập 2 (SGK)
Lưu ý:
- Chỉ sử dụng *$8! các lệnh GotoXY, WhereX
và WhereY sau khi khai báo Crt
- Câu lệnh GotoXY(a,b) có tác dụng *$0 con trỏ về cột a, hàng b
- WhereX cho biết số thứ tự của cột
- WhereY cho biết số thứ tự của hàng
Bài 3: (SGK).
Câu lệnh for lồng trong for
- For<biến đếm>:= <giá trị đầu>to<giá trị
...1 Giáo viên :
- SGK, SGV, tài liệu, Giáo án
- Chuẩn bị phòng thực hành đủ số máy tính hoạt động tốt
2 Học sinh :
- Đọc #$%! thực hành
- Học thuộc...
-
-
2 Kỹ năng.
-
-
-
3 Thỏi độ
- Thỏi * nghiờm tỳc =
B Chuẩn bị :
Giáo viên...
-
-
3 Thỏi độ:
- Thỏi * nghiờm tỳc =
B Chuẩn bị :
Giáo viên :
- SGK, SGV, tài liệu, Giáo án
-