Chương trình ôn tập học kỳ II Tin học 8 - Năm học 2009-2010 - Phạm Tấn Phát

Chương trình ôn tập học kỳ II Tin học 8 - Năm học 2009-2010 - Phạm Tấn Phát

A./ Nội dung các bài học cần xem:

 Bài 7: Câu lệnh lặp

 Bài TH5: Sử dụng lệnh lặp For do

 Bài 8: Lặp với số lần lặp chưa biết trước

 Bài TH6: Sử dụng lệnh lặp While do

 Bài 9: Làm việc với dãy số

 Bài TH7: Xử lý dãy số trong chương trình

 Xem lại nội dung HK1:

+ Các kiểu dữ liệu

+ Cách khai báo biến, khởi tạo và sử dụng biến, phép gán giá trị cho biến

+ Cấu trúc chung của một chương trình

+ Các phép toán: +, -, *, / , <>, >=, <=,>, <, mod,="" div,="" and,="" or="" và="" biểu="" thức="" điều="">

+ Câu lệnh điều kiện if then else .

 

doc 8 trang Người đăng tranhiep1403 Lượt xem 1141Lượt tải 1 Download
Bạn đang xem tài liệu "Chương trình ôn tập học kỳ II Tin học 8 - Năm học 2009-2010 - Phạm Tấn Phát", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG TRÌNH ÔN TẬP HỌC KỲ II TIN HỌC 8
GV soạn: Phạm Tấn Phát
Ngày soạn: 10/04/2009, cập nhật lại lúc 19/04/2010
A./ Nội dung các bài học cần xem:
Bài 7: Câu lệnh lặp
Bài TH5: Sử dụng lệnh lặp For  do
Bài 8: Lặp với số lần lặp chưa biết trước
Bài TH6: Sử dụng lệnh lặp While do
Bài 9: Làm việc với dãy số
Bài TH7: Xử lý dãy số trong chương trình
Xem lại nội dung HK1:
+ Các kiểu dữ liệu
+ Cách khai báo biến, khởi tạo và sử dụng biến, phép gán giá trị cho biến
+ Cấu trúc chung của một chương trình
+ Các phép toán: +, -, *, / , , >=, , <, mod, div, and, or và biểu thức điều kiện
+ Câu lệnh điều kiện if  then  else .
B./ Một số gợi ý ôn tập (Đây không phải là đề thi học kỳ II)
Vấn đề 1: Các kiểu dữ liệu và khai báo biến:
Kiểu
Phạm vi
Cách khai báo
Phép gán
Byte
(Số nguyên)
0à255
var diem:Byte;
var thang:Byte;
readln(diem); diem:=5;
readln(thang); thang:=12;
Integer
(Số nguyên)
-215 à 215-1
(-32768à32767)
var a:integer;
var so_luong:integer;
var i:integer;
var tong:integer;
readln(a); a:=28;
readln(so_luong); so_luong:= 4096;
i:=1;i:=i+1; tong:=0;
tong:=tong + i;
Real
(Số thực)
-2,9x10-39 à1,7x1038
var diemtb:real;
var dvan,dtoan,dly:real;
readln(dvan);
readln(dtoan);
readln(dly);
diemtb:=(dvan*2+dtoan*2+dly)/5;
Char
(Một ký tự)
‘A’à’Z’
Var kytu:char;
readln(kytu);
kytu:= ‘Y’;
String
(Xâu ký tự)
‘abc156’
‘Hoang Van Thu’
var hoten:string;
readln(hoten);
Hoten:=’Hoang Van Thu’;
array
(Dãy/mảng)
Byte, Integer, Real,String,
var a:array[1..10]of byte;
var diem:array[1..50] of real;
For i:=1 to 10 to readln(a[i]);
For i:=1 to 50 do readln(diem[i]);
A[5]:=10;
Max:=A[i];
Max:=diem[i];
Min:=diem[i];
Lưu ý: 
+ Biến dùng để lưu giữ giá trị trong khi thực hiện chương trình, kết thúc chương trình biến đó sẽ bị xóa đi và giải phóng vùng nhớ được cấp phát.
+ Trong quá trình thực hiện chương trình ta muốn thay đổi giá trị của biến bằng câu lệnh gán, còn có câu lệnh read(dstenbien) hoặc readln(dstenbien) hai câu lệnh này tương tác giữa người dùng và máy và kết thúc việc nhập giá trị cho biến ta phải nhấn phím Enter.
+ Câu lệnh Writeln(‘Cau thong bao ra man hinh’,tenbien) à in ra màn hình câu thông báo và giá trị của tenbien sau khi tính toán xong.
Vấn đề 2: Cấu trúc chung của một chương trình
Program Ten_chuong_trinh; {khai bao ten chuong trinh}
Uses crt; {khai bao thu vien lien quan den lenh xoa man hinh clrscr}
Phần thân chương trình
+ Nơi nhập giá trị cho biến
+ Xử lý và tính toán
+ In kết quả
Var . {khai bao bien}
Begin
	Clrscr; {lenh xoa man hinh}	
	Readln {lenh dung man hinh de xem ket qua cho nhan Enter}
End.
Lưu ý: Trong chương trình có thể sử dụng nhiều câu lệnh begin  end; để thi hành nhiều lệnh lồng nhau, thường sử dụng trong các câu lệnh 
if  then beginend else begin end; 
Hoặc for  do begin . end;
Hoặc while  do begin end;
Vấn đề 3: Biểu thức điều kiện
+ Biểu thức điều kiện là một biểu thức so sánh và cho kết quả là đúng hoặc sai tương ứng như một mệnh đề trong toán học.
+ VD:
Var a,b:integer;Begin	If a > b then a:=a-b else b:=b-a; end.
Var a,b:integer;
Begin	
If a mod b =0 then write(‘a chia cho b du la 0’) 
else write(‘a chia cho b du khac 0’);
end.
Var a,b:integer;
Begin	
If a div b =5 then write(‘a chia cho b duoc thung la 5’) 
else write(‘a chia cho b duoc thuong khac5’);
end.
Var a,b,c:real;
Begin	
If (a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b) then 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) la bo ba Pitago.’)
else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la bo ba Pitago.’)
end.
Var a,b,c:real;
Begin	
If (a+b>c) and (b+c>a) and (c+a>b) then 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac.’)
else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac.’)
end.
Vấn đề 4: Câu lệnh điều kiện if  then  else ..
+ Cú pháp:
If dieu_kien then cau_lenh;
If dieu_kien then cau_lenh_dung else cau_lenh_sai;
+ Ví dụ:
1./ VD1: Viết chương trình nhập vào một số và thông báo lên màn hình số đó là chẵn hay lẽ?
Program VD1;
Uses crt;
Var a:integer;
Begin
	Clrscr;
	Writeln(‘Nhap mot so nguyen:’);Readln(a);
	If (a mod 2=0) then Writeln(‘So ‘, a,’ la so chan!’)
	Else Writeln(‘So ‘, a,’ la so le!’);
Readln
End.
2./ VD2: Viết chương trình nhập vào ba số (a,b,c) và kiểm tra ba số này có là độ dài ba cạnh tam giác hay không ?
Program VD2;
Uses crt;
Var a,b,c:Real;
Begin
	Clrscr;
	Writeln(‘Nhap so a:’);Readln(a);
Writeln(‘Nhap so b:’);Readln(b);
Writeln(‘Nhap so c:’);Readln(c);
If (a>=0) and (b>=0) and (c>=0) then
If (a+b>c) and (b+c>a) and (c+a>b) then 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac.’)
else 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac.’)
	else	Writeln(‘Cac so tren muon la do dai ba canh tam giac phai la so duong’);
	Readln
End.
3./ VD3: Viết chương trình nhập vào ba số, kiểm tra ba số đó có là độ dài ba cạnh của một tam giác vuông hay không ?
Program VD3;
Uses crt;
Var a,b,c:Real;
Begin
	Clrscr;
	Writeln(‘Nhap so a:’);Readln(a);
Writeln(‘Nhap so b:’);Readln(b);
Writeln(‘Nhap so c:’);Readln(c);
If (a>=0) and (b>=0) and (c>=0) then
If (a*a+b*b=c*c) and (b*b+c*c=a*a) and (c*c+a*a=b*b) then 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac vuong.’)
else 
write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac vuong.’)
	else	Writeln(‘Cac so tren muon la do dai ba canh tam giac phai la so duong’);
	Readln
End.
Vấn đề 5: Câu lệnh lặp For do (trọng tâm của chương trình)
- Cú pháp: 
For := to do ;
Trong đó:
+ Biến đếm, giá trị đầu, giá trị cuối là các số nguyên
+ Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối
+ Câu lệnh có thể là câu lệnh đơn giản (một câu lệnh) hoặc câu lệnh ghép (từ hai câu lệnh ..)
+ Mỗi lần lặp lại câu lệnh biến đếm sẽ tăng lên một đơn vị, cho đến khi vừa lớn hơn giá trị cuối thì dừng, số lần lặp lại bằng giá trị cuối-giá trị đầu +1
- Một số ví dụ minh họa:
+ VD1: Hãy cho biết các câu lệnh sau đúng hay sai, nếu sai sửa lại cho đúng ?
	a./ Var i: real; Begin For i:=1 to 10 do write(i,’ ‘); readln end.
	Trả lời:
b./Var i: byte; Begin For i:=1 to 257 do write(i,’ ‘); readln end.
	Trả lời:+
	c./ Var i: integer; Begin For i:=1 to 32767 do write(i,’ ‘); readln end.
	Trả lời:
d./ Var i: integer; Begin For i:=1 to 10.5 do write(i,’ ‘); readln end.
Trả lời:
e./ Var i: integer; Begin For i:=1 to 10 do begin write(i,’ ‘); S:=S+i; readln end.
Trả lời:
f./ Var k: integer; Begin For k:=10 to 10 do write(i,’ ‘); readln end.
Trả lời:
g./ Var k: integer; Begin For k:=10 to 9 do write(i,’ ‘); readln end.
Trả lời:
+ VD2: Hãy tính số lần lặp của câu lệnh sau ?
a./ S:=0; For i:=1 to 15 do S:=S+i;
Trả lời:15-1+1=15.
b./ S:=0; For j:=5 to 11 do if (j mod 2=0) then S:=S+j;
Trả lời:11-5+1=7.
c./ S:=0; For k:=31 to 49 do if (k mod 20) then S:=S+k;
Trả lời:49-31+1=19.
d./ S:=0; For m:=9 to 11 do if (m>=10) then S:=S+m;
Trả lời:11-9=3.
e./ S:=0; For n:=9 to1 do if (n>=4) then S:=S+n;
Trả lời:0.
f./ S:=0; For n:=9 to9 do if (n>=5) then S:=S+n;
Trả lời:9-9+1=1.
+ VD3: Chạy từng bước đoán kết quả và trả lời giá trị các biến được yêu cầu ?
a./ Var k,s: integer; Begin s:=0; For k:=13 to 19 do s:=s+k; readln end.
Trả lời: S=112..;k=19
b./ Var i: integer; Begin s:=0; For i:=2 to 7 do s:=s*i; readln end.
Trả lời: S=0..;i=7
c./ Var i: integer; Begin s:=1; For i:=2 to 5 do s:=s*i; readln end.
Trả lời: S=120..;i=5
d./ Var i: integer; Begin s:=0; For i:=1 to 5 do s:=s+i*i; readln end.
Trả lời: S=55..;i=5
e./ Var i: integer; Begin s:=0; For i:=4 to 5 do s:=s+1/i; readln end.
Trả lời: S=0,45..;i=5
f./ Var i: integer; Begin s:=0; For i:=5 to 8do s:=s+1/i*(i+2); readln end.
Trả lời: S=1637/420..;i=8
+ VD4: Hãy cho biết đoạn chương trình sau làm nhiệm vụ gì ?
a./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 2=0) then s:=s+i*i; readln end.
Trả lời: S=..;i=Kết luận:
b./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 20) then s:=s+i*i; readln end.
Trả lời: S=..;i=Kết luận:
c./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 2=0) then s:=s+i; readln end.
Trả lời: S=..;i=Kết luận:
d./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 20) then s:=s+i; readln end.
Trả lời: S=..;i=Kết luận:
+ VD5: Viết chương trình dùng câu lệnh For do và if  then.
a./ Hãy viết đoạn chương trình xử lý tìm ra các số nguyên từ 1 đến 100 mà số đó phải thỏa mãn hai điều kiện là vừa chia hết cho 5 và vừa chia hết cho 7 ? 
b./ Hãy viết đoạn chương trình tìm xem có bao nhiêu bộ số (a,b,c) là bộ 3 Pitago từ 1 đến 100 với a,b,c nguyên dương và a<=b<=c
Vấn đề 6: Câu lệnh lặp While  do
- Cú pháp:
	While do ;
	Trong đó:
	+ Điều kiện là một biểu thức so sánh, tương tự điều kiện câu lệnh if then .
	+ Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép begin.end;
+ Trong khi điều kiện còn đúng thì thực hiện câu lệnh, còn điều kiện sai thì thoát khỏi câu lệnh lặp while và thực hiện câu lệnh tiếp theo sau câu lệnh while.
- Một số ví dụ minh họa:
+ VD1: Tính tổng các phần tử từ 1 đến 100
Program Tong;
Uses crt;
Var S,i:integer;
Begin
Clrscr;
S:=0; i:=1;
While i<=100 do
Begin
 	 S:=S+i;
 	 i:=i+1;
end;
Readln
End.
+ VD2: Tính tổng các phần tử chẵn từ 1 đến 100
Program Tong_chan;
Uses crt;
Var Sc ,i:integer;
Begin
Clrscr;
Sc:=0; i:=1;
While i<=100 do
Begin
	If (i mod 2 =0) then
 	 	Sc:=Sc+i;
 	i:=i+1;
end;
Writeln(‘Tong cac phan tu chan tu 1 den 100 la: ‘,Sc);
Readln End.
+ VD3: Tính tổng các phần tử lẻ từ 1 đến 100
Program Tong_le;
Uses crt;
Var Sle ,i:integer;
Begin
Clrscr;
Sle:=0; i:=1;
While i<=100 do
Begin
	If (i mod 2 0) then
 	 	Sle:=Sle+i;
 	i:=i+1;
end;
Writeln(‘Tong cac phan tu le tu 1 den 100 la: ‘,Sle);
Readln
End.
+ VD4: In ra các ước của một số nguyên nhập từ bàn phím
{Cau lenh in ra cac uoc bang Fordo}
Program Uocso;
Uses crt;
Var i,n:integer;
Begin
Clrscr;
Write(‘Nhập một số nguyên’);Readln(n);
i:=1;
Write(‘Cac uoc cua ‘ ,n,‘ la: ‘);
For i:=1 to n do
if (n mod i)=0 then write(i,’ ‘);
Readln
End.
Program Uocso;
Uses crt;
Var i,n:integer;
Begin
Clrscr;
Write(‘Nhập một số nguyên’);Readln(n);
i:=1;
Write(‘Cac uoc cua ‘ ,n,‘ la: ‘);
While ( i<=n) do
begin
if (n mod i)=0 then write(i,’ ‘);
i:=i+1;
end;
Readln
End.
+ VD5: Tính tổng các ước của một số nguyên nhập từ bàn phím
Program Tonguoc;
Uses crt; 
Var S,n,i:integer;
Begin
 clrscr;
 S:=0; i:=1;
 Write(‘Nhap so nguyen n’);readln(n);
 while i<=n do
 begin if n mod i=0 then S:= S+ i; i:= i+1; end;
Writeln(‘Tong cac uoc cua ’,n,’ la ’,S);
Readln
End.
+ VD6: Nhập vào một số kiểm tra xem số đó có là số hoàn chỉnh không
 Program Sohoanchinh;
Uses crt; 
Var S,n,i:integer;
Begin
 clrscr;
 S:=0; i:=1;
 Write(‘Nhap so nguyen n’);readln(n);
 while i<=n do
 begin if n mod i=0 then S:= S+ i; i:= i+1; end;
Writeln(‘Tong cac uoc cua ’,n,’ la ’,S); 
if S=2*n then Writeln(‘So ‘,n,’ la so hoan chinh’) 
else Writeln(‘So ‘,n,’ khong la so hoan chinh’); 
Readln
End.
+ VD7: In ra các số hoàn chỉnh từ 1 đến 1000 (hs tự làm)
 Program Sohoanchinh;
Uses crt; 
Var S,n,i:integer;
Begin
 clrscr;
 S:=0; i:=1;
 Write(‘Nhap so nguyen n’);readln(n);
For n:=1 to 1000 do
Begin 
i:=1;S:=0;
Writeln(‘Cac so hoan chinh tu 1 den 1000 la: ‘);
while i<=n do
 begin if n mod i=0 then S:= S+ i; i:= i+1; end;
if S=2*n then Writeln(n,’ ‘) ;
end;
Readln
End.
Vấn đề 7: Làm việc với dãy số, xử lý dãy số trong chương trình.
- Cú pháp:
	Var Tenmang:array[chisodau..chisocuoi] of Kieudulieu
Ví dụ cụ thể: Var a: array[1..10] of integer;
- Một số ví dụ: (Đọc tìm hiểu chương trình và làm phần bài tập phía sau)
+ VD1: Nhập các phần tử vào một dãy
Program VD1;
Uses crt;
Var a:array[1..10] of integer;
Begin
	Clrscr;
	For i:=1 to 10 do begin write(‘phan tu thu ‘,i); readln(a[i]); end;
Readln
End.
+ VD2: Xuất các phần tử từ dãy đưa ra màn hình
Program VD2;
Uses crt;
Var a:array[1..10] of integer;
Begin
	Clrscr;
	Write(‘Cac phan tu cua mang: ‘);
	For i:=1 to 10 do write(a[i],’ ‘); 
Readln
End.
+ VD3: Tìm phần tử lớn nhất của dãy
Program VD3;
Uses crt;
Var a:array[1..10] of integer;
 max:integer;
Begin
	Clrscr;
	max:=a[1];
	For i:=1 to 10 do if a[i]>max then max:=a[i]; 
Write(‘Phan tu lon nhat cua mang: ‘,max); 
Readln
End.
+ VD4: Tìm phần tử nhỏ nhất của dãy
Program VD4;
Uses crt;
Var a:array[1..10] of integer;
 min:integer;
Begin
	Clrscr;
	min:=a[1];
	For i:=1 to 10 do if a[i]<min then min:=a[i]; 
Write(‘Phan tu lon nhat cua mang: ‘,min); 
Readln
End.
+ VD5: Tính tổng các phần tử của dãy
Program VD5;
Uses crt;
Var a:array[1..10] of integer;
 S:integer;
Begin
	Clrscr;
	S:=0;
	For i:=1 to 10 do S:=S+a[i]; 
Write(‘Tong cac phan tu cua mang: ‘,S); 
Readln
End.
+ VD6: Tính trung bình cộng các phần tử của dãy
Program VD6;
Uses crt;
Var a:array[1..10] of integer;
 S:real;
Begin
	Clrscr;
	S:=0;
	For i:=1 to 10 do S:=S+a[i]; 
	S:=S/10;
Write(‘Tong cac phan tu cua mang: ‘,S); 
Readln
End.
+ VD7: Tính tổng các phần tử chẵn,tổng các phần tử lẻ
Program VD7;
Uses crt;
Var a:array[1..10] of integer;
 TC,TL:integer;
Begin
	Clrscr;
	TC:=0;TL:=0;
	For i:=1 to 10 do if (a[i] mod 2=0) then TC:=TC+a[i] else TL:=TL+a[i];
Writeln(‘Tong cac phan tu chan cua mang: ‘,TC); 
Writeln(‘Tong cac phan tu le cua mang: ‘,TL); 
Readln
End.
+ VD8: Trong các câu lệnh lặp, câu lệnh nào sai và sai ở đâu ?
a./ while i:=1 do t:=10;
b./ while a<=b; do write(‘b khong nho hon a’);
c./ while 1=1 do write(‘Toi lap trinh gioi’);
d./ i:=1; while i<10 do sum:=sum+1; i:=i+1;
e./ i:=1; x:=5; while i<x do i:=i+1; write(‘Gia tri cua i la ‘,i);
+ VD9: Đoạn lệnh sau đây sẽ cho kết quả gì ?
so:= 1; 
while so<10 do writeln(so);
so:=so+1;
a./ In ra các số từ 1 đến 9;
b./ In ra các số từ 1 đến 10;
c./ In ra vô hạn các số 1, mỗi số trên một hàng;
d./ Không phương án nào đúng.	
+ VD10: Hãy chạy từng bước và đoán giá trị của biến x sau khi đoạn chương trình trên được thực hiện
x:=0; tong:=0;
while tong<=20 do
begin
	writeln(tong);
tong:=tong+1;
	end;
	x:=tong;
Kết quả: x=.
+ VD11: Tìm hiểu đoạn chương trình sau và cho biết giá trị của các biến i, j, k
	a./ i:=1; j:=2; k:=3;
	while i<6 do i:=i+1; j:=j+1; k:=k+j;
space:=’ ‘;
writeln(i,space,j,space,k);
Kết quả: i =; j =..; k =.
b./ i:=1; j:=2; k:=3;
	while i<6 do begin i:=i+1; j:=j+1; k:=k+j; end;
space:=’ ‘;
writeln(i,space,j,space,k);
Kết quả: i =; j =..; k =.
+ VD12: Hãy viết đoạn chương trình yêu cầu người sử dụng nhập một số thực trong khoảng từ 1 đến 10 và yêu cầu nhập lại nếu không thỏa mãn.
+ VD13: Viết chương trình sử dụng câu lệnh lặp while do để tính tổng
	S = 1 + 1/2 + 1/3 + + 1/n
	Với 1/n <e, giá trị e là sai số cho trước và được nhập vào từ bàn phím
+ VD14: Viết chương trình tìm ước chung lớn nhất của hai số nguyên a và b được nhập từ bàn phím
+ VD15: Dựa vào ý tưởng của VD14 hãy viết chương trình tính tổng hai phân số a/b và c/d được nhập vào bàn phím theo cú pháp sau
	Write(‘Nhap phan so a/b’);readln(a,b);
	Write(‘Nhap phan so c/d’);readln(c,d);
	Xuất ra màn hình tổng hai phân số theo cú pháp sau
	Write(‘Tong hai phan so: ‘,a,’/’,b,’+’,c,’/’,d,’=’,tong);
Vấn đề 8: Một số câu hỏi tham khảo
+ VD1: Các lệnh khai báo mảng trong Pascal sau đây là đúng hai sai? Hãy giải thích.
a./ var a: array[11000] of integer;
b./ var b: array[1..n] of real;
c./ var c: array[1:n] of real;
d./ var d: array[-7..7] of byte;
e./ var x: array[100..1] of real;
f./ var y: array(-1..10] of byte;
+ VD2: Các lệnh khai báo mảng trong Pascal sau đây là đúng hai sai, nếu sai hãy giải thích ?
a./ var a: array[1,20] of real;
b./ var xau: array[255..1] of longint;
c./ var so: array[1.1..1.10] of integer;
d./ var kitu: array(1..255) of real;
e./ var y: array[1,,100] of integer;
+ VD3: Các lệnh Pascal sau là đúng hay sai, hãy chỉ ra chổ sai nếu có ?
a./ for i:=1 to 10; do x:=x+1;
b./ for i:=10 to 1 do x:=x+1;
c./ for i:=1 to 10 do x:=x+1;
d./ for i:=1 to 10 do for j:=1 to 10 do x:=x+1;
e./ for i:=1 to 10 do for i:=1 to 10 do x:=x+1;
+ VD4: Hãy cho biết các biến i , j, k là nguyên. Giá trị i,j , k được in ra màn hình là bao nhiêu ?
	a./ i = .; j =..;k = ..
j:=2; k:=3;
	for i:=1 to 5 do j:=j+1;
	k:=k+j;
	cach:=’ ‘;
	writeln(j,cach,k);
	b./ i = .; j =..;k = ..
j:=2; k:=3;
	for i:=1 to 5 do begin j:=j+1; k:=k+j; end;
cach:=’ ‘;
	writeln(j,cach,k);
	c./ i = .; j =..;k = ..
j:=2; k:=3;
	for i:=1 to 5 do 
	if i mod 2 =0 then j:=j+1; 
k:=k+j; 
cach:=’ ‘;
	writeln(j,cach,k);
+ VD5: Câu lệnh sau thực hiện bao nhiêu lần
	For i:=1 to 10 do begin  end;
a./ không lần nào
b./ 1 lần
c./ 2 lần
d./ 10 lần
+ VD6: Đoạn chương trình sau đây làm việc gì (chạy thử n=5 và trả lời)?
	a./ s:=0; for a:=1 to n do s:=s+a*a;
	b./ for i:=1 to n do i:=i+2;
+ VD7: Sửa lỗi nếu có và cho biết chương trình sau đây làm việc gì ?	
a./ for i:=0 to 1.5 do write(i:3:1);
	b./ s:=0; for i:=2 to 3900 do if i mod 2=0 then s:=s+i;
Vấn đề 9: Một số bài tập gợi ý (dành cho hs giỏi, nếu muốn đạt 10 điểm)
a./ Số Fibonacci được ký hiệu là Fn
	F1=F2=1; Fn=Fn-1+Fn-2 (với n>=3)
Hãy viết chương trình in ra màn hình các số Fibonacci từ1 đến 100
b./ Số Amstrong là số tổng lập phương các chữ số bằng chính nó, ví dụ 153=1^3+5^3+3^3
Hãy viết chương trình in ra các số Amstrong từ 0 đến 999
c./ In ra các số hoàn chỉnh <=1000 (xem VD)
d./ Số m và n là hai số bạn bè nếu tổng các ước thực sự của m bằng n và ngược lại tổng các ước thực sự của n bằng m. Hãy viết chương trình tìm các số bạn bè từ 0 đến 1000
Ví dụ: 284 và 220 là cặp số bạn bè vì tổng các ước thực sự của 284 bằng 220 và ngược lại, tổng các ước thực sự của 220 bằng 284
Ước thực sự là không kể số 1 và chính nó như sau:
“Số nguyên dương p được gọi là ước thật sự của số nguyên n, nếu n chia hết cho p và p khác 1 và chính số n.”
e./ Viết chương trình tính x^n với x và n là hai số nguyên dương được nhập từ bàn phím ?

Tài liệu đính kèm:

  • docOn tap HK2 Tin hoc 8.doc