Program Tong__nghich__dao;
Var
n,i:real;
S:Integer;
Begin
Write('Nhap n=');Readln(n);
S:=0;
For i:=1 to n do S:=S+1/i;
Write('Tong can tim la: ', S:6:2);
Readln;
End.
Program Tong__nghich__dao;
Var
n,i:real;
S:Integer;
Begin
Write('Nhap n=');Readln(n);
S:=0;
For i:=1 to n do S:=S+1/i;
Write('Tong can tim la: ', S:6:2);
Readln;
End.
Program tong_so_le;
Uses crt;
Var S,N,I:Integer;
Xữa chương trình sau( nếu sai)
Begin
Clrscr;
Write('Nhap N ');Readln(N);
S:=0;
For I:=1 to N do If (I mod 2<>0) then
S:=S+I;
Writeln('Tong cac so le la ',S); Readln;
End.
Giup mik nha các bn
Thanks
1) Viết chương trình so sánh hai số a và b theo hai dạng (đủ, thiếu)
2) Cho đoạn chương trình sau:
Program sua loi;
var a,b,s =real
Begin
write ('nhap a=') , readln('a');
write (nhap b=') , readln(b')
s:= (a*b)/2;
write ('s=s);
readln
End.
uses crt;
var i,n,s:integer;
begin
clrscr;
readln(n);
s:=0;
for i:=1 to n do s:=s+i;
writeln(s);
readln;
end.
Hãy cho biết chương trình Pascal sau đây có đúng không ? Tại sao ?
Program Tong_hai_so;
Begin
Writel(‘Hay nhap hai so’); Readln(a,b);
Write(‘Tong cua hai so la: ‘,a+b);
Var a,b: Integer;
End.
Giúp mik vs mai mik thi r
Viết CT kiểm tra xem 1 số nguyên được nhập từ bàn phím có tính chất đối xứng hay ko.
Sửa lỗi cho ct viết theo đề bài trên:
uses crt;
var a,n,i:integer;
begin
write('nhap so: ');readln(a);
n:=length(a);
for i:=1 to n do
if a[i] = a[n-i+1] then write('co') else write('khong');
readln
end.
ĐÁP ÁN VÒNG 2 CUỘC THI TIN HỌC:
* ĐỀ 1:
Câu 1:
CÂU 1:
const fi='uc.inp'
fo='uc.out'
var f: text;
a,b,c : integer;
function uc(x,y): integer;
var z: integer;
begin
while y<>0 do
begin
z:=x mod y;
x:=y;
y:=z;
end;
uc:=x;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,a,b,c);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
write(f,uc(uc(a,b),c);
close(f);
end;
begin
ip;
out;
end.
Câu 2:
const fi='SN.inp'
fo='SN.out'
var
f:text;
i,n:integer;
s:real;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,n);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
s:=0;
for i:= 1 to n do
begin
if i mod 2 <> 0 then
s:=s+(i/(i+1));
if i mod 2 = 0 then
s:=s-(i/(i+1));
end;
write(f,s:0:2);
close(f);
end;
BEGIN
ip;
out;
END.
Câu 3:
const fi='SSNT.inp'
fo='SSNT.out'
var
f:text;
n,i,max,j:integer;
s:string;
a:array[1..32000] of integer;
function nt(x:integer):boolean;
var
i:integer;
begin
nt:=false;
if x < 2 then exit;
for i:= 2 to trunc(sqrt(x)) do
if x mod i = 0 then exit;
nt:=true;
end;
function snt(x:integer):boolean;
begin
snt:=false;
if x= 0 then exit;
while nt(x) = true do
x := x div 10;
if x = 0 then snt:=true;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
max:=a[1];
readln(f,n);
for i:= 1 to n do
begin
read(f,a[i]);
if( a[i] < max ) and (nt(a[i]) = true) then
max:=a[i];
end;
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
writeln(f,max);
max:=0;
for i:= 1 to n do
begin
if snt(a[i]) = true then
begin
str(a[i],s);
if length(s) = 2 then
max:=max+a[i];
s:=''
end
else
a[i]:=-32000;
end;
writeln(f,max);
for i:= 1 to n-1 do
for j :=i+1 to n do
if a[i] > a[j] then
begin
max:=a[i];
a[i]:=a[j];
a[j]:=max;
end;
for i:= 1 to n do
if (a[i] > 0) and (a[i] <> a[i-1]) then write(f,a[i],' ');
close(f);
end;
BEGIN
ip;
out;
END.
CÂU 4:
const fi='TUOI.INP'
fo='TUOI.OUT'
var f: text;
a,b: byte;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,a,b);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
if (x=y*2) and (x>18) and (x-y>=18) then write(f,'CO') else write(f,x-y*2);
close(f);
end;
begin
ip;
out;
end.
const fi='CM.INP'
fo='CM.OUT'
var f: text;
a,n,b,k: integer;
a1: array[1..32000] of integer;
function nt(x: integer): boolean;
var i: integer;
begin
nt:=false;
if x<2 then exit;
for i:=2 to trunc(sqrt(x)) do if x mod i=0 then exit;
nt:=true;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,n);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
d:=0;
for a:=1 to k do
if nt(a) then
begin
inc(d);
a1[d]:=a;
end;
for a:=1 to d do
for b:=x to d do
if a1[a]+a1[b]=k then writeln(f,a1[a],'+',a1[b]);
end;
close(f);
end;
begin
ip;
out;
end.
*ĐỀ 2 :
BÀI LÀM CỦA BẠN LÊ HOÀNG THẮNG:
//----------------------------CAU 1--------------------------------
var s,d,n,i,u:longint;
a:array[0..32001] of longint;
f:text;
function ucln(x,y:longint):longint;
begin
if y=0 then exit(x) else exit(ucln(y,x mod y));
end;
begin
assign(f,'ucln.inp');reset(f);
readln(f,n);
for i:=1 to n do read(f,a[i]); close(f);
u:=a[1];
for i:=2 to n do u:=ucln(u,a[i]);
assign(f,'ucln.out');rewrite(f);
write(f,'UCLN: ',u,' UC: ');
for i:=1 to u do if u mod i=0 then
begin
if i<>u then write(f,i,',') else write(f,i);
if i<10 then inc(d) else inc(s,i);
end;
writeln(f);
writeln(f,d); write(f,s);
close(f);
end.
//----------------------------CAU 2--------------------------------
var n,i:longint;
s:real;
f:text;
begin
assign(f,'sn.inp');reset(f);
readln(f,n); close(f);
for i:=1 to n do if odd(i) then s:=s-i/(i+1) else s:=s+i/(i+1);
assign(f,'sn.out');rewrite(f);
write(f,s:0:2);
close(f);
end.
//----------------------------CAU 3--------------------------------
var a:array[0..1000000] of boolean;
b:array[0..1000000] of longint;
i,j,k,n,d:longint;
f:text;
procedure taosang(n:longint);
var i,j:longint;
begin
for i:=2 to trunc(sqrt(n)) do if not(a[i]) then
begin
j:=i*i;
while j<=n do begin a[j]:=true; inc(j,i); end;
end;
end;
begin
assign(f,'boso.inp');reset(f);
readln(f,n); taosang(n); close(f);
assign(f,'boso.out');rewrite(f);
for i:=2 to n do if not(a[i]) then
begin
inc(d);
b[d]:=i;
end;
for i:=1 to d do
for j:=i to d do
if (n-b[i]-b[j]>=b[j]) and not(a[n-b[i]-b[j]]) then
writeln(f,b[i],' ',b[j],' ',n-b[i]-b[j]);
close(f);
end.
//----------------------------CAU 4--------------------------------
THAM KHẢO ĐỀ 1.
//----------------------------CAU 5--------------------------------
var n,i,s,t:longint;
f:text;
begin
assign(f,'u.inp');reset(f);
readln(f,n); t:=n; close(f);
assign(f,'u.out');rewrite(f);
for i:=2 to trunc(sqrt(n)) do
begin
if n mod i=0 then
begin
write(f,i,' ');
repeat n:=n div i until n mod i>0;
end;
if t mod (i*i)=0 then inc(s,i*i);
end;
writeln(f);
write(f,s+1);
close(f);
end.
*ĐỀ CHUNG:
BÀI LÀM CỦA BẠN ĐÀO XUÂN SƠN :
Câu 1:
const fi='TCS.inp'
fo='TCS.out'
var
f:text;
x:char;
tg:byte;
s:integer;
CODE:integer;
procedure ip;
begin
assign(f,fi);
reset(f);
s:=0;
while not(eof(f)) do
begin
read(f,x);
if x in ['0'..'9'] then
begin
val(x,tg,CODE);
s:=s+tg;
end;
end;
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
write(f,s);
close(f);
end;
BEGIN
ip;
out;
END.
Câu 2:
const fi='t.inp'
fo='t.out'
var
f:text;
s:string;
i:byte;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,s);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
s[1]:=upcase(s[1]);
for i:= 2 to length(s) do
if s[i-1] <> #32 then
s[i]:=lowercase(s[i]) else
s[i]:=upcase(s[i]);
write(f,s);
close(f);
end;
BEGIN
ip;
out;
END.
Câu 1: Sau khi thực hiện chưng trình pascal sau đây, biến S có giá trị là bao nhiêu ? Var x : integer;
Begin
S:=0
For i:=1 to 10 do
If ( i mod 2) = 0 then S:=S+i;
Readln;
End
A.10 B. 20 C. 30 D. 40
Câu 2: Khi thực hiện đoạn chương trình sau, kết quả trên màn hình là:
So:=1;
While so<10 do Begin
Write (so : %);
So:= So +2;
End.
TỔ TOÁN-TIN MÔN: TIN HỌC 8
I. TRẮC NGHIỆM
Câu 1: Lệnh lặp nào sau đây là đúng?
a) For <biến đếm>= <giá trị đầu>to<giá trị cuối>do<câu lệnh>;
b) For <biến đếm>:= <giá trị đầu>to<giá trị cuối>do<câu lệnh>;
c) For <biến đếm>:= <giá trị cuối>to<giá trị đầu>do<câu lệnh>;
d) For <biến đếm>: <giá trị đầu>to<câu lệnh> do <giá trị cuối>;
Câu 2: Câu lệnh pascal nào sau đây là hợp lệ?
a) For i:=10 to 1 do write(‘A’); c) For i:=1.5 to 10 do write(‘A’);
b) For i= 1 to 10 do write(‘A’); d) For i:= 1 to 10 do write(‘A’);
Câu 3: Vòng lặp while ..do là vòng lặp:
a) Biết trước số lần lặp c) Chưa biết trước số lần lặp
b) Biết trước số lần <=100 d) Biết trước số lần là >=100
Câu 4: Câu lệnh lặp while…do có dạng đúng là:
a) While <đk> do; <câu lệnh>; c) While <đk> <câu lệnh> do;
b) While <câu lệnh> do <đk>; d) While <đk>do <câu lệnh>;
Câu 5: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
s:=0; for i:=1 to 5 do s := s+i;
Kết quả cuối cùng của s là : a) 11 b) 55 c) 101 d) 15
Câu 6: Trong đọan chương trình pascal sau đây x có giá trị là mấy
Begin x:= 3 ; If (45 mod 3) =0 then x:= x +2;
If x > 10 then x := x +10 ; End.
a) 3 b) 5 c) 15 d) 10
Câu 7: Trong chương trình pascal sau đây:
var a, b :integer;
s,cv :real ;
begin a:= 10; b:= 5; s:= a*b ; cv:= (a +b ) * 2 ; end.
Biến s và cv có giá trị là mấy:
a) s = 10 ; cv = 5 ; c) s= 30 ; cv = 50 ;
b) s = 50 ; cv = 40 ; d) s = 50 ; cv = 30 ;
Câu 8: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn hình là? a) 4 b) 6 c) 8 d) 10
Câu 9: Để tính tổng S=1+3 + 5 + … + n; em chọn đoạn lệnh: |
|
a) for i:=1 to n do if ( i mod 2)=0 then S:=S + 1/i; |
c) for i:=1 to n do if (i mod 2) <> 0 then S:=S+i; |
b) for i:=1 to n do if ( i mod 2)<>0 then S:=S + 1/i |
d) for i:=1 to n do if ( i mod 2)=0 then S:=S + i; |
Câu 10: Để tính tổng S=1/2+1/4 + 1/6 + … +1/ n; em chọn đoạn |
|
a) for i:=1 to n do if ( i mod 2)=0 then S:=S + 1/i; |
c) for i:=1 to n do if (i mod 2) <> 0 then S:=S+i; |
b) for i:=1 to n do if ( i mod 2)=0 then S:=S – 1/i |
d) for i:=1 to n do if ( i mod 2)=0 then S:=S + i |
Câu 11: Để đếm các số lẻ <= n ; em chọn đoạn lệnh: |
|
a) for i:=1 to n do if ( i mod 2)< >0 then S:=S + 1; |
c) for i:=1 to n do if (i mod 2) =0 then S:=S + 1; |
b) for i:=1 to n do if ( i mod 2)=0 then S:=S + i ; |
d) for i:=1 to n do if ( i mod 2)=0 then S:=S + i; |
Câu 12: Câu lệnh nào sau đây lặp vô hạn lần |
|
a) s:=5; i:=0; While i<=s do s:=s + 1; |
a) s:=5; i:=1; While i<=s do i:=i + 1; |
b) s:=5; i:=1; While i> s do i:=i + 1; |
d) s:=0; i:=0; While i<=s do S:=S + i; |
Câu 13: Chọn khai báo hơp lệ |
|
a) Var a: array[1..n] of real; |
c) Var a: array[1:n] of real; |
b) Var a: array[1..100] of real; |
d) Var a: array[1…n] of real; |
Câu 14: Chọn khai báo hơp lệ |
|
a) Const n=5; Var a,b: array[1..n] of real; |
c) Var n: real; Var a,b: array[1:n] of real; |
b) Var a,b: array[100..1] of real; |
d) Var a:array[1.5.10] of real; |
Câu 15: Thực hiện đoạn lệnh:
a[1]:=2; a[2]:=3; t:=a[1]+a[2]+1;
Giá trị của t là: a) t=1 b) t=3 c) t=2 d) t=6
II. TỰ LUẬN
1) Nhập số tự nhiên n từ bàn phím, in ra các số chẵn từ 1 đến n và tổng của chúng?
2) Nhập số tự nhiên n từ bàn phím, in ra các số chia hết cho 5 từ 1 đến n và tổng của chúng?
3) Tính trung bình cộng của n số nguyên nhập từ bàn phím?
4) Tìm số lớn nhất trong dãy n số nguyên nhập từ bàn phím?
5) Sửa lỗi cho các câu lệnh Pascal sau:
a. For i=1 to 10 do s= s+i; b. While i:=5 do s:= s+i;
c. Var a:array[100..1] of real; d. If a>b; then max:=a;
6) Kẻ bảng thể hiện các câu lệnh lặp sau:
a. s:=0; b. s:=0; i:=10;
For i:= 1 to 20 do While i>0 do
If I mod 5=0 then s:=s+i; begin s:=s+i; i:=i-1end;
7) Sau khi thực hiện các đoạn chương trình sau, giá trị của biến s và biến i bằng bao nhiêu?
a. s:=1; b. s:=0; i:=0;
For i:= 1 to 5 do s:=s*i; While i<5 do begin i:=i+1; s:=s+i end;
8) Cho biết kiểu dữ liệu của biến a và b trong các đoạn chương trình sau:
a. a:= 0; b:=0;
while a<5 do begin a:=a+1; b:=b+1/a end;
b. b:=1;
For a:= 1 to 5 do b:=b*a;