- Hiểu hoạt động của câu lệnh lặp với số lần biết trớc for.... Bài mới: 35’ Hoạt động 1: Các công việc phải thực hiện nhiều lần 5 ’ ?Hàng ngày chúng ta thờng phải làm một số việc lặp đi
Trang 1Ngày11-01-2010 : Tiết: 37
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 lệnh 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 to do trong pascal
2 Kỹ năng: Viết đúng đợc lệnh for to do trong một số tình huống đơ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 Ph ơng pháp : - Thuyết trình, chia nhóm nghiên cứu làm bài tập, vấn đáp III chuẩn bị của GV, HS
1 Chuẩn bị của GV: - Giáo án, SGK, phòng máy, phần mềm pascal
2 Chuẩn bị của HS: - SGK, vở ghi, bút
IV Tiến Trình lên lớp:
1 n định lớp ổ (1’)
2 Kiểm tra bài cũ (5’)
? 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?
? Mô tả thuật thoán tính tổng của 100 số tự nhiên đầu tiên?
3 Vào bài mới: (1’) Để máy tính thực hiện tính tổng của 100 số tự nhiên đầu tiên
thì chúng ta phải ra lệnh cho máy bằng lệnh nào? Để trả lời cho câu hỏi trên chúng
ta đi vào nghiên cứu bài học ngày hôm nay Giáo viên nghi nhàn đầu bài lên bảng
4 Bài mới: (35’)
Hoạt động 1: Các công việc phải thực hiện nhiều lần (5 )’
?Hàng ngày chúng ta thờng phải làm
một số việc lặp đi lặp lại một số lần,
em hãy lấy ví dụ về một số việc hàng
- HS: Tách ví dụ thành hai loại (một
loại đã biết trớc số lần lặp và một loại
cha biêt số lần lặp )
1 Các công việc phải thực hiền nhiều lần
- Công việc không biết trớc số lần lặp lại: học bài cho đến khi thuộc hết các bài,
- Công việc đã biết trớc số lần lặp: đi học mỗi sáng 5 tiết, mỗi ngày tập 7 bài thể dục buổi sáng, đánh răng mỗi ngày 3 lần,
=> Để chỉ cho máy tính thực hiện đúng công việc, trong nhiều trờng hợp khi viết một chơng trình máy tính chúng ta cũng 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
VD1: Để tính 5 số tự nhiên đầu tiên ta có thể viết nh sau:
beginI=0; Tong:=0;
I:=i+1; Tong:=Tong+i;
I:=i+1; Tong:=Tong+i;
Trang 2- GV: Nhận xét và chốt lại I:=i+1; Tong:=Tong+i;
I:=i+1; Tong:=Tong+i;
I:=i+1; Tong:=Tong+i;
Readln; end
Hoạt động 2: Câu lện lặp - một lệnh thay cho nhiều lệnh (15)
-HS: nghiên cứu ví dụ 1 SGK - 56,57
- GV: phân tích ví dụ 1
- HS: Nghe, nghi chép
- HS: Mô tả lại thuật toán, phân tích
thuật toán
? Qua hai ví dụ trên, các em hãy chỉ
ra những công việc đợc lặp đi lặp lại?
- thuật toán: (đã nghiên cứu ở bài học số 5)
=> Kết luận: - Cáng mô tả các hoạt động lặp trong thuật toán nh trong 2 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âu lệnh lặp
Hoạt động 3: Ví dụ về câu lệnh lặp (15)
Trong đó: for, to, do là các từ khoá, Biến
đếm là biến đơn có kiểu nguyên (có thể là kiểu kí tự hoặc kiểu đoạn con)
Giá trị đầu, giá trị cuối là số cụ thể hoặc
là biểu thức có kiểu cùng kiểu với biến
đếm, 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 hoặc câu lệnh kép
- Câu lệnh sẽ đợc thực hiện nhiều lần, mỗi lần thực hiện câu lệnh là một lần lặp và sau mỗi lần lặp biến đếm sẽ tự động tăng lên 1
đơn vị, tăng cho đến khi giá trị của biến
đếm lớn hơn giá trị cuối thì vòng lặp đợc dừng lại
5 Củng cố (2 ) ’ Giáo viên hệ thống lại toàn bộ nội dung bài học
6 Dặn dò học sinh về nhà (1 ) ’ 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
Trang 3- Hiểu cấu trúc câu lệnh ghép.
2 Kỹ năng: biết kết hợp câu lệnh ghép và câu lệnh lặp for ………do vào giải quyết một số bài toá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 Ph ơng pháp : - Thuyết trình, chia nhóm nghiên cứu làm bài tập, vấn đáp III chuẩn bị của GV, HS
1 Chuẩn bị của GV: - Giáo án, SGK, phòng máy, phần mềm pascal
2 Chuẩn bị của HS: - SGK, vở ghi, bút
IV Tiến Trình lên lớp:
1 ổ n định lớp (1’)
2 Kiểm tra bài cũ (5’)
? Trình bày cầu trúc của câu lệnh lặp trong pascal, nêu ý nghĩa của các thành phần
trong cấu trúc?
3 Vào bài mới: (1 ) ’ Để vận dụng tốt hơn câu lệnh lặp chúng ta sẽ cùng nghiên cứu bài học ngày hôm nay Giáo viên ghi nhanh tên đề bài lên bảng
4 Bài mới: (35’)
Hoạt động của thầy và trò Nội dung ghi bảng
Hoạt động 1: Ví dụ về câu lệnh lặp (15’)
-GV: Trình bày cấu trúc của câu lệnh lặp
lùi trong pascal
For …… downto……….do
HS: Ghi chép cấu trúc vào vở
GV: Giải thích hoạt động của câu lện
- GV: cho chạy chơng trình mẫu đã gõ
trớc trong máy, yêu cầu học sinh quan
3 Ví dụ về câu lệnh lặp (tiếp)
- Cấu trúc của câu lệnh lặp lùi:
For<biến đếm>:= <giá trị cuối> downto <giá trị đầu>do <câu lệnh>;
- Câu lệnh sẽ đợc thực hiện nhiều lần, mỗi lần thực hiện câu lệnh là một lần lặp và sau mỗi lần lặp biến đếm sẽ tự
động giảm đi1 đơn vị, giảm cho đến khi giá trị của biến đếm nhỏ hơn giá trị đầu thì vòng lặp đợc dừng lại
-số lần lặp = giá trị cuối-giá trị đầu+1
=> for to do là cấu trúc lặp với số lần lặp biết trớc
- Ví dụ 3 (SGK-58) in ra màn hình thứ
tự lần lặp
Program lap;Var i: integer;Begin
For i:=1 to 10 doWriteln(‘day la lan lap thu’, i);
Readln;
Trang 4- HS: Các em khác thảo luận và cho ý
kiến
- GV: Trình bày cấu trúc câu lệnh ghép
- HS: Nghe, ghi chép
- GV: cho chạy chơng trình mẫu đã gõ
trớc trong máy, yêu cầu học sinh quan
sát kết quả
- GV: Giải thích kết quả của chơng trình
End
- VD4 (SGK-58) 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
ở dới lớp cá cem làm bài theo nhóm, mỗi
dãy làm một bài, dãy giữa làm vd5
- HS: Đại diện của mỗi dãy nhận xét
thuật toán trên bảng
-GV: Giúp HS sửa lại đúng thuật toán
-HS: 2 em lên bảng viết chơng trình cho
2 bài (5’)
- HS: ở dới hoạt động theo nhóm, chia
dãy nh ban đầu
- HS: đại diện mỗi dãy nhận xét bài viết
HS đọc ghi nhớ SGK, giáo viên tổng kết đánh giá buổi học.
6 Dặn dò học sinh về nhà (1’) Về nhà làm bài tập trang 60-61.
Trang 5Rèn luyện kỹ năng đọc hiểu chơng trình có sử dụng vòng lặp for to 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 Ph ơng pháp : chia nhóm nghiên cứu làm bài tập, vấn đáp.
III chuẩn bị của GV, HS
1 Chuẩn bị của GV: - Giáo án, SGK, phòng máy, phần mềm pascal
2 Chuẩn bị của HS: - SGK, vở ghi, bút
IV Tiến Trình lên lớp:
1 ổ n định lớp (1’)
2 Kiểm tra bài cũ (5’) Kiểm tra bài tập đã cho về nhà.
3 Vào bài mới: (1’) Chúng ta đã nghiên cứu lý thuyết về vòng lặp for do để …biết vòng lặp chạy nh thế nào thì hôm nay chúng ta cùng nhau đi vào tiết thực hành Giáo viên ghi tên bài học lên bảng
4 Bài mới: (35’)
Hoạt động 1: Viết chơng trình cho các bài tập đã cho về nhà (15 )’
- GV: yêu cầu mỗi dãy gõ một bài
vào máy (10’)
- HS: gõ chơng trình, chạy thử chơng
trình, và báo cáo kết quả
- GV: hỗ trợ học sinh trong quá trình
Trang 6- Sau khi kết quả chạy chơng trình đã
đúng, gv yêu cầu học sinh chữa bài của
if A>0 then dem:=dem+1;
- GV: Đa ra nội dung của bài toán
- HS: Nghiên cứu bài toán, tìm input
và output
- 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: đọ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 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: tham gia hoạt động của giáo
viên
- GV: yêu cầu học sinh lập bảng hoạt
động của chơng trình theo mẫu:
- 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 2: 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
Readln;
End
5 Củng cố (2’) Nhận xét, rút kinh nghiệm tiết thực hành
6 Dặn dò học sinh về nhà (1 ) ’ về nhà xem trớc bài thực hành 2 SGK (T63) viết chơng trình in ra màn hình bảng cửu chơng từ 2 đến 9
Ngày :18-01-2010
Trang 7Tiết: 40
Bài thực hành 5:
Sử dụng lệnh lặp for …to do
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, tìm hiểu câu lệnh gotoxy(), where<>, lệnh for lồng trong for
2 Kỹ năng
Viết chơng trình có sử dụng vòng lặp for do;…
Sử dụng câu lệnh ghép trong chơng trình;
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 thực hành.
II Ph ơng pháp : chia nhóm nghiên cứu làm bài tập, vấn đáp.
III chuẩn bị của GV, HS
1 Chuẩn bị của GV: - Giáo án, SGK, phòng máy, phần mềm pascal
2 Chuẩn bị của HS: - SGK, vở ghi, bút
IV Tiến Trình lên lớp:
1 ổ n định lớp (1’)
2 Kiểm tra bài cũ (kiểm tra xen trong bài thực hành)
3 Vào bài mới: (1’) Giáo viên vào bài
4 Bài mới: (40’)
Hoạt động 1: Làm đẹp màn hình kết quả bằng lệnh gotoxy, where (20 )’
- Giáo viên cho chạy kết quả của
bài thực hành Bang_cuu_chuong
Yêu cầu học sinh quan sát kết
quả và nhận xét khoảng cách giữa
- GV: yêu cầu học sinh mở chơng
trình Bang_cuu_chơng và sửa lại
chơng trình theo bài trên màn
hình của giáo viên
- HS: gõ chơng trình vào máy, sửa
lỗi chính tả, chạy chơng trình,
Bài 2 sgk (T63)a) Giới thiệu lệnh gotoxy(), wherex
- Gotoxy(a,b)Trong đó: a là chỉ số cột, b là chỉ số hàng
- ý nghĩa của câu lệnh là đa 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
* Lu ý: Phải khai báo th viện crt trớc khi
sử dụng hai lệnh trêna) Chỉnh sửa chơng trình nh sau:
Program Bang_cuu_chuong;
Uses crt;
Var i, n: integer;Begin
Clrscr;
Writeln(‘Nhap vao so n’); readln(n);
Trang 8quan sát kết quả.
- GV: yêu cầu học sinh quan sát
kết quả và so sánh với kết quả của
chơng trinh khi cha dùng lệnh
gotoxy(5, wherey);
Writeln(n,’x’,i:2,’=’,n*i:3);
Readln;
End
Hoạt động 2: sử dụng lệnh For lồng trong for (28 )’
- 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 3 SGK (T64)
a) Câu lệnh for lồng trong for
- For<biến đếm1:= giá trị đầu> to <giá trị cuối>do
For<biến đếm 2:=giá trị đầu> to<giá trị cuố>do
5 Củng cố (2 ) ’ Nhận xét rút kinh nghiệm giờ thực hành
6 Dặn dò học sinh về nhà (1 )’ học sinh về nhà sử dụng lệnh gotoxy để chỉnh sửa lại bài thực hành số 3 cho kết quả in ra màn hình đẹp
Ngày soạn : 31-01-2010
Trang 9Ngµy d¹y : 8A :02-02-09; 8B : -02-09;… 8C:02-02-09 8D:02-02-09 TiÕt 41+42:
Bài 8 LÆp víi sè lÇn cha biÕt tríc
+ 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
II Chuẩn bị
GV: SGK, máy chiếu, phim trong các ví dụ về chương trình
HS: Xem trước bài ở nhà
III Tiến trình bài giảng
1 Ổn định ớp
2 Kiểm tra bài củ
Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,…,99,100
Trả lời
Bước 1 SUM ← 0; i ← 0.
Bước 2 i ← i + 1.
Bước 3 Nếu i ≤ 100, thì SUM ← SUM + i và quay lại bước 2.
Bước 4 Thông báo kết quả và kết thúc thuật toán.
G : Đặt vấn đề
Với bài toán trên, trong TP ta sử dụng vòng lặp for…to…do 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 for…to…do 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 thiệu bài mới
Trang 10+ Hs : Nghe giáo viên hướng dẫn, sau
đó tự xây dựng thuật toán
+ G : Chạy tay cho học sinh xem ( Chỉ
nên chạy tay thử từ 1 đến 10 )
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
+ G : Giới thiệu cú pháp lệnh
+ hs : chú ý nghe và ghi chép
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
ngược lại chuyển tới bước 4
+ Bước 3 S ← S + n và quay lại bước 2.
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
Trang 11+ G : Xét ví dụ 3
Chúng ta biết rằng, nếu n càng lớn thì
Error! Objects cannot be created
from editing field codes càng nhỏ,
nhưng luôn luôn lớn hơn 0 Với giá trị
nào của n thì Error! Objects cannot
be created from editing field codes <
0.005 hoặc Error! Objects cannot be
created from editing field codes <
0.003 ?
( Gv đưa phim trong ví dụ 3 )
+ Hs : Đọc ví dụ 3 ( Phim trong)
+ G : giới thiệu chương trình mẫu sgk (
Giáo viên in chương trình mẫu trên
phim trong )
+ Hs : quan sát
+ G : Chạy tay cho học sinh xem
+ Hs : chú ý nghe và tự chạy tay lại
+ G : 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â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
Với giá trị nào của n ( n>o ) thì 1
n < 0.005 hoặc 1
n < 0.003? Chương trình
dưới đây tính số n nhỏ nhất để 1
n nhỏ hơn một sai số cho trước :
Trang 12Tiết 42
+ G : Y/c hs nhắc lại cú pháp câu lệnh
lặp với số lần chưa biết trước
+ H : trả lời
+ G : ta tiếp tục xét các ví dụ mà trong
chương trình có câu lệnh với số lần lặp
chưa biết trước
Xét ví dụ 4
+ G : Cho học sinh quan sát phim trong
chương trình
+ Hs : quan sát
+ G : Chạy tay cho học sinh xem
+ Hs : chú ý nghe và tự chạy tay lại
+ G : Yêu cầu học sinh mở máy tính và
mở chương trình ví dụ 4 ( giáo viên
chuẩn bị chương trình mẫu và đưa lên
+ 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
+ G : Chạy tay ( cả hai chương trình )
cho học sinh xem
+ Hs : chú ý nghe và tự chạy tay lại
+ G : so sánh kết quả khi chạy hai
chương trình
+ Hs : Kết quả bằng nhau
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ụ
writeln('So n nho nhat de tong > 1000
Trang 13+ G : Ví dụ này cho thấy rằng chúng ta
có thể sử dụng câu lệnh while…do
thay cho câu lệnh for…do
+ G : Giới thiệu phần 3
+ G : Khi viết chương trình sử dụng
cấu trúc lặp cần chú ý tránh tạo nên
vòng lặp không bao giờ kết thúc
+ G : Trong chương trình trên, giá trị
của biến a luôn luôn bằng 5, điều kiện
a<6 luôn luôn đúng nên lệnh
writeln('A') luôn được thực hiện.
Do vậy, khi thực hiện vòng lặp, điều
kiện trong câu lệnh phải được thay đổi
để sớm hay muộn giá trị của điều kiện
được chuyển từ đúng sang sai Chỉ như
thế chương trình mới không "rơi" vào
Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc
Trang 14Rèn luyện kỹ năng đọc hiểu chơng trình có sử dụng vòng lặp while 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 Ph ơng pháp : chia nhóm nghiên cứu làm bài tập, vấn đáp.
III chuẩn bị của GV, HS
1 Chuẩn bị của GV: - Giáo án, SGK, phòng máy, phần mềm pascal
2 Chuẩn bị của HS: - SGK, vở ghi, bút
IV Tiến Trình lên lớp:
1 ổ n định lớp (1’)
2 Kiểm tra bài cũ (5’) Kiểm tra bài tập đã cho về nhà.
3 Vào bài mới: (1’) Chúng ta đã nghiên cứu lý thuyết về vòng lặp while do để …biết vòng lặp chạy nh thế nào thì hôm nay chúng ta cùng nhau đi vào tiết thực hành Giáo viên ghi tên bài học lên bảng
4 Bài mới: (35’)
Tiết 43-Hoạt động 1: Bài tập 1 (45 )’
- GV: yêu cầu mỗi dãy gõ một bài
vào máy (10’)
- HS: gõ chơng trình, chạy thử chơng
trình, và báo cáo kết quả
- GV: hỗ trợ học sinh trong quá
- Sau khi kết quả chạy chơng 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 chơng trình đã chạy
Bài 1: viết chơng trình sử dụng lệnh While do để tính trung bình n số thực x1,x2 ,xn Các số xi đợc nhập từ bàn phím