Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2012, 13:43   #1
yzen
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 37
Сообщение Вычислить бесконечную сумму

Pascal
Пытался сделать,но нечего толкового не получилось, ответ при всех вариантах 1.5
Задача?
Вычислить бесконечную сумму с заданной точностью ε (ε > 0). Считать, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слогаемое оказалось по модулю меньше, чем ε, - это и все последующие слагаемые можно уже не учитывать. Вычислить:

Код:
program dno;
uses crt;
CONST
n=10000;
var i,e:integer;
    s:real;
begin
clrscr;
writeln('Ââåäèòå òî÷íîñòü E');
readln(e);
s:=1;
for i:=1 to n do begin
                 s:=s+1/(i*(i+1));
                 if abs(s)<e then begin
                                  writeln('E= ',s);
                                  exit;
                                  end;
                 end;
end.
Изображения
Тип файла: jpg 546.jpg (4.1 Кб, 428 просмотров)
yzen вне форума Ответить с цитированием
Старый 21.10.2012, 15:12   #2
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

Код:
program dno;
uses crt;
CONST
n=10000;
var i:integer;
    s,e,a,f:real;
begin
clrscr;
writeln('Aaaaeoa oi?iinou E');
readln(e);
s:=0;
for i:=0 to n do begin
if i=0 then f:=1 else f:=f*i;
a:=power(-2,i)/f;

                 if abs(a)<e then begin
                                  writeln('S= ',s);
                                  break;
                                  end;
s:=s+a;
                 end;
end.
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 21.10.2012, 16:22   #3
yzen
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от gaw4 Посмотреть сообщение
Код:
program dno;
uses crt;
CONST
n=10000;
var i:integer;
    s,e,a,f:real;
begin
clrscr;
writeln('Aaaaeoa oi?iinou E');
readln(e);
s:=0;
for i:=0 to n do begin
if i=0 then f:=1 else f:=f*i;
a:=power(-2,i)/f;

                 if abs(a)<e then begin
                                  writeln('S= ',s);
                                  break;
                                  end;
s:=s+a;
                 end;
end.
я понял, что ты хотел сделать
но твой вариант проги это не то
yzen вне форума Ответить с цитированием
Старый 21.10.2012, 16:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А чем он не подходит? Результат верный выдает? Или Преподаватель возбухает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2012, 16:55   #5
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

yzen, я только подправил твой код и все
icq 584 308 611

Последний раз редактировалось gaw4; 21.10.2012 в 16:58.
gaw4 вне форума Ответить с цитированием
Старый 21.10.2012, 20:58   #6
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Код:
program dno;
uses crt;
CONST
n=10000;
var i,e:integer;
    s:real;
begin
clrscr;
writeln('Ââåäèòå òî÷íîñòü E');
readln(e);
s:=1;
for i:=1 to n do begin
                 s:=s+1/(i*(i+1));
                 if abs(s)<e then begin
                                  writeln('E= ',s);
                                  exit;
                                  end;
                 end;end.
Yzen, в вашем варианте программы есть казалось бы пара незначительных проблем ...
1)У вас бесконечность = 10000 ?
2)Сумма равна 1 , а поидее 0.
3)И кто же бесконечность, конечным циклом считает.
4)
Цитата:
e:integer;
( не совсем думаю верно будет в данном случае )

Вот ваш вариант

Код:
var i:integer;
      sum, e:real;


function pow( x, n:integer):longint;
begin
  if n = 0 then pow:=1;
  else pow:=x*pow(x,n-1);
end;

function factorial ( n: integer ):longint;
begin
 if ( n = 0 ) or ( n = 1) Factorial:=1
 else factorial:=n*factorial(n-1);
end;

begin

writeln('Ââåäèòå òî÷íîñòü E');
readln(e);
sum = 0;i:=0;
while ( pow(-2,i)/factorial(i) >= e ) do begin
        sum:=sum+pow(-2,i)/factorial(i);
         inc(i);
end;
{вывод...}
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 21.10.2012, 21:16   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

тут рекурентная формула зачем Лишние функции?
Код:
var
   s,c,z:real;
   e:real;i:integer;
begin
     readln(e);
     c:=1;
     z:=1;
     s:=0;
     i:=0;
     while abs(c/z)>e do
           begin
                s:=s+c/z;
                inc(i);
                c:=c*(-2);
                z:=z*i;
           end;
     writeln(s);
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.10.2012, 21:35   #8
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Не подумал просто о данном варианте.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 21.10.2012, 21:52   #9
gaw4
Форумчанин
 
Регистрация: 31.05.2010
Сообщений: 407
По умолчанию

как еще вариант
Код:
    program dno;
var i:integer;
    s,e,a:real;
begin
writeln('Aaaaeoa oi?iinou E');readln(e);
i:=0;a:=1;S:=0;
repeat
s:=s+a;
inc(i);
a:=a*(-2)/i;
until abs(a)<e;
writeln('S= ',s);
end.
icq 584 308 611
gaw4 вне форума Ответить с цитированием
Старый 21.10.2012, 22:06   #10
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

gaw4, а где у вас факториал вычисляется? или степень?
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить бесконечную сумму с точностью e (решение внутри) Slap Общие вопросы C/C++ 1 23.09.2012 22:21
Определите бесконечную сумму с заданной точностью E pendalf2 Помощь студентам 6 30.05.2012 16:27
Вычислить бесконечную сумму Arti1 Общие вопросы по Java, Java SE, Kotlin 0 21.03.2012 19:00
найти бесконечную сумму ряда с заданной точностью логарифм Паскаль, Turbo Pascal, PascalABC.NET 1 23.07.2009 07:17
Вычислить бесконечную сумму ряда С++ Fishka Общие вопросы C/C++ 9 22.12.2008 18:23