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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2016, 16:59   #1
Ephixa
Новичок
Джуниор
 
Регистрация: 21.12.2016
Сообщений: 1
По умолчанию Помогите исправить программу: Вычислить сумму ряда с заданной точностью



Код:
var 
a,eps,s,x,f:Real; 
m,i,max:Integer; 
begin 
write('Введите m, eps, максимальное количество ряда, x'); 
Readln(m,eps,max,x); 
f:=1; 
for i:=1 to m do 
f:=(1-x)*f; 
a:=1; s:=a; i:=0; 
while (abs(a)>eps) and (i<=max) do 
begin 
a:=-a*x*(m-1)/(i+1); 
s:=s+a; 
i:=i+1; 
end; 
if i>max then Writeln('нет сходимости') 
else 
begin 
Writeln('Сумма ряда',s:10:5); 
Writeln('Количество членов ряда ',i); 
Writeln('(1-x)^(',m,')=',f:10:5); 
end; 
readln; 
end.
Ephixa вне форума Ответить с цитированием
Старый 21.12.2016, 17:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

вместо
Цитата:
Код:
a:=-a*x*(m-1)/(i+1);
я бы предложил
Код:
a:=-a*x*(m-i)/(i+1);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2016, 17:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну и проверку минимальную на входные данные надо добавить, раз об этом в задании сказано:
Код:
var
a,eps,s,x,f:Real;
m,i,max:Integer;
begin
  repeat
    write('Для вычисления (1-x)^m введите x (модуль x<1) и m (m>0):');
    Readln(x, m);
  until (abs(x)<1) and (m>0);
  write('Введите eps и максимальное количество слагаемых ряда');
  Readln(eps,max);
  {точное вычисление значения функции}
  f:=1;
  for i:=1 to m do
       f:=(1-x)*f;

  {вычисление суммы ряда}
  a:=1; s:=a; i:=0;
  while (abs(a)>eps) and (i<=max) do
  begin
      a:=-a*x*(m-i)/(i+1);
      s:=s+a;
      inc(i);
  end;
  if i>max then Writeln('нет сходимости');
  Writeln('Сумма ряда ',s:10:9);
  Writeln('Количество членов ряда ',i);
  Writeln('(1-x)^(',m,')= ',f:10:9);
  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму бесконечного ряда с заданной точностью Alex95 Помощь студентам 1 27.12.2015 08:10
Вычислить сумму ряда с заданной точностью: 35091_stasi Помощь студентам 2 29.10.2013 22:18
Вычислить сумму ряда с заданной точностью Tecknogleb Помощь студентам 1 20.10.2012 03:03
Pascal ABC. Вычислить сумму ряда с заданной точностью. 0kcanka Помощь студентам 0 16.05.2011 13:22
Вычислить с заданной точностью Е(эпсилон) сумму ряда Wika17 Помощь студентам 0 27.10.2010 08:10