Ngày soạn :8/3/2009 Ngày dạy : 8A : 8B : 8C : 8D : 8E : Tuần 26 Tiết 52: BàI thực hành 6: Sử dụng lệnh LẶP WHILE ... do A. Mục tiêu:
- Viết đợc chơng trình Pascal cĩ sử dụng vịng lặp While ... do- Biết sử dụng câu lệnh ghép. - Biết sử dụng câu lệnh ghép.
- Rèn kỹ năng đọc hiểu chơng trình cĩ sử dụng vịng lặp while ... do
B. Phơng pháp
1. Phơng pháp: Thuyết trình, nêu vấn đề, vấn đáp2. Phơng tiện: Máy tính, . 2. Phơng tiện: Máy tính, .
1. Giáo viên:
- Chuẩn bị một số thuật tốn và chơng trình .- Chuẩn bị máy tính,. - Chuẩn bị máy tính,.
2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trớc.
D. Tiến trình bài dạy:
I. ổn định lớp (1 phút)
II.Kiểm tra bài cũ (khơng kiểm tra) II. Giảng bài mới:
HĐ của GV và hs Nội dung
Gv: Viết chương trỡnh bài 2 lờn bảng.
Hs: Ghi bài vào vở.
Gv: Cho Hs lần lượt tỡm hiểu ý nghĩa của từng cõu lệnh
-Tỏc dụng: While n mod i <> 0 do i:= i + 1; Hs: Lần lượt trả lời. Gv: Chương trỡnh trờn cú tỏc dụng gỡ? Hs: Mục đớch là nhận dạng một số cú là số nguyờn tố hay khụng? Hs: S ơ S + x; Gv: làm sao để cĩ S mới = S cũ + x. Hs: S ơ 0 (b1)
Gv: qluật S ơ S + x; đến khi nào dừng?
Hs: Khi dem > n. phát hiện ra điều kiện lặp của While…do
Gv: Dựa vào hệ thống câu hỏi. Lần lợt hình thành thuật tốn.
Hs: Dựa vào thuật tốn trình bày ch- ơng trình hồn chỉnh.
Gv: Quan sát, chỉnh sửa từng câu lệnh Hs lên bảng trình bày.
Bài 2: Đọc và tìm hiểu ý nghĩa của từng câu
lệnh sau đây. Uses Crt;
Var n,i : integer; BEGIN
ClrScr;
Write(‘Nhap vao mot so nguyen: ‘);Readln(n);
If n<=1 Then Writeln(‘N khong la so nguyen to’);
Else Begin i:=2;
While n mod i <> 0 do i:= i + 1; If i = n Then Writeln(n,’ la so nguyen to’)
Else Writeln(n,’ khong la so nguyen to’);
End; Readln
END. S←S+x; dem←dem +1;
IV.Hớng dẫn về nhà (2 phút)
- Ghi nhớ cú pháp và ý nghĩa của câu lệnh lặp while ... do...,
Ngày soạn :8/3/2009 Ngày dạy : 8A : 8B : 8C : 8D : 8E : Tuần 27 Tiết 53: BÀI TẬP A. Mục tiêu:
- Viết đợc chơng trình Pascal cĩ sử dụng vịng lặp While ... do- Biết sử dụng câu lệnh ghép. - Biết sử dụng câu lệnh ghép.
- Rèn kỹ năng đọc hiểu chơng trình cĩ sử dụng vịng lặp while ... do
B. Phơng pháp
1. Phơng pháp: Thuyết trình, nêu vấn đề, vấn đáp2. Phơng tiện: Máy tính, . 2. Phơng tiện: Máy tính, .
C. Chuẩn bị:
1. Giáo viên:
- Chuẩn bị một số thuật tốn và chơng trình .- Chuẩn bị máy tính,. - Chuẩn bị máy tính,.
2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trớc.
D. Tiến trình bài dạy:
Bài 1.Sự khác biệt giữa câu lệnh lặp với số lần lặp cho trớc và câu lệnh lặp với số lần lặp cha biết trớc là ở các điểm sau đây:
a) Nh tên gọi của nĩ, câu lệnh lặp với số lần lặp cho trớc chỉ thị cho máy tính thực hiện một lệnh hoặc một nhĩm lệnh với số lần đã đợc xác định từ trớc, cịn với câu lệnh lặp với số lần lặp cha biết trớc thì số lần lặp cha đợc xác định trớc.
b) Trong câu lệnh lặp với số lần cho trớc, điều kiện là giá trị của một biến đếm cĩ giá trị nguyên đã đạt đợc giá trị lớn nhất hay cha, cịn trong câu lệnh lặp với số lần lặp cha biết trớc, điều kiện tổng quát hơn nhiều, cĩ thể là kiểm tra một giá trị của một số thực, cũng cĩ thể là một điều kiện tổng quát khác, ví dụ nh một số cĩ chia hết cho 3 hay khơng,...
c) Trong câu lệnh lặp với số lần cho trớc, câu lệnh đợc thực hiện ít nhất một lần, sau đĩ kiểm tra điều kiện. Trong câu lệnh lặp với số lần cha xác định tr- ớc, trớc hết điều kiện đợc kiểm tra. Nếu điều kiện đợc thoả mãn, câu lệnh
mới đợc thực hiện. Do đĩ cĩ thể cĩ trờng hợp câu lệnh hồn tồn khơng đợc thực hiện.
Bài 2.Mơ tả thuật tốn:
Bớc 1. Đặt i = R (i là bán kính đờng trịn sẽ vẽ).
Bớc 2. Nếu i > 1.5, vẽ đờng trịn bán kính i; ngợc lại, chuyển đến bớc 4. Giáo án tin học khối 8 Trang 117 Ngơn ngữ lập trình
Bớc 3. i ←i − 1/2 và quay lại bớc 2.
Bớc 4. Kết thúc thuật tốn.
Bài 3.a) Thuật tốn 1: 10 vịng lặp đợc thực hiện. Khi kết thúc thuật tốn S = 5.0. Đoạn chơng trình Pascal tơng ứng:
S:=10; x:=0.5;
while S>5.2 do S:=S-x; writeln(S);
b) Thuật tốn 2: Khơng vịng lặp nào đợc thực hiện vì ngay từ đầu điều kiện đã khơng đợc thỏa mãn nên các bớc 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật tốn. Đoạn chơng trình Pascal tơng ứng:
S:=10; n:=0; while S<10 do
begin n:=n+3; S:=S-n end; writeln(S);
Nhận xét: Trong các thuật tốn và chơng trình trên, điều kiện đợc kiểm tra trớc khi các bớc lặp đợc thực hiện. Do đĩ nếu điều kiện khơng đợc thỏa mãn ngay từ đầu, các bớc lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp
while..do.
Bài 4.a) Chơng trình thực hiện 5 vịng lặp. b) Vịng lặp trong chơng trình đợc thực hiện vơ tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luơn luơn đợc thỏa mãn.
Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải đợc thay đổi để sớm hay muộn chuyển sang trạng thái khơng thỏa mãn. Khi đĩ vịng lặp mới đợc kết thúc sau hữu hạn bớc. Để làm đợc điều này, câu lệnh trong câu lệnh lặp
while..do thờng là câu lệnh ghép.
Bài 5.a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khĩa begin và end trớc và sau các lệnh n:=n+1; S:=S+n, do đĩ vịng lặp trở thành vơ tận.
Bài 6.Viết thuật tốn và chơng trình Pascal cĩ câu lệnh lặp với số lần khơng xác định để tính luỹ thừa bậc n của x (tức xn), với n là số tự nhiên và x là số thực đợc nhập vào từ bàn phím. Hãy so sánh với thuật tốn trong bài tập 8, bài 7.
Thuật tốn:
Bớc 1. Đọc các giá trị x và n.
Bớc 2. A ← 1, k ← 1.
Bớc 3. Nếu k >n, chuyển xuống bớc 5.
Bớc 4. A = A.x, k ←k + 1 và quay lại bớc 3.
Bớc 5. Thơng báo kết quả là A và kết thúc thuật tốn. Chơng trình Pascal: var n,k: integer; A, LT: real; begin write(‘Nhap so A= ‘); readln(A); write(‘Nhap so n= ‘); readln(n); LT:=1; k:=1;
end.
Bài 7.Tính tích của N số tự nhiên đầu tiên với số lần lặp khơng xác định (với N là số tự nhiên đợc nhập vào từ bàn phím).
Bớc 1. Đọc giá trị N. Bớc 2. T ← 1, k ← 1.
Bớc 3. Nếu k ≤N, T = T.k; ngợc lại, chuyển xuống bớc 5.
Bớc 4. k ←k + 1 và quay lại bớc 3.
Bớc 5. Kết thúc thuật tốn.
Bài 8.Thuật tốn:
Bớc 1. Đọc giá trị n. Bớc 2. S ← 0, i ← 2.
Bớc 3. Nếu i >n − 1, chuyển xuống bớc 5.
Bớc 4. Nếu n chia hết cho i, S ←S + i, i ←i + 1 và quay lại bớc 3.
Bớc 5. Ghi giá trị S và kết thúc thuật tốn. Chơng trình cĩ thể nh sau:
var n,i,S: integer;
begin
write('Cho so tu nhien n= '); readln(n); i:=2; S:=0;
while i<=n-1 do
begin
if (n mod i)=0 then S:=S+i; i:=i+1;
end;
write('Tong cac uoc so thuc su cua ',n,' la: ',S); readln;
end.
Bài 9.Chơng trình cĩ thể nh sau:
Uses CRT;
Var A, sum: real;
i: integer; Begin Write('cho so A: '); readln(A); i:=1; sum:= 0; While (sum<=A) do Begin sum:= sum+1/i; i:= i+1; end;
Write('Gia tri N bang ', i:6); Readln;
End.
Ngày soạn :8/3/2009 Ngày dạy : 8A : 8B : 8C : 8D : 8E : Tuần 27 Tiết 54: BÀI TẬP A. Mục tiêu:
- Viết đợc chơng trình Pascal cĩ sử dụng vịng lặp While ... do- Biết sử dụng câu lệnh ghép. - Biết sử dụng câu lệnh ghép.
- Rèn kỹ năng đọc hiểu chơng trình cĩ sử dụng vịng lặp while ... do
B. Phơng pháp
1. Phơng pháp: Thuyết trình, nêu vấn đề, vấn đáp2. Phơng tiện: Máy tính, . 2. Phơng tiện: Máy tính, .
C. Chuẩn bị:
1. Giáo viên:
- Chuẩn bị một số thuật tốn và chơng trình .- Chuẩn bị máy tính,. - Chuẩn bị máy tính,.
2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trớc.
D. Tiến trình bài dạy:
Bài 1: Lập trình tính tổng dùng lệnh lặp While ...do. Trong đú n là số tự nhiên đợc nhập từ bàn phím. 1 1 1 1 ... ( ) 2 3 A n Z n = + + + ∈ GIẢI Program tinhA; Uses CRT; Var i, n: integer; tong: real; BEGIN Clrscr;
write('cho so tu nhien n: '); Readln(n); tong:=0; i:=1;
while i<= n do Begin
tong:= tong+ 1/i; i: = i+1;
End;
writeln(' Tong can tim la: ', tong:12:6); Readln;
END.
Giải
Program timUCLN; Uses Crt;
Var a,b,r,a1,b1: integer; BEGIN
ClrScr;
Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a; Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b; While a mod b <> 0 do
Begin
r:= a mod b;a: = b; b: = r; a: = b; b: = r; End;
Write (‘ Vay UCLN(‘, a1, ‘;’,b1,’)=’,b:2); Readln
END.
Bài 3: Viết chương trỡnh tỡm BCNN(a,b). Biết a, b được nhập từ bàn phớm. a,b∈Z
Giải
Program timBCNN; Uses Crt;
Var a,b,n,min,max,max1: integer; BEGIN
ClrScr;
Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a; Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b; If a>b then
Begin max: = a; min:=b; End Else Begin max:=b; min:= a; End; n:= 2; max1:=max;
While max mod min <> 0 Do Begin
max:= max1*n; inc(n); {n:=n+1} End;
Write (‘ Vay BCNN(‘, a, ‘;’,b,’)=’,max:2); Readln
END.
Ngày soạn :10/3/2009
Ngày dạy : 8A : 8B :
8C : 8D : 8E :
Tuần 28 Tiết 55:
KIểm tra 1 tiết
Trờng THCS Kim Lũ
Đề kiểm tra 45 phút học kỳ 2(Khĩi 8) đề 1
Họ và tên học sinh:... Lớp:...
Phần I(Trắc nghiệm)-khoanh trũn chữ cỏi đứng trước kết quả đỳng
Cõu 1 : Phỏt biểu nào sau đõy là đỳng ? (0,5 đ)
A. Cấu trỳc lặp được sử dụng để chỉ thị cho mỏy tớnh thực hiện lặp lại một vài hoạt động nào đú cho đến khi một điều kiện nào đú được thoả mĩn.
B. Chỉ ngụn ngữ lập trỡnh Pascal mới cú cỏc cõu lệnh lặp để thể hiện cấu trỳc lặp. C. Ngụn ngữ Pascal thể hiện cấu trỳc lặp với số lần lặp cho trước bằng cõu lệnh
for…do
Cõu 2: Lệnh lặp nào sau đõy là đỳng? (0,5 đ)
A. For <biến đếm>= <giỏ trị đầu> to <giỏ trị cuụớ> do <cõu lệnh>.
B. For <biến đếm>:= <giỏ trị đầu> to <giỏ trị cuụớ> do <cõu lệnh>.
C. For <biến đếm>:= <giỏ trị cuụớ> downto <giỏ trị đầu> do <cõu lệnh>. D. For <biến đếm>: <giỏ trị cuụớ> downto <giỏ trị đầu> do <cõu lệnh>. Cõu 3: Cõu lệnh pascal nào sau đõy là hợp lệ? (0,5 đ)
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’);
Cõu 4: Pascal sử dụng cõu lệnh lặp nào sau đõy để lặp với số lần chưa biết trước? (0,5
đ)
A. For…do;
B. While…do;
C. If..then;
D. If…then…else;
Cõu 5: Cõu lệnh lặp while…do cú dạng đỳng là: (0,5 đ) A. While <điều kiện> <cõu lệnh> do;
B. While <cõu lệnh> <cõu lệnh> do; C. While do <điều kiện> <cõu lệnh>;
D. While <điều kiện> do <cõu lệnh>;
Cõu 6 : Em được học vẽ hỡnh với phần mềm nào? (0,5 đ) A. Pascal;
B. Geogebra;
C. Mario;
D. Finger Break out;
Cõu 7:Chương trỡnh pascal sau sẽ in ra màn hỡnh nội dung gỡ? (1,5 đ)
Program vidu; Var i: integer; BEGIN
For i:=1 to 10 do
Writeln(‘Day la lan lap thu ‘,i); Readln;
END.
A. 1 cõu “Day la lan lap thu i”;B. 1 cõu “Day la lan lap thu ‘, i”; B. 1 cõu “Day la lan lap thu ‘, i”; C. 10 “Day la lan lap thu ‘, i”;