-Mục tiêu: HS biết được cấu trúc chung của câu lệnh For-do; Hiểu được ý nghĩa của các thành phần trong lệnh; Biết được sự thực hiện của máy khi gặp lệnh Fordo; Vẽ được sơ đồ thực hiện lệ[r]
Trang 1Ngày soạn: 24/11/2007
(Tiết PPCT: 13)
I MỤC ĐÍCH YÊU CẦU:
1 Kiến thức:
-Biết được ý nghĩa của cấu trúc lặp;
-Biết được cấu trúc của lệnh lặp For-do trong ngôn ngữ lập trình Pascal;
-Biết sử dụng đúng hai dạng lệnh lặp For-do trong ngôn ngữ lập trình Pascal
2 Kỹ năng:
Bước đầu sử dụng được lệnh For-do để viết chương trình giải quyết được một số bài toán đơn giản
3 Thái độ:
II CHUẨN BỊ:
1 Tài liệu, bài tập: SGK, SGV.
2 Dụng cụ, thiết bị:
III TIẾN TRÌNH LÊN LỚP:
1 Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2 Kiểm tra bài cũ: -Viết chương trình nhập vào hai số bất kỳ và xuất ra màn hình giá
trị lớn nhất của hai số
3 Bài giảng:
Hoạt động của thầy và trò Nội dung ghi bảng
Hoạt động 1:
-Nội dungHĐ: Tìm hiểu ý nghĩa của cấu
trúc lặp
-Mục tiêu: HS thấy được sự cần thiết của
cấu trúc lặp trong lập trình
-Các bước tiến hành:
GV: Gợi ý phương pháp và yêu cầu HS
xác định công thức toán học để tính tổng?
HS: Suy nghĩ và đưa ra công thức
GV: -Đối với BT1, số lần lặp là 100 và
việc cộng vào tổng S sẽ kết thúc khi đã
thực hiện việc cộng 100 lần
-Đối với BT2, số lần lặp chưa biết
trước nhưng việc cộng vào tổng S sẽ kết
thúc khi điều kiện 1/(a + N) < 0,0001
được thỏa mãn
HS: Chú ý lắng nghe
1/ Lặp:
Với a là số nguyên và a>2, xét các bài tóan sau:
BT1: (SGK tr 42)
S = + 1 + + … +
a
1 1
a
1 2
a
1 100
a BT2: (SGK tr 42)
a
1 1
a
1 2
a
1
aN
Cách tính tổng S cả 2 BT, có nhiều điểm tương tự:
-Xuất phát, S 1/a;
-Tiếp theo, S S + 1/(a + N);
với N = 1, 2, 3 -Việc cộng này được lặp lại một số lần
Cấu trúc lặp mô tả thao tác lặp và được
phân biệt có 2 loại là lặp với số lần biết trước và lặp với số lần chưa biết trước
Trang 2Hoạt động 2:
-Nội dungHĐ: Tìm hiểu câu lệnh For-do.
-Mục tiêu: HS biết được cấu trúc chung
của câu lệnh For-do; Hiểu được ý nghĩa
của các thành phần trong lệnh; Biết được
sự thực hiện của máy khi gặp lệnh
For-do; Vẽ được sơ đồ thực hiện lệnh For-do
-Các bước tiến hành:
GV: Nêu nội dung BT1 Chia lớp thành 4
nhóm, 2 nhóm viết 1 TT giải quyết BT1
HS: Làm việc theo nhóm và đưa ra TT
GV: Giải thích thuật toán
HS: Chú ý nghe
GV: Yêu cầu HS nghiên cứu SGK và cho
biết cấu trúc chung của lệnh For-do?
HS: Đưa ra cấu trúc chung lệnh For-do
GV: Hãy cho biết ý nghĩa của <giá trị
đầu>, <giá trị cuối> và kiểu dữ liệu của
chúng?
HS: Dùng để làm giới hạn cho biến đếm
và cùng kiểu với biến đếm
GV: Giải thích sự thực hiện của máy khi
gặp lệnh For-do
HS: Chú ý lắng nghe
GV: Vẽ được sơ đồ thực hiện lệnh For-do
và giải thích các bước thực hiện của máy
*Sơ đồ dạng lặp tiến:
2/ Lặp với số lần biết trước và câu lệnh For- do:
BT1:
*Thuật toán Tong_1a:
B1: S 1/a ; N 0;
B2: N N+1;
B3: Nếu N > 100 thì chuyển đến B5;
B4: S S +1/(a + N); rồi quay lại B2; B5: Đưa S ra màn hình, rồi kết thúc
*Thuật toán Tong_1b:
B1: S 1/a ; N 101;
B2: N N -1;
B3: Nếu N < 1 thì chuyển đến B5;
B4: S S +1/(a + N); rồi quay lại B2; B5: Đưa S ra màn hình, rồi kết thúc Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh For-do với 2 dạng tiến và lùi
a/ Dạng lặp tiến:
for <biến đếm>:= <giá trị đầu> to <giá trị
cuối> do <câu lệnh> ;
b/ Dạng lặp lùi:
for <biến đếm>:= <giá trị cuối> downto
<giá trị đầu> do <câu lệnh> ;
Trong đó:
-Biến đếm là biến đơn thường có kiểu nguyên
-Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm
- Giá trị đầu <= giá trị cuối
-Nếu giá trị đầu > giá trị cuối thì vòng lặp không được thực hiện
*Ghi chú: Giá trị của biến đếm được điều
chỉnh tự động vì vậy câu lệnh viết sau do
không được thay đổi giá trị biến đếm
Biến đếm := giá trị đầu
B đếm<= G.trị cuối
Đúng
Sai
Trang 3*Sơ đồ dạng lặp lùi:
*Dạng lùi: Câu lệnh sau từ khoá do được
thực hiện tuần tự với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
4.Tổng kết nội dung, đánh giá cuối bài:
-Cấu trúc chung của lệnh For-do;
-Sơ đồ thực hiện của cấu trúc For-do
5.Dặn dò, kế hoạch học tập tiết sau:
-Về nhà học bài và xem trước ví dụ 1, ví dụ 2 (SGK tr44)
IV NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
Biến đếm := giá trị cuối
Lệnh cần lặp;
Biến đếm giảm 1
B đếm>= G.trị cuối
Đúng
Sai
Trang 4Ngày soạn: 24/11/2007
(Tiết PPCT: 14) III TIẾN TRÌNH LÊN LỚP:
1 Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2 Kiểm tra bài cũ: Hãy trình bày cấu trúc lặp với số lần biết trước For-do với 2 dạng
tiến và lùi? Cho biết sự khác nhau giữa dạng lặp tiến với dạng lặp lùi?
3 Bài giảng:
Hoạt động của thầy và trò Nội dung ghi bảng
Hoạt động 1:
-Nội dungHĐ: Rèn luyện kĩ năng vận
dụng câu lệnh For- do trong VD1
-Mục tiêu: Sử dụng đúng lệnh lặp For-do
để giải quyết một số bài toán đơn giản
-Các bước tiến hành:
GV: Yêu cầu HS nhắc lại thuật toán
Tong_1a giải quyết BT1 ở tiết trước?
HS:
Thuật toán Tong_1a:
B1: S 1/a ; N 0;
B2: N N+1;
B3: Nếu N > 100 thì chuyển đến B5;
B4: S S +1/(a + N); rồi quay lại B2;
B5: Đưa S ra màn hình, rồi kết thúc
GV: Yêu cầu HS xác định giá trị đầu, giá
trị cuối và lệnh cần lặp lại trong TT?
HS: -giá trị đầu: 1,
-giá trị cuối: 100
-lệnh cần lặp lại: S:= S + 1.0/(a+N)
GV: Hướng dẫn HS viết chương trình
HS: Thực hiện
GV: Yêu cầu HS nhắc lại thuật toán
Tong_1b giải quyết BT1?
HS:
Thuật toán Tong_1b:
2/ Lặp với số lần biết trước và câu lệnh For- do: (tt)
d/ Vận dụng:
VD1: (SGK tr44)
program Tong_1a;
uses crt;
var S: real;
a, N: integer;
begin clrscr;
write(‘Hay nhap gia tri a vao!’);
readln(a);
S:= 1.0/a;
for N:=1 to 100 do
S:= S + 1.0/(a+N);
write(‘Tong S la:’, S:8:4);
readln end
program Tong_1b;
uses crt;
var S: real;
a, N: integer;
begin clrscr;
write(‘Hay nhap gia tri a vao!’);
readln(a);
Trang 5GV: Yêu cầu HS xác định giá trị đầu, giá
trị cuối và lệnh cần lặp lại trong TT?
HS: Trả lời các yêu cầu của GV
GV: Hướng dẫn HS viết chương trình
HS: Thực hiện
Hoạt động 2:
-Nội dungHĐ: Rèn luyện kĩ năng vận
dụng câu lệnh For- do trong VD2
-Mục tiêu: Sử dụng đúng lệnh lặp For-do
để giải quyết một số bài toán đơn giản
-Các bước tiến hành:
GV: Gọi HS đọc nội dung VD2 (SGK)
HS: Đọc nội dung VD
GV: Yêu cầu HS xác định bài toán?
HS: Đứng tại chỗ trả lời
GV: Hướng dẫn HS viết thuật toán
HS: Làm việc theo nhóm, sau đó đưa ra
thuật toán
GV: Yêu cầu HS xác định giá trị đầu, giá
trị cuối và lệnh cần lặp lại trong BT?
HS: Trả lời các yêu câu của GV
GV: Hướng dẫn HS viết chương trình
HS: Thực hiện
VD2: (SGK tr45)
*XĐBT:
-Input: Nhập hai số nguyên dương M, N (M < N)
-Output: Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N
*Thuật toán:
*Viết chương trình:
program Vi_du_2;
uses crt;
var M, N, I: integer;
Tong: longint;
begin clrscr;
writeln(‘Nhap so M nho hon N’);
write(‘M = ’); readln(M);
write(‘N = ’); readln(N);
Tong:= 0;
for I:= M to N do
if (I mod 3 = 0) or (I mod 5 = 0) then Tong:= Tong + I;
writeln(‘Ket qua: ‘, Tong);
readln end
4.Tổng kết nội dung, đánh giá cuối bài:
-Câu lệnh For .to .do và câu lệnh for downto do
5.Dặn dò, kế hoạch học tập tiết sau:
-Xem học bài và làm bài 5a (SGK tr 51)
-Xem trước phần 3/ Lặp với số lần chưa biết trước và câu lệnh While-do.
IV NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
Trang 6
Ngày soạn: 24/11/2007
(Tiết PPCT:15) III TIẾN TRÌNH LÊN LỚP:
1 Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2 Kiểm tra bài cũ: Viết chương trình tính tổng S = 2 + 4 + 6 + + 100.
3 Bài giảng:
Hoạt động của thầy và trò Nội dung ghi bảng
Hoạt động 1:
-Nội dungHĐ: Lặp với số lần chưa biết
trước và câu lệnh While-do
-Mục tiêu: HS biết được cấu trúc chung
của câu lệnh While-do; Hiểu được ý nghĩa
của các thành phần trong lệnh; Biết được
sự thực hiện của máy khi gặp lệnh
do; Vẽ được sơ đồ thực hiện lệnh
While-do
-Các bước tiến hành:
GV: Nêu nội dung BT2 Cho HS viết TT
giải quyết BT2
HS: Đưa ra TT
GV: Giải thích thuật toán
HS: Chú ý nghe
GV: Yêu cầu HS nghiên cứu SGK và cho
biết cấu trúc chung của lệnh While-do?
HS: Đưa ra cấu trúc chung lệnh While-do
GV: Hãy cho biết ý nghĩa của lệnh
While-do?
HS: Trả lời câu hỏi
GV: Giải thích sự thực hiện của máy khi
gặp lệnh While-do
HS: Chú ý lắng nghe
GV: Vẽ được sơ đồ thực hiện lệnh
While-3/ Lặp với số lần chưa biết trước và câu lệnh While-do:
BT2:
Thuật toán Tong_2:
B1: Nhập a;
B2: S 1/a ; N 0;
B3: Nếu 1/(a + N) < 0,0001 thì chuyển đến B6;
B4: N N+1;
B5: S S +1/(a + N); rồi quay lại B3; B6: Đưa S ra màn hình, rồi kết thúc
*Cú pháp:
While <điều kiện> do <câu lệnh>;
trong đó : -Điều kiện là biểu thức logic;
-Câu lệnh là một lệnh đơn hay ghép;
*Thực hiện:
Đầu tiên vào kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện câu lệnh sau
từ khoá do sau đó quay lên kiểm tra điều
kiện, quá trình cứ lặp liên tiếp cho đến khi gặp điều kiện sai thì thoát khỏi vòng lặp while-do
*Sơ đồ:
Trang 7Hoạt động 2:
-Nội dungHĐ: Rèn luyện kĩ năng vận
dụng câu lệnh While-do
-Mục tiêu: Sử dụng đúng lệnh lặp For-do
để giải quyết một số bài toán đơn giản
-Các bước tiến hành:
VD1:
GV: Hướng dẫn HS vẽ sơ đồ TT Tong_2
HS: Lên bảng vẽ sơ đồ:
GV: Hướng dẫn HS viết chương trình
HS: Thực hiện
VD2:
GV: Nhắc lại TT Tìm ƯCLN(M,N) đã học
ở lớp 10
HS: Chú ý theo dõi
GV: Hướng dẫn HS vẽ sơ đồ TT
HS: Lên bảng vẽ sơ đồ:
GV: Hướng dẫn HS viết chương trình
HS: Thực hiện
*Vận dụng:
VD1: (SGK tr 46)
Chương trình tính Tong_2 như sau:
Program Tong_2;
uses crt;
var S: real;
a, N: integer;
begin
write(‘Hay nhap gia tri a vao!’);
readln(a);
S:= 1.0/a;
N:= 0;
while not(1/(a+N) < 0.0001) do begin
N := N+1;
S := S+1.0/(a+N);
end;
writeln(‘Tong S la: ‘, S:8:4);
readln
end.
VD2: (SGK tr47) Tìm ƯCLN(M,N)
*Thuật toán:
B1: Nhập M, N;
B2: Nếu M = N thì lấy giá trị chung làm ƯCLN rồi chuyển đến B5 B3: Nếu M > N thì M M –N
ngược lại N N-M;
B4: Quay lại B2;
B5: Đưa ra kết quả ƯCLN rồi kết thúc
*Chương trình tìn ƯCLN:
Program UCLN;
var M, N: integer;
begin
write(‘Hay nhap gia tri cho M và N:’); readln(M, N);
while M < > N do
if M >N then M:=M–N else N:=N–M;
writeln(‘UCLN = ‘, M);
readln
end.
1/(a+N)
< 0,0001
Đúng
Sai
Nhập a
S 1/a;
N 0
N N+1;
S S+1/(a+N)
Đưa ra S, Rồi kết thúc
Đưa ra M;
Kết thúc
Nhập M,N
M=N M>N N N - M
M M - N
Trang 84.Tổng kết nội dung, đánh giá cuối bài:
-Ý nghĩa của cấu trúc lặp có số lần chưa xác định
-Cấu trúc chung của lệnh While-do trong ngôn ngữ Pascal.
-Sơ đồ thực hiện của lệnh lặp do; Sự thực hiện của máy khi gặp lệnh While-do
5.Dặn dò, kế hoạch học tập tiết sau:
-Xem học bài và làm bài 5b, 6, 7, 8 (SGK tr 51)
-Xem trước Bài tập và thực hành 2: Cấu trúc rẽ nhánh và lặp.
IV NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM: