Рекуррентные соотношения
Задачи в Pascal
Мыслить последовательно, судить доказательно, опровергать неправильные выводы должен уметь всякий: физик и поэт, тракторист и химик.
Э. Кольман
1/2+3/4+5/6+…+(2n-1)/(2n); для n = 10 имеем S = 8.5355.
Указание:
(
,
).
const n=10;
var i:byte; s:real;
begin
s:=0;
for i:=1 to n do
s:=s+(2*i-1)/2/i;
writeln('summa=',s:10:4);
readln
end.
–1+1/2-1/3+…+(-1)n/n; для n = 10 имеем S = -0.6456.
Указание:
,
(переключатель) (
,
,
).
const n=10;
var i,k:integer; s:real;
begin
s:=0; k:=1;
for i:=1 to n do
begin
k:=-k;
s:=s+k/i
end;
writeln('summa=',s:10:4);
readln
end.
1+x+x2+…+xn; для n = 10, x = 2 имеем S = 2047.
Указание:
,
(
,
,
).
const n=10; x=2;
var a,s:real; i:byte;
begin
a:=1; s:=a;
for i:=1 to n do
begin
a:=a*x; s:=s+a
end;
writeln('summa=',s:10:4);
readln
end.
x 2+(x+1)2+(x+2)2+…+(x+n)2; для n = 10, x = 2 имеем S = 649.
Указание:
(
,
).
const n=10; x=2;
var a,s:real; i:byte;
begin
s:=x*x;
for i:=1 to n do
begin
s:=s+sqr(x+i)
end;
writeln('summa=',s:10:4);
readln
end.
2+a/b2+a2/b3+…+an/bn+1; для n = 10, a = 2 , b = 3 имеем S = 2.6551.
Указание:
,
,
).
const n=10; a=2; b=3;
var s,p,mn:real; i:byte;
begin
p:=1/b; s:=2; mn:=a/b;
for i:=1 to n do
begin
p:=mn*p; s:=s+p
end;
writeln('summa=',s:10:4);
readln
end.
1/(1·2)+1/(2·3)+…+1/(n·(n+1)); для n = 10 имеем S = 0.9091.
Указание:
(
,
).
const n=10;
var s:real; i:byte;
begin
s:=0;
for i:=1 to n do
s:=s+1/i/(i+1);
writeln('summa=',s:10:4);
readln
end.
(1+1/12)+(1+1/22)+…+(1+1/n2); для n = 10 имеем S = 1.5498.
Указание:
(
,
).
const n=10;
var s:real; i:byte;
begin
s:=0;
for i:=1 to n do
s:=s+1/i/i;
writeln('summa=',s:10:4);
readln
end.
1+2/(1+2)+3/(1+2+3)+…+100/(1+2+…+100); для n = 100 имеем S =8.3946.
Указание: , (,
,
).
const n=100;
var a,s:real; i:byte;
begin
a:=0; s:=a;
for i:=1 to n do
begin
a:=a+i; s:=s+i/a;
end;
writeln('summa=',s:10:4);
readln
end.
–1/3+1/5-1/7+…+(-1)n/(2n+1); для n = 10 имеем S = -0.1919.
Указание:,
(переключатель)(
,
,
).
const n=10;
var s,k:real; i:byte;
begin
s:=0; k:=1;
for i:=1 to n do
begin
k:=-k; s:=s+k/(2*i+1)
end;
writeln('summa=',s:10:4);
readln
end.
; для n = 10, x = 2.5 имеем S = 0.9156.
Указание: , (
,
,
).
const n=10; x=2.5;
var a,s,mn:real; i:integer;
begin
mn:=(x-1)/x;a:=1; s:=0;
for i:=1 to n do
begin
a:=a*mn; s:=s+a/i
end;
writeln('summa=',s:10:4);
readln
end.
2!+4!+…+(2n)!; для n = 5 имеем S = 3669866.
Указание:
, (
,
,
).
const n=5;
var s,a:longint; i,d:integer;
begin
a:=1; s:=0; d:=0;
for i:=1 to n do
begin
d:=d+2; a:=a*(d-1)*d; s:=s+a
end;
writeln('summa=',s);
readln
end.
; для n = 5 имеем S = 0.1268.
Указание: , (,
, ,
).
const n=5;
var a,s:real; i:integer;
begin
a:=6; s:=0;
for i:=1 to n do
begin
a:=a*(i+3); s:=s+i/a
end;
s:=2*s; writeln('summa=',s:10:4);
readln
end.
; для n = 5, x = 2 имеем
S = 0.9333.
Указание: , (,
,
).
const n=5; x=2;
var a,s:real; i:integer;
begin
a:=-1; s:=0;
for i:=1 to n do
begin
a:=-x*a/i; s:=s+a
end;
writeln('summa=',s:10:4);
readln
end.
; для n = 5, x = 2 имеем S = -0.4162.
Указание:
, (
, ,
).
var a,s,mn,d:real; i:integer;
begin
a:=1; s:=a; x:=2; mn:=-x*x; d:=0;
for i:=1 to 5 do
begin
d:=d+2; a:=mn*a/(d-1)/d; s:=s+a
end;
writeln('summa=',s:10:4);
readln
end.
; для n =5, a = 2 имеем
S = 65.5.
Указание: , , (, ,
,
).
const n=5; a=2;
var a1,a2,s:real; i:integer;
begin
a1:=1; a2:=1/a; s:=0;
for i:=1 to n do
begin
a1:=a1*a; a2:=a2*i/a; s:=s+a1+a2;
end;
writeln('summa=',s:10:4);
readln
end.
; для n = 5
имеем S = 152.6319.
Указание: , ,
(переключатель) (
,
,
,
).
const n=5;
var s,a,k:real; i:integer;
begin
a:=1; k:=1;s:=0;
for i:=1 to n do
begin
a:=a*i; k:=-k; s:=s+a+k/a/(i+1)
end;
writeln('summa=',s:10:4);
readln
end.
; для n = 5 имеем S = 0.7625.
Указание: , (
,
,
).
const n=5;
var a,s:real; i:integer;
begin
a:=1; s:=0;
for i:=1 to n do
begin
a:=a*i; s:=s+ln(a)/i/i
end;
writeln('summa=',s:10:4);
readln
end.
или; для n = 5
имеем S = 155.5929.
Указание: , (
, ,
).
const n=5;
var a,s:real; i:integer;
begin
a:=1; s:=1.5;
for i:=1 to n do
begin
a:=a*i; s:=s+a+1/(i+2)
end;
writeln('summa=',s:10:4);
readln
end.
7