- 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.. GV: Cho ví dụ về vẽ hình vuông và giảithích ví dụ cho học sinh GV:
Trang 1Ngày soạn: Ngày dạy:
Lớp 8A: / /2009 Lớp 8B / /2009 Lớp 8C / /2009 Lớp 8D / /2009 Lớp 8E / /2009
Tiết 37:
CÂU LỆNH LẶP
1 Mục tiêu:
a 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
b Kỹ năng:
- Hiểu hoạt động của câu lệnh với số lần biết trước for do trong Pascal.
c Thái độ:
- Yêu thích môn học, nghiêm túc trong giờ học
2 Chuẩn bị của giáo viên và học sinh:
a Chuẩn bị của giáo viên:
- Giáo án, phòng máy, máy chiếu, phần mềm Pascal
b Chuẩn bị của học sinh:
- Kiến thức cũ, sách, vở
3 Tiến trình bài dạy
a Kiểm tra bài cũ: Không KT
Trang 2b D y n i dung b i m i:ạy nội dung bài mới: ội dung bài mới: ài mới: ới:
GV: Nêu một số công việc thường ngày
trong cuộc sống
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ường thực hiện lặp lại với một số lần
nhất định và biết trước, chẳng hạn đánh
răng mỗi ngày hai lần, mỗi ngày tắm
một lần, Chúng ta còn lặp lại những
công việc với số lần không thể xác định
trước: học cho đến khi thuộc bài, nhặt
từng cọng rau cho đến khi xong,
GV: Giới thiệu câu lệnh lặp trong
Pascal
1 Các công việc phải thực hiện nhiều lần: 15’
HS: Chú ý lắng nghe HS: Ghi chép
Khi viết chương trình máy tính cũng vậy.
Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều trường hợp ta cũng cần phải viết lặp lại nhiều câu lệnh thực hiện một phép tính nhất định.
2 Câu lệnh lặp - một lệnh thay cho nhiều lệnh: 25’
Ví dụ 1 Giả sử ta cần vẽ ba hình vuông
có cạnh 1 đơn vị như hình 33 Mỗi hình vuông là ảnh dịch chuyển của hình bên trái nó một khoảng cách 2 đơn vị Do đó,
ta chỉ cần lặp lại thao tác vẽ hình vuông
ba lần Việc vẽ hình có thể thực hiện được bằng thuật toán sau đây:
Bước 1 Vẽ hình vuông (vẽ liên tiếp bốn
cạnh và trở về đỉnh ban đầu)
Bước 2 Nếu số hình vuông đã vẽ được ít
Trang 3GV: Cho ví dụ về vẽ hình vuông và giải
thích ví dụ cho học sinh
GV: Cho ví dụ về tính tổng 100 số 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, kết thúc thuật toán
Hình 33
Riêng với bài toán vẽ một hình vuông (h 34), thao tác chính là vẽ bốn cạnh bằng nhau, hay lặp lại bốn lần thao tác vẽ một đoạn thẳng Sau mỗi lần vẽ đoạn thẳng, thước kẻ được quay một góc 90o sang phải tại vị trí của bút vẽ Thuật toán sau đây sẽ
mô tả các bước để vẽ hình vuông:
Hình 34 Bước 1 k 0 (k là số đoạn thẳng đã vẽ
được)
Bước 2 Vẽ đoạn thẳng 1 đơn vị độ dài và
quay thước 90o sang phải
Bước 3 k k +1 Nếu k ≤ 4 thì trở lại
bước 2; ngược lại, kết thúc thuật toán
Lưu ý rằng, biến k được sử dụng như là
biến đếm để ghi lại số cạnh đã vẽ được
Trang 4nhiên giải thích ví dụ cho học sinh Ví dụ 2 Giả sử cần tính tổng của 100 số
tự nhiên đầu tiên, tức là tính:
S = 1 + 2 + 3 + + 100.
Hoạt động chính khi giải bài toán này là thực hiện phép cộng Thuật toán trong ví
dụ 3, bài 5 đã mô tả việc thực hiện lặp lại phép cộng 100 lần
HS: Ghi vở Cách mô tả các hoạt động lặp trong thuật
toán như trong ví dụ trên được 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
với một câu lệnh Đó là các câu lệnh lặp
c Củng cố, luyện tập: 4’
- Nhắc lại các hoạt động lặp trong cuộc sống
d Hướng dẫn học sinh tự học ở nhà: 1’
- Về nhà xem lại phần còn lại
- Học bài cũ
Trang 5Lớp 8A: / /2009 Lớp 8B / /2009 Lớp 8C / /2009 Lớp 8D / /2009 Lớp 8E / /2009
Tiết 38:
CÂU LỆNH LẶP (T2)
1 Mục tiêu:
a 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
b Kỹ năng
- 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
c Thái độ
- Tập trung cao độ, nghiêm túc trong giờ học
2 Chuẩn bị của giáo viên và học sinh:
a Chuẩn bị của giáo viên:
- Giáo án, phòng máy, máy chiếu, phần mềm Pascal
b Chuẩn bị của học sinh:
- Kiến thức cũ, sách, vở
3 Tiến trình bài dạy:
a Kiểm tra bài cũ: Đan xen trong tiết học
b Dạy nội dung bài mới:
Trang 6HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA GV
GV: Giới thiệu câu lệnh lặp trong
Pascal
GV: Nêu cú pháp của câu lệnh lặp
GV: Nêu một ví dụ về câu lệnh lặp
3 Ví dụ về câu lệnh lặp: 15’
HS: Chú ý quan sát Các ngôn ngữ lập trình thường có nhiều dạng câu lệnh lặp
HS: chú ý và ghi vở
Câu lệnh lặp đơn giản nhất trong Pascal có dạng:
for <biến đếm> := <giá trị đầu> to <giá trị cuối> do
<câu lệnh>;
Khi gặp câu lệnh lặp trên, câu lệnh được thực hiện bắt đầu với giá trị biến
đếm bằng giá trị đầu Sau đó giá trị biến đếm tăng dần một đơn vị từ giá trị đầu đến giá trị cuối và câu lệnh được
thực hiện mỗi lần tăng biến đếm cho đến khi biến đếm vượt quá giá trị cuối thì kết thúc Như vậy biến đếm phải được khai báo là kiểu nguyên và giá trị
cuối phải không nhỏ hơn giá trị đầu.
Ví dụ 3 Chương trình sau sẽ in ra màn
hình thứ tự lần lặp:
program Lap;
var i: Integer;
begin
Trang 7GV Nêu Ví dụ Để in một chữ "O" trên
màn hình, ta có thể sử dụng lệnh:
GV: Trình bày bằng các câu lệnh Pascal
for i := 1 to 10 do
writeln('Day la lan lap thu ',i);
end
HS: Đọc kỹ ví dụ
Ví dụ 4 Để in một chữ "O" trên màn
hình, ta có thể sử dụng lệnh:
writeln('O');
HS: Quan sát các câu lệnh trong chương trình
Nếu muốn viết chương trình mô phỏng một quả trứng rơi từ trên cao xuống, ta
có thể lặp lại lệnh trên nhiều lần (ví dụ,
20 lần) như trong chương trình sau:
Uses crt;
Var i: integer;
begin
Clrscr;
for i:=1 to 20 do begin writeln('O');
delay(100) end;
end.
Dịch và chạy chương trình này, ta sẽ thấy kết quả như ở hình 35 dưới đây:
Trang 8GV: Cho ví dụ về tính tổng và tích câu
lệnh lặp
VD: Ví dụ 5 Chương trình sau đây sẽ
tính tổng của N số tự nhiên đầu tiên, với
N là số tự nhiên được nhập vào từ bàn
phím
Hình 35
4 Tính tổng và tích bằng câu lệnh lặp : 22’
HS: Quan sát ví dụ
Ví dụ 5 Chương trình sau đây sẽ tính
tổng của N số tự nhiên đầu tiên, với N
là số tự nhiên được nhập vào từ bàn phím (xem ví dụ 2)
program Tinh_tong;
var N,i: Integer;
S: longint;
begin
write('Nhap so N = '); readln(N);
S:=0;
Trang 9Ví dụ 6 Ta kí hiệu N! là tích N số tự
nhiên đầu tiên
toán
GV: Hướng dẫn một số lệnh trong
Pascal sẽ được sử dụng trong bài
GV: Nhận xét
for i := 1 to N do
S:=S+i;
writeln('Tong cua ',N,' so tu nhien dau tien S = ',S);
end
HS: Quan sát và tìm cách giải quyết bài
HS: Viết chương trình
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ưới đây là chương trình tính N! với N
là số tự nhiên được nhập vào từ bàn phím Chương trình sử dụng một câu
lệnh lặp for…do:
program Tinh_Giai_thua; var N,i: Integer;
P: longint;
begin
write('N = ');
readln(N);
P:=1;
for i:=1 to N do
Trang 10writeln(N,'! = ',P);
end
Lưu ý Vì N! là số rất lớn so với N, một
lần nữa cần lưu ý khai báo biến chứa giá trị của nó đủ lớn
c Củng cố, luyện tập: 7’
- Nhắc lại một số ví dụ về câu lệnh lặp
- Viết lại dạng tổng quát của cấu trúc lặp?
d Hướng dẫn học sinh tự học ở nhà: 1’
- Về nhà xem lại phần còn lại của bài, tiết sau làm các bài tập về câu lệnh lặp
Lớp 8A: / /2009 Lớp 8B / /2009 Lớp 8C / /2009 Lớp 8D / /2009 Lớp 8E / /2009
Tiết 39:
BÀI TẬP
1 Mục tiêu
a Kiến thức:
- 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
b Kỹ năng
Trang 11- Hiểu hoạt động của câu lệnh với số lần biết trước for do trong Pascal.
c Thái độ
- Yêu thích môn học, nghiêm túc trong giờ học
2 Chuẩn bị của giáo viên và học sinh:
a Chuẩn bị của giáo viên:
- Giáo án, phòng máy, máy chiếu, phần mềm Pascal
b Chuẩn bị của học sinh:
- Kiến thức cũ, sách, vở
3 Tiến trình bài dạy:
a Kiểm tra bài cũ: Đan xen trong tiết học
b D y n i dung b i m i: ạy nội dung bài mới: ội dung bài mới: ài mới: ới:
GV: Cho bài tập 1
? Hãy viết thuật toán để thực hiện bài toán
trên?
GV: Nêu một ví dụ về câu lệnh lặp
Bài tập 1: 15’
HS: Viết thuật toán để giải quyết bài toán trên
a) 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;
Trang 12GV: Yêu cầu học sinh viết các thuật toán để
thực hiện giải bài toán tính tổng dãy số
GV: Kiểm tra và nhận xét
GV: Yêu cầu học sinh viết các thuật toán để
thực hiện giải bài toán tính tổng dãy số
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 tập 2:10’
Thuật toán tính tổng
5 3
1 4 2
1 3 1
1
n n
Bước 1 Gán A 0, i 1
Bước 2 A i i ( 12) 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.
Bài tập 3:10’
Trang 13GV: Kiểm tra và nhận xét
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.
c Củng cố, luyện tập: 4’
? Nhắc lại các thuật toán trong các bài tập trên?
d Hướng dẫn học sinh tự học ở nhà: 1’
- Về nhà xem các bài tập còn lại, tiết sau làm tiếp các bài tập
Lớp 8A: / /2009
Trang 14Lớp 8B / /2009 Lớp 8C / /2009 Lớp 8D / /2009 Lớp 8E / /2009
Tiết 40:
BÀI TẬP
1 Mục tiêu
a 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
b Kỹ năng:
- 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
c Thái độ:
- Nghiêm túc trong giờ học, yêu thích môn học
2 Chuẩn bị của giáo viên và học sinh:
a Chuẩn bị của giáo viên:
- Giáo án, phòng máy, máy chiếu, phần mềm Pascal
b Chuẩn bị của học sinh:
- Kiến thức cũ, sách, vở
3 Tiến trình bài dạy:
a Kiểm tra bài cũ: Đan xen trong tiết học
b Dạy nội dung bài mới:
Trang 15GV: Cho bài tập yêu cầu học sinh viết
thuật toán và các lệnh để giải quyết bài
toán như sau:
GV: Nêu một ví dụ về câu lệnh lặp
Bài tập 1: Thuật toán: 15’
HS: Viết thuật toán để giải quyết bài toán trê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 ii + 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.
Trang 16GV: Cho bài toán "Nhập n số tự nhiên và
tìm số lớn nhất trong các số vừa nhập "
yêu cầu học sinh viết thuật toán và các
lệnh để giải quyết bài toán
GV: Kiểm tra và nhận xét
Bài tập 2) Thuật toán: 12’
HS: Viết thuật toán, chương trình
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
Trang 17GV: Cho bài toán yêu cầu học sinh viết
thuật toán và các lệnh để giải quyết bài
toán
GV: Kiểm tra và nhận xét
begin write('Nhap so
thu ',i,':'); readln(A);
if Max<A then
Max:=A end;
writeln('So lon nhat: ',Max);
end.
Bài tập 3) 12’
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,':');
Trang 18if A>0 then
SoDuong:=SoDuong+1 end;
writeln('So cac so duong = ',SoDuong)
end else writeln('n phai >
0!');
end.
c Củng cố, luyện tập: 5’
? Nhắc lại các thuật toán trong các bài tập trên và một số lệnh sử dụng trong chương trình?
d Hường dẫn học sinh tự học ở nhà: 1’
- Về nhà xem lại các bài tập tiết sau chúng ta thực hành Bài thực hành 5