Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Вычислить сумму ряда. Вычисления заканчивать при достижении заданной.

Автор: Fraddy 23.10.2007 23:41

Вычислить сумму ряда. Вычисления заканчивать при достижении заданной
степени точности (т.е. очередной член ряда становится меньше введенной точности).
S= 1 + 1/(2*2) + 1 /(3*3) + 1/(4*4).....

30го уже надо здавать.. такчто нужно почти срочно.. спасибо заранее..

Автор: Айра 24.10.2007 3:19

Допустим так (но не уверена, только сегодня начали эту тему)):

var s,t,n,prom: extended;
begin
writeln('введите точность: ');
readln(t);
prom:=1;
n:=2;
s:=1;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
end;
writeln(s:12:10);
end.

Точность было бы лучше вводить так: 1.e-15..

Автор: Fraddy 24.10.2007 16:18

СПС ОГРОМНОЕ!! СПАСЛА)) give_rose.gif wub.gif щаз испробуем)

Автор: Fraddy 24.10.2007 16:55

Класс работает) супер.. спасибо огромное give_rose.gif rolleyes.gif ...

Автор: Fraddy 29.11.2007 18:00

Кстате тут надо было 5 способами решать=) ну 4 остальтных я смог сам доделать.. вот наверняка кому нужно!


1 uses crt;
var s,t,n,prom: real;
begin
writeln('Введите точность:');
readln(t);
prom:=1;
n:=1;
s:=0;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
end;
writeln(s:1:6);
readkey;
end.

2 uses crt;
var s,t: real;
function row(t:real):real;
var n,prom:real;
begin
clrscr;
prom:=1;
n:=1;
s:=0;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
end;
row:=s
end;
Begin
Clrscr;
writeln('Введите точность:');
readln(t);
s:=row(t);
writeln(s:1:6);
readkey;
end.



3 uses crt;
var s,t: real;
procedure row(t:real; var s:real);
var n,prom:real;
begin
prom:=1;
n:=1;
s:=0;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
end;
end;
Begin
Clrscr;
writeln('Введите точность');
readln(t);
row (t,s);
writeln(s:1:6);
readkey;
end.

4 uses crt;
var t,s:real;
{$i row1.pas}
begin
clrscr;
writeln ('Vvedite T');
readln (t);
row1 (t,s);
writeln('summa =', s:1:6)
readkey;
end.

procedure row1(t:real; var s:real);
var n,prom:real;
begin
prom:=1;
n:=1;
s:=0;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
end;

5 uses crt;
var t,s:real;
{$i row2.pas}
begin
clrscr;
writeln ('Vvedite T');
readln (t);
s := row2(t);
writeln('summa =', s:1:6)
readkey;
end.

function row2(t:real):real;
var n,prom,s:real;
begin
prom:=1;
n:=1;
s:=0;
while prom>=t do
begin
prom:=1/(n*n);
s:=s+prom;
n:=n+1;
row2:=s;
end;