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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2017, 17:56   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да нет, в этом как раз ошибки не было.
Цитата:
Сообщение от guardi Посмотреть сообщение
Понятно,я немного в коде ошибся,и изначально у меня n=0,а n=n+1 только в конце цикла перед следующим прогоном,получается,нужно сделать так?Т.к. факториал 0! равен 1
не надо. Вы для n=0 уже в уме подсчитали и записали значение в переменную!


я про вот это:
Цитата:
Сообщение от guardi Посмотреть сообщение
Код:
   s3:=1;
   c:=s3;
почему у Вас С изначально не ноль, а единица? Правильно - так как раз, если подставить n=0 в формулу, как раз единица и получается.
а в цикле уже надо вычислять для n=n+1 и т.д.


p.s. а чем Вам не подошёл предложенный код, который использует рекуррентную формулу (следующий член ряда вычисляется через предыдущий)?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2017, 20:05   #12
guardi
Пользователь
 
Регистрация: 24.09.2017
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да нет, в этом как раз ошибки не было.

не надо. Вы для n=0 уже в уме подсчитали и записали значение в переменную!


я про вот это:


почему у Вас С изначально не ноль, а единица? Правильно - так как раз, если подставить n=0 в формулу, как раз единица и получается.
а в цикле уже надо вычислять для n=n+1 и т.д.


p.s. а чем Вам не подошёл предложенный код, который использует рекуррентную формулу (следующий член ряда вычисляется через предыдущий)?
Да преподаватель попросил сделать вот так,то есть,уточняющий вопрос,к примеру,если у нас n:=0 (то есть идет от 0),то мы делаем вот так

s1:=1;

То есть тут уже подсчитано при значении n:=0; и поэтому,мы цикл именно начинаем с n:=n+1,а не заканчиваем им,а вот если у вас,например n:=1 изначально,в условии задания,то n:=n+1 мы делаем уже в конце


Например,следующая программа,еще не закончил,но смысл очевиден,тут нужен (2n)! и (3n)!

Опять задаем погрешность, до которой будет бежать n

Код:
program number15;
var
 x,x0,hx,xn,s1,s2,y,e,xs:real;
 fact1,fact2:longint;
 n:integer;
function fact(i:integer):longint;
 begin
  if (i=0) then fact:=1
   else
  fact:=i*fact(i-1); 
 end;
begin
writeln('x0,hx,xn,e');
readln(x0,hx,xn,e);
x:=x0;
while x < xn + hx/2 do
 begin
  if x < 1 then
   begin
    xs:=1;
    n:=0;
    s1:=1;
    y:=s1;
     while abs(s1) >= e do
      begin
       n:=n+1;
       xs:=xs*x*x;
       fact1:=fact(2*n);
       s1:=xs/fact1;
       y:=y+s1;
      end;
   end
   else 
    begin
     n:=0;
     s2:=1;
     y:=s2;
      while abs(s2) >= e do
       begin
        n:=n+1;
        fact2:=fact(3*n);
        s1:=x/fact2;
        y:=y+s2;
       end;
     end;
   writeln('x = ',x, ' Y = ',y);
   x:=x+hx;
  end;
end.

Последний раз редактировалось guardi; 14.12.2017 в 20:12.
guardi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечная сумма Ikaros Помощь студентам 1 27.11.2017 19:15
C, бесконечная сумма East Undia Trading Помощь студентам 0 18.10.2013 21:41
Вычисления на языке C (Бесконечная сумма...) East Undia Trading Помощь студентам 5 17.10.2013 14:54
БЕСКОНЕЧНАЯ СУММА Ania Lunee Помощь студентам 4 17.05.2012 22:41