Tải bản đầy đủ (.doc) (43 trang)

giao an tin 9_ky II_2009

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (273.23 KB, 43 trang )

Tuần 20
Ngày dạy:
Tiết:39,40
Bài 10: ĐIỀU KHIỂN LẶP Repeat . . Until (LT)
A.MỤC TIÊU
 Học sinh nắm được cú pháp của lệnh Repeat..Until, biết cách vẽ lưu đồ và giải
một số bài toán bằng câu lệnh Repeat..Until
 Học sinh nắm dược dữ liệu kiểu Char
 Rèn luyện khả năng tư duy, sáng tạo của học sinh
B.TIẾN TRÌNH LÊN LỚP
1.Ổn đònh lớp
2.Kiểm tra bài cũ: Nhắc lại cấu trúc của điều khiển lặp For .. To/Downto .. Do
và làm bài tập sau: Nhập vào một số nguyên dương n. hãy tính tổng các số nguyên từ 1
đến n
3.Bài mới:
HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG
.Giáo viên đưa ra bài toán sau:
Nhập vào một số nguyên dương n. Hãy tính
tổng các số nguyên từ 1 đến n
Và đưa ra chương trình mẫu cho học sinh quan
sát
.Từ chương trình mẫu giáo viên phân tích để
đưa học sinh đưa ra được cấu trúc của vòng lặp
Repeat
Phân tích chương trình mẫu:
Đầu tiên i nhận giá trò 1, thân của Repeat ..
Until chứa 2 phát biểu (S := S + i và i:=i + 1),
giá trò i sẽ được cộng vào biến S, Sau đó i sẽ
tăng giá trò lên 1; tiếp đến câu lệnh lặp sẽ kiểm
tra điều kiện (i>n), nếu điều kiện này sai thì i
lại tiếp tục được cộng vào biến S, Sau đó i lại


tăng giá trò lên 1, Cứ như vậy giá trò cuối cùng
được cộng vào S sẽ là n, lúc này phát biểu
i:=i+1 sẽ làm cho i nhận giá trò n +1 -> Sai điều
kiện -> Câu lệnh lặp sẽ kết thúc
.Hs lắng nghe và nêu cấu trúc của vòng lặp
Repeat
.Giáo viên hướng dẫn để học sinh nêu cách
thức hoạt động của vòng lặp Repeat
I.Bài toán 1:
Nhập vào một số nguyên dương n. Hãy tính tổng các
số nguyên từ 1 đến n
1.Chương trình mẫu:
Program TinhTong;
Var n,i,S: Integer;
Begin
Write(‘Nhap vao so nguyen duong n = ‘); Readln(n);
i:=1; S:=0;
Repeat
S:=S+i;
i:=i + 1;
Until i>n;
Writeln(‘Ket qua tong la: ‘, S);
Readln;
End.
2. Cấu trúc:
Repeat
<Các câu lệnh>;
Until <Điều kiện>;
* Ý nghóa: Chừng nào điều kiện còn sai thì cứ thực
hiện các câu lệnh, cho đến khi Điều kiện đúng thi

không thực hiện các câu lệnh nữa mà chuyển sang
lệnh kế tiếp phía dưới
*Cách thức hoạt động của REPEAT:
Vì <Điều kiện> để kiểm tra kết thúc được đặt cuối
Đ
S
.Hs nêu cách thức hoạt động của vòng lặp
Repeat
.Giáo viên yêu cầu học sinh lên vẽ lưu đồ của
vòng lặp Repeat.
.Gs lên bảng vẽ lưu đồ của vòng lặp Repeat
.Gv đưa ra ví dụ tham khảo sau:
Chương trình nhập vàp số nguyên dương a. Hãy
kiểm tra xem a có phải là số nguyên tố hay
không?
.Giáo viên đưa ra cách giải bài toán
.Thông qua bài toán trên gv giải thích cho hs
cách khởi tạo biến
.Hs lắng nghe giáo viên trình bày
vòng lặp nên <Các câu lệnh> được thực hiện ít nhất
một lần. Thứ tự thực hiện của phát biểu Repeat ..
Until như sau:
Bước 1: Thực hiện <các câu lệnh> trong thân
Repeat .. Until
Bước 2: Khi thực hiện xong câu lệnh cuối cùng trong
thân Repeat .. Until, Rồi kiểm tra <Điều kiện>, nếu
<Điều kiện> đúng thì máy sẽ kết thúc vòng lặp và
thực hiện tiếp các câu lệnh sau phát biểu Repeat ..
Until, ngược lại, nếu <Điều kiện> sai thì quay lại
bước 1 để tiếp tục thực hiện một vòng lặp mới.

3.Lưu đồ:
Ví dụ tham khảo: Chương trình nhập vàp số nguyên
dương a. Hãy kiểm tra xem a có phải là số nguyên tố
hay không?
Program SoNguyenTo;
Var a,k: Integer;
Dung: boolean;
Begin
Write(‘Nhap a = ‘); Readln(a);
k:=2; dung:= False;
Repeat
If a mok k = 0 the dung := true
Else k:=k + 1;
Until dung= true;
If k<a then Writeln(a, ‘ khong la so nguyen to’)
Else Writeln(a, ‘ La so nguyen to’);
Readln;
End.
4.Khởi tạo biến: khi khai báo biến
Ví dụ:
Var k: Integer; dung: Boolean -> Máy sẽ cấp phát
một vùng bộ nhớ có kích thước tương ứng với kiểu
biến và tự động gán một giá trò mặc nhiên cho biến
Phát biểu trong Repeat .. Until
Điều kiện
.Gv đưa ra bài toán 2 có nội dung như sau:
Lãi suất tiết kiệm là x%/tháng, số tiền ban đầu
là a, Hỏi sau bao nhiêu tháng số tiền có được
không nhỏ hơn b
Yêu cầu học sinh suy nghó và viết chương

trình.
.Hs lên bảng viết chương trình, cả lớp làm bài
vào vở
.Gv nhận xét bài làm và rút ra sai lầm thường
mắc phải của hs
.Gv đưa ra bài toán 3 có nội dung như sau:
Viết chương trình mô phỏng máy tình đơn
giản.Nhập vào phép toán “+”, “-“, “*”, “/” và
hai số a, b. Thực hiện phép toán ấy cho đến khi
nào phép toán nhập vào là “$” thì kết thúc
chương trình.
.Gv đưa ra chương trình mẫu.
.Hs chép bài và theo dõi
đó, cụ thể: Biến k được cấp phát một ô nhớ có kích
thước 2 byte và được gán giá trò bằng 0, biến dung
được cấp phát một ô nhớ có kích thước 1 byte và được
gán giá trò bằng false
Để lưu trữ giá trò như mong muốn cho biến, chúng ta
có thể thực hiện việc khởi tạo lại giá trò cho biến, ví
dụ k:=2; dung := false;
II. Bài toán 2
Lãi suất tiết kiệm là x%/tháng, số tiền ban đầu là a,
Hỏi sau bao nhiêu tháng số tiền có được không nhỏ
hơn b
Giải:
Var a,b,d,x:Integer;
S:real;
Begin
Write(‘Nhập a: ‘); Readln(a);
Write(‘Nhập b: ‘); Readln(b);

Write(‘Nhập x: ‘); Readln(x);
d:=0;
S:= a;
Repeat
S:=S +a*x/100;
d:=d+1;
Until S>=b;
Write (‘Số thang la: ‘, d, ‘ So tien co duoc la: ‘, S);
Readln;
End.
III.Bài toán 3:
Viết chương trình mô phỏng máy tình đơn giản.Nhập
vào phép toán “+”, “-“, “*”, “/” và hai số a, b. Thực
hiện phép toán ấy cho đến khi nào phép toán nhập
vào là “$” thì kết thúc chương trình.
1.Chương trình mẫu:
Program May_tinh;
Var a,b: Integer;
PhepToan: Char;
Begin
Writeln(‘Chương trinh mo phong may tinh’);
Repeat
Write(‘Nhap vap phep toan: ‘); Readln(pheptoan);
Write(‘Nhap vap hai so: ‘); Readln(a,b);
Case PhepToan Of
‘+’ : Writeln(‘Tong = ‘, a + b);
.Thông qua bài toán trên gv giải thích cho hs
kiểu dữ liệu Char, bảng mã ASCII
.Hs im lặng lắng nghe gv trình bày.
.Từ bảng mã ASCII, gv yêu cầu hs rút ra mối

quan hệ giữ chữ in hoa và chữ thường.
.Hs rút ra nhận xét về mối quan hệ giữ in hoa
và in thường.
.Gv giới thiệu cho hs một số hàm liên quan đến
kí tự và có dẫn chứng minh hoa để học sinh
nắm rõ hơn, cho thêm ví dụ để học sinh tìm kết
qủa của hàm.
.Hs im lặng lắng nghe giáo viên trình bày và
thực hiện các yêu cầu của gv đề ra
‘-’ : Writeln(‘Hieu = ‘, a - b);
‘* ’ : Writeln(‘Tich = ‘, a * b);
‘+’ : If b<> 0 then Writeln(‘Tong = ‘, a / b);
End;
Until PhepToan = ‘$’;
End.
2.Dữ liệu Char
Mỗi giá trò kiểu Char chiếm 1 byte và chỉ biểu diễn
được một ký tự trong bảng mã ASCII, ví dụ:
Vò trí trong bảng mã ASCII Ký tự
. .
48 0
49 1
50 2
. .
65 A
66 B
. .
97 a
98 b
……………… ………………

Nhận xét: Từ bảng mả của các chữ cái ta suy ra:
Mã chữ thường = Mã chữ hoa tương ứng + 32 (1)
Mỗi kí tự sẽ nằm ở một vò trí xác đònh trong bảng mã,
ví dụ ổ vò trí thư 65 sẽ là ký tự A. Có tất cả 256 ký tự
được đánh số từ 0 đến 255. Như vậy có 256 giá trò
kiểu Char
Để biểu diễn ký tự ta co thể đëăt ký tự đó trong 2 dấu
nháy đơn, ví dụ ‘a’ (gọi là ký tự a), ‘B’ (gọi là ký tự
B), ‘:’ (gọi là ký tự :)
*Các hàm liên quan đến ký tự:
+Hàm PRED(ch): Cho ký tự đứng ngay trước ký tự ch
trong bảng mã. Ví dụ: Pred(‘B’) = ‘A’
+Hàm SUCC(ch): Cho ký tự đứng ngay sau ký tự ch
trong bảng mã. Ví vụ Succ(‘A’)= ‘B’
+Hàm UpCase(ch): Đổi ký tự ch thành chữ hoa. Ví dụ
UpCase(‘a’) = ‘A’, Upcase(‘b’) = ‘B’, Upcase(‘A’)=
‘A’.
+Hàm ORD(ch): Cho mã của ký tự ch. Ví dụ:
Ord(‘A’) = 65, Ord(‘a’)= 97.
+Hàm CHR(k): Đối số k nguyên, 0<=k <=255, cho ký
tự có mã bằng k.
Ví vụ:
.Gv đưa ra một bài toán, đổi chữ hoa sang chữ
thường, chữ thường ra chữ hoa để hs nắm rõ
hơn các hàm, yêu cầu hs suy nghó để tìm ra lời
giải.
.Hs suy nghó và giải bài toán.(nếu hs không giải
được gv gợi ý để hs làm).
.Gv gọi một hs lên bảng trình bày bài toán
.Hs lên bảng trình bày bài.

Gv rút lại nhhững nội dung cần nắm trong bài
và những sai lầm thường mắc phải của hs trong
quá trình viết chương trình.
Chr(65) = ‘A’, Chr(97)=’a’,
Chr(32) là ký tự trắng.
Chú ý: Turbo Pascal cho phép viết gọn Chr(k) thành
#k nếu k là hằng số. Ví dụ, hai lệnh sau cùng in lên
màn hình chữ A:
Write(#65);
Write(Chr(65));
-Trong TP không có hàm đổi chữ hoa ra chữ thường,
nhưng có thể làm việc này nhờ công thức (1) và hai
hàm Ord và Chr
Chữ thường := Chr(Ord(chữhoa)+ 32)
Ví dụ: Nhập một ký tự, nếu chữ hoa thì đổi ra chữ
thường , nếu là chữ thường thì đổi ra chữ hoa.
Var ch, ch1: Char;
Begin
Write(‘Nhap mot ky tu: ‘); Readln(ch);
If (ch>=’A’) and (ch<=’Z’) then
Ch1:= chr(ord(ch) +32)
Else
Ch1:= Upcase(ch);
Writeln(ch,’đã đổi ra: ‘, ch1);
Readln;
End.
3.Cũng cố, dặn dò
Bài 1/22SBT
Viết chương trình in ra bảng cửu chương:
Var i,j: Integer;

Begin
Writeln(‘BANG CUU CHUONG: ‘);
For i:=2 to 9 do
Begin
For j:=1 to 10 do
Write(i, ‘ x ’, j, ‘ = ’, i*j);
End;
Readln;
End.
Bài 2/22SBT.
Viết chương trình nhập vào n số nguyên dương (đảm bảo n nhập vào phải thoả mãn điều
kiện 2<=n<=20). Hãy tính tổng các số lẽ từ n số được nhập vào.
Bài giải:
Var n,i,T: Integer;
Begin
T:=0;
Repeat
Write(‘Nhap so n (2<=n<=20): ‘); Readln(n);
Until (n>=2) and (n<=20);
Repeat
T:= T + n
Until n mod 2 <>0;
Writeln(‘Tong cac so le la: ‘, T);
Readln;
End.
-Về nhà học bài và làm các bài tập còn lại, tiết sau thực hành.
4.Rút kinh nghiệm, bổ sung
Tuần 21
Ngày dạy:
Tiết:41,42

Bài 10: ĐIỀU KHIỂN LẶP Repeat . . Until (TH)
I. Mục đích yêu cầu:
- Nắm rõ hơn về cách lập trình khi sử dụng câu lệnh lặp Repeat _ Until.
II. Chuẩn bò:
Giáo viên: Chuẩn bò phòng máy.
Học sinh: Chuẩn bò giải các bài tập ở nhà.
III. Kiến thức trọng tâm:
- Sử dụng câu lệnh lặp Repeat _ Until để giải các bài tập.
IV. Phương pháp giảng dạy:
- Kiểm tra và thực hành.
V. Tiến trình bài giảng:
Hoạt động của thầy và trò Nội dung
Học sinh tự giải lại
bằng cách đánh vào máy
các bài tập trên lớp, đồng
thơi tự giải một số các bài
tập khác giáo viên cho

* Giải lại các bài bài tập ở các tiết trước
đã sửa trên lớp bằng cách kiểm tra tính
đúng đắn trên máy.

Bai 1: Tính tổng :
222
1
...
3
1
2
1

1
n
S ++++=
Program TT ;
Var i ,n :integer ;
S :real;
Begin
Write(‘nhap n:’);
Readln(n);
S:=0 ;
i:=1 ;
Repeat
S:=s +1/i*i ;
i:= i +1 ;
Until i>=n ;
Write(‘tong can tim la ’, s:8:2);
Readln;
Giáo viên : cho thêm
một số bài tập và Gợi ý giải
bài tập
Các bài tập cho thêm:
Bai 2: Viết chương trình
nhập vào 2 số x và y, yêu
cầu x phải khác y. Hãy tính
tích và trung bình cộng của 2
số đó
Bµi 3: TÝnh t#ng
A=1+1/2+1/3+…1/N
Liên hệ đến các bài tập
trên .

Học sinh tự giải và đánh
vào máy .Kiểm tra chương
trình đúng hay sai.
End.
Bai 2: Viết chương trình nhập vào 2 số x và
y, yêu cầu x phải khác y. Hãy tính tích và
trung bình cộng của 2 số đó
PROGRAM baitap2;
VAR
x,y,Tich,TBC: real;
BEGIN
repeat
writeln(' Cho x,y la 2 so thuc khac nhau.
Thay the x, y.');
write(' Cho x= '); readln(x);
write(' Cho y= '); readln(y);
if x=y then
begin
write(' Yeu cau x phai khac y! Lam
lai.');
readln;
end;
until x<>y;
Tich:=x*y;
TBC:=(x+y)/2;
if x>y then
begin
x:=tich;
y:=TBC;
end

else { x<y }
begin
x:=TBC;
y:=Tich;
end;
Writeln;
Writeln(' Sau khi tinh toan x= ',x:5:2);
write(' Sau khi tinh toan y= ',y:5:2);

Readln;END.
Bài 3: A=1+1/2+1/3+…1/N
Program baitap3;
Var
i,N:integer;
A: real;
Begin
Writeln(‘N=’); readln(N);
A:=0;i:=1;
Repeat
A:=A+1/i;
i:=i+1;
Until i>N
Writeln(‘tong=’,A:4:2);
End.
4. Củng cố :
- Qua từng bài tập cũng cố thêm về câu lệnh rẽ nhánh và các bước
thực hành.
5. Dặn dò:
- Giải các bài tập ở tiết trước.
- Chuẩn bò tiếp các bài tập để làm vào các tiết sau

Tuần 22-23
Ngày dạy:
Tiết:43,44,45,46
Bài 11: BÀI TẬP
I.MỤC TIÊU:
 Biết cách làm bài tập sử dụng câu lệnh Repeat….Until
 Luyện tập cho học sinh chạy chương trình trên máy và biết cách khắc phục lỗi
chương trình
 Hiểu được cách chạy chương trình và xử lý chương trình theo từng bước
II.CHUẨN BỊ:
* GV: Giáo án, phòng máy thực hành
* HS: sách vở, bài tập để thực hành
III.TỔ CHỨC CÁC HOẠT ĐỘNG DẠY HỌC
1.Nội dung
Bài 1/22SBT
Viết chương trình in ra bảng cửu chương:
Var i,j: Integer;
Begin
Writeln(‘BANG CUU CHUONG: ‘);
For i:=2 to 9 do
Begin
For j:=1 to 10 do
Write(i, ‘ x ’, j, ‘ = ’, i*j);
End;
Readln;
End.
Bài 2/22SBT.
Viết chương trình nhập vào n số nguyên dương (đảm bảo n nhập vào phải thoả mãn điều
kiện 2<=n<=20). Hãy tính tổng các số lẽ từ n số được nhập vào.
Bài giải:

Var n,i,T: Integer;
Begin
T:=0;
Repeat
Write(‘Nhap so n (2<=n<=20): ‘); Readln(n);
Until (n>=2) and (n<=20);
Repeat
T:= T + n
Until n mod 2 <>0;
Writeln(‘Tong cac so le la: ‘, T);
Readln;
End.
Bài 3/22SBT
Viết chương trình tính S = 0 + 2 + 4 + 6 + .. + n với n là số tự nhiên và n là số chẳn (Đảm
bảo phải nhập n đúng yêu cầu – nếu nhập sai chương trình sẽ yêu cầu nhập lại).
Bài giải:
Var n,i,S: Integer;
Begin
S:=0;
Repeat
Write(‘Nhap so n : ’); Readln(n);
Until (n<0) and (n mod 2 <>0);
For i:= 1 to n do S:= S+ 2*i;
Writeln(‘Tong tinh duoc la: ‘ S);
Readln;
End.
Bài 4/22 SBT
Nhập n so nguyên đảm bảo sao cho n dương. (Nêu nhập số n mà n<=0 thì chương trình
phải bắt nhập lại), rồi tính:
S1 = (1+2 + 3+ … + n)/n

S2 = căn bậc 2 của (1
2
+ 2
2
+ 3
2
+ … +n
2
)
Bài giải:
Program bai4;
Var i,P,Q,N: Integer;
S1; S2: Real;
Begin
Repeat
Write(‘Nhap N nguyen duong’); Readln(n);
Until N>0; {Đảm bảo N nguyên dương mới thoát được vòng lặp}
S1:=0; S2:=0; {Đạt các tổng ban đầu bằng không}
For i:=1 To n Do
Begin
P:=P+i;
Q:= Q + i*i;
End;
S1:= P/n; S2:= sqrt(Q);
Writeln(‘Ket qua S1 =’, S1, ‘ va S2 =’, S2);
Readln;
End.
Nhận xét: Các giá trò S1; S2 phải khai báo kiểu Real. Có thể thay vòng lặp Gor .. to bằng
vòng lặp Repeat .. Until.
Bài 5/23SBT

Nhập một số nguyên dương n.
Tình S =
Bài giải:
Var i,n: Integer;
S: Real;
Begin
Write(‘Nhap n = ‘); readln(n);
Repeat
S:=S* ((2*i – 1) /(2*i)) ;
I:= i + 1;
Until i>n;
Writeln(‘Tich tinh duoc la: ‘, S);
Readln;
End.
Bài 6/23 SBT
Viết chương trình in ra tất cả các nghiệm nguyên dương của phương trình: x
2
+ y
2
+ z
2
= n
với n nhập từ bàn phím
Bài 7/23 SBT
Số tự nhiên n gọi là Amstrong nếu nó bằng tổng lập phương các chữ số của mình. Ví dụ
153 = 1
3
+ 5
3
+ 3

3
. Viết chương trình tìm tất cả các số Amstrong có 3 chữ số.
Var
Begin
Repeat
Write(‘nhap so tu nhien gom 3 chu so’); Readln(n)
Until (n<99) and (n>1000);
For a:=1 to 9 do
For b:= 0 to 9 do
For c:=0 to 9 do
If n = a*a*a +b*b*b +c*c*c then Write(n,’la số Amstrong’);
Readln;
End.
3.Dặn dò :
-Về nhà học bài và thực hành
Tuần 24
Tiết:47,48
BÀI 12: ĐIỀU KHIỂN LẶP WHILE…DO (LT)
I. Mục đích yêu cầu:
- Học sinh nắm được câu lệnh While Do.
- Sử dụng câu lệnh này để giải một số bài tập .
II. Chuẩn bò:
Giáo viên: cần chuẩn bò các VD cho bài giảng.
Học sinh: Học bài cũ và chuẩn bài mới.
III. Kiến thức trọng tâm:
- Cú pháp câu lệnh lặp.
IV. Phương pháp giảng dạy:
- Diễn giải và nêu vấn đề.
V. Tiến trình bài giảng:
1. Ổn đònh lớp:

2. Kiểm tra bài cũ:
Nêu cấu trúc câu lệnh REPEAT…UNTIL ?
3. Nội dung bài mới:
Hoạt động của thầy và trò Nội dung
- Liên hệ bài toán thực tế
khác.
- Cách giải bài toán này ?
- Điều kiện dừng của bài
toán .
- Điều kiện bài toán lặp
lại.
- Đưa ra cấu trúc của câu
lệnh While và quá trình
hoạt động của nó
• Kiểm tra điều kiện
đúng thì câu lệnh sau
I. Bài toán: Một người có số tiền ban đầu
là a gởi tiết kiệm với lãi suất k=1% .Hỏi
sau bao nhiêu tháng người đó có số tiền
không nhỏ hơn b?
II. Ý tưởng giải thuật :
• Số tiền gởi đầu tháng là a.
• Số tiền cuối tháng sẽ là :a + a*k .Đó
chính là số tiền để gởi vào tiết kiệm
cho tháng sau.
• Quá trình gởi sẽ chấm dứt khi số tiền
thu được không nhỏ hơn b.
III. Câu lệnh lặp với điều kiện trước(câu
lệnh while):
Dạng lệnh:

WHILE <điều kiện> DO <câu lệnh>;
Quá trình thực hiện:
• B1:Tính giá trò của biểu thức điều
kiện.
DO sẽ thực hiện .Quay
về kiểm tra điều kiện
sau WHILE và quá trình
lặp đi lặp lại cho đến
khi điều kiện sai thì kết
thúc.
Hỏi HS: Hãy so sánh điểm
khác biệt giữa câu lệnh lặp
Repeat…Until và câu lệnh
lăp While…Do
HS: Trả lời câu hỏi
Gọi HS lên vẽ lưu đồ thể
hiện câu lệnh while …do dựa
vào nguyên tắc hoạt động ở
trên
- HS: Lên bảng vẽ lưu đồ
GV: Hoàn thiện câu trả lời
của HS
Gọi học sinh nhắc lại cấu
trúc một chương trình Pascal.
- Giảng giải cho HS biết ứng
với VD này thì chương trình
chạy như thế nào?
- Gọi HS lên bảng làm lại
Nhắc lại sơ lượt và điểm
một số sai soát thường mắc

phải của học sinh.
Gọi học sinh nhắc lại câu
lệnh ghép và câu lệnh lặp.
• B2:Nếu biểu thức đúng thì thực hiện
câu lênh sau DO và quay lại đk
• Ngược lại thì thoát khỏi câu lệnh.
Lưu đồ
IV. Chương trình:
Program t_kiệm;
Const k=0,01;
Var a,b: Real;
t :integer;
Begin
Write(‘số tiền gởi ban đầu ’);
Readln(a);
Write(‘số tiền muốn đạt tới ’);
Readln(b);
t=0;
while (a<b) do
Begin
a:=a+a*k;
t:=t+1;
End;
Write(‘Cần gởi ‘,t,’tháng’);
Readln;
End.
.
4.Củng cố:Nhắc lại cú pháp của câu lệnh lặp WHILE…DO…?
Ý nghóa của câu lệnh lặp WHILE…DO…?
5.Dặn dò: Học bài cũ.

Làm các bài tập trong SGK.
Tuần 25
Tiết:49-50
BÀI 12: ĐIỀU KHIỂN LẶP WHILE…DO (TH)
I./Mục đích yêu cầu:
-Học sinh ôn luyện các bài học cũ và kiểm chứng chúng trên máy ,đồng thời giúp học
sinh quen thuộc với các thao tác trên máy.
II./Kiến thức trọng tâm:
-Kỹ năng thao tác và lập trình chúng trên máy.
-Các bài tập về câu lệnh lặp dạng WHILE.
III./Phương pháp giảng dạy:
-Thực hành.
IV./Tiến trình bài giảng:
1.Ổn đònh lớp: Nắm sỉ số lớp và giới thiệu bài mới.
2. Kiểm tra bài cũ:
3. Nội dung bài mới
NỘI DUNG
HOẠT ĐỘNG CỦA
THẦY VÀ TRÒ
BÀI 1:Tìm số nguyên lớn nhất của hai số
nguyên dương m,n.
Bài làm:
PROGRAM UCLN;
Uses crt;
Var m,n:integer;
BEGIN
Clrscr;
Writeln(‘nhập hai số nguyên dương’);
Readln(m,n);
While m<>n do

If m>n then m:=m-n else n:=n-m;
Write(‘UCLN của chúng là ‘,m);
Readln;
END.
BÀI 2:Lập chương trình tính tổng các số đến khi
gặp số 0 thì dừng.
Program tổng;
Uses crt;
Var s,i:integer;
Ý tưởng giải thuật:
*m=n thì UCLN(m,n)=m.
*m>n thì
UCLN(m,n)=UCLN(m-n,n).
*m<n thì
UCLN(m,n)=UCLN(m,n-m).
*Từ ý tưởng giải thuật học
sinh tự viết ra thành một
chương trình và kiểm chứng
Begin
Clrscr;
Writeln(‘Nhập số’);readln(i);
S:=0:
While i<>0 do
Begin
s:=s+i;
Write(‘nhập số:’); readln(i);
End;
Write(‘tổng là ‘,s);
Readln;
End.

Bài 3: Ví dụ: Tính tổng A=1+1/2+1/3+…1/N
Program bai3;
Var
i,N:integer;
A: real;
Begin
A:=0;i:=1;
While i<=N Do
Begin
A:=A+1/N;
i:=i+1;
end;
writeln(‘tong=’,A:4:2);
End.
chương trình đó trên máy.
*GV theo dõi quá trình làm
bài thực hành của học sinh
từ đó hướng dẫn nếu học
sinh có gặp khó khăn.
*Sau khi kiểm tra và giảng
giải những sai phạm mà học
sinh hay gặp phải,giáo viên
cho đề bài tập thứ hai.
*Học sinh tự làm và kiểm
chứng bằng máy vi tính.
*Giáo viên theo dõi quá
trình làm bài của học sinh.
*Giáo viên chấm vở và bài
làm của một số học sinh.
4.Củng cố:

-Câu lệnh lặp dạng WHILE.
-Ý tưởng giải thuật của chương trình tìm UCLN của hai số nguyên dương.
5.Dặn dò:
- BTVN:Ôn tập lại lý thuyết While…Do và Repeat…until. Làm lại các bài tập
đã làm để hiểu sâu về lý thuyêt
Tuần 26
Tiết:51
BÀI TẬP
Bài 1
Viết chương trình nhập vào một số nguyên dương a. Kiểm tra xem a có phải là số nguyên
tồ hay không?
Program SoNguyenTo;
Var a,k: Integer;
dung: Boolean;
Begin
Write(‘Nhap a=’); Readln(a);
k:=2;
dung:= False;
While dung = false do
Begin
If a mod k = 0 then dung := true
Else k:= k+1;
End;
If k<a then Write(a, ‘Khong la so nguyen to’)
Else Write(a, ‘La so nguyen to’);
End.
Bài 2/23 SBT
Nhập số nguyên đảm bảo sao cho n dương (Nếu n<=0 thì chương trình bắt nhập lại), rồi
tính
A= 1/2

2
+ 1/4
2
+ 1/6
2
+ … + 1/2n
2
Bài giải:
Var A: Real;
i,n: Integer;
Begin
Repeat
Write(‘Nhap n =’); Readln(n);
Until n<=0;
While i<=n do
Begin
A:= A + 1/SQRT(2*i);
i:= i + 1;
end;
Write(‘Tong tinh duoc la: ‘, A);
Readln;
End.
Bài 3/23SBT
Nhập một số nguyên dương n. Tính S = 1.2.3 + 2.3.4 + 3.4.5 + … + n(n+1)(n+2)
Var i.n,S: Integer;

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×