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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 12:51   #11
Vitalyas
Пользователь
 
Регистрация: 25.11.2014
Сообщений: 47
По умолчанию

Не могли бы вы мне помочь. Душа просит разобраться все-таки с моим кодом, что в нем не так?
скидываю код еще раз:
Код:
uses crt;
var a, b, c, x, s, f:real;
    n, i, j:integer;
   begin
        write('Введите х. x=');
        read(x);
        write('Введите n. n=');
        read(n);
        if n=-0.5
           then WriteLn('Функция не определена')
                else
                    For i:=1 to n do
                       begin
                          If odd(n) then a:=-1
                                    else a:=1;
                          f:=1;
                          for j:=1 to n do
                             begin
                             f:=f*j
                             end;
                          b:=1/f;
                          c:=exp((2*n+1)*ln(x))/(2*n+1);
                          s:=x+a*b*c;
                       end;
                    WriteLn('Сумма=', s:8:2);
   end.
Vitalyas вне форума Ответить с цитированием
Старый 28.11.2014, 12:57   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

давайте начнём с простого.

зачем Вы упорно вставляете эту проверку?!
Цитата:
Код:
       if n=-0.5
           then WriteLn('Функция не определена')
объясните мне, как ЦЕЛОЕ число N может быть -0,5 ??!


Цитата:
Код:
s:=x+a*b*c;
это ошибка.
Сумма в итерационных алгоритмах считается как ПРОШЛОЕ ЗНАЧЕНИЕ плюс новое значение

Последний раз редактировалось Serge_Bliznykov; 28.11.2014 в 13:01.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2014, 13:14   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а главная ошибка - это то, что Вы в цикле все значение считаете от N (и факториал N! и X в степени 2*N-1
а нужно в первой итерации считать факториал для 1: 1! и x^3,
во второй итерации для 2: 2! и x^5,
и т.д.

т.е. нужно везде в цикле вместо N поставить переменную цикла I

изучайте:
Код:
var a, b, x, s, f:real;
    n, i, j:integer;

begin
  write('Введите х. x=');
  readLn(x);
  write('Введите n. n=');
  readLn(n); 

   s := x;
   For i:=1 to n do
      begin
         If odd(i) then a:=-1
                   else a:=1;
         f:=1;
         for j:=1 to i do
            begin
               f:=f*j
            end;
         b:=exp((2*i+1)*ln(x))/f;
         s:=s+a*b/(2*i+1);
      end;
   WriteLn('Сумма=', s:8:2);
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.11.2014, 05:33   #14
Vitalyas
Пользователь
 
Регистрация: 25.11.2014
Сообщений: 47
По умолчанию

Спасибо большое! Разобрался =)
Vitalyas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для вычисления выражения Александрq Помощь студентам 2 16.11.2012 14:07
Программа для вычисления выражения Advocad4 Паскаль, Turbo Pascal, PascalABC.NET 6 17.11.2011 13:37
программа для вычисления суммы ряда Vitalina69 Общие вопросы Delphi 2 01.12.2010 19:47
Программа вычисления бесконечного числового ряда anna_ Помощь студентам 8 11.11.2010 13:48