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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2018, 12:16   #1
Genzal
Пользователь
 
Регистрация: 23.12.2017
Сообщений: 22
По умолчанию Не правильно считает

Ввожу разные значения в пределах, но считает не верно. Задание звучит так: Вычислить функцию Y=LN(X), разложенную в степенной ряд, с заданной степенью точности. Но компьютер считает верно, а я походу не правильно сделал рекурсию подскажите пожалуйста
Код:
program lnx_teilor;

procedure Vvod(var x, e: real);{Procedure for entering a number}
begin
  Write('Введите 1 < x < 2: ');
  Readln(x);
  Write('Введите точность e: ');
  Readln(e);
end;


function obrobotka(var x, stx, lnt: real; var i, fakt, z: integer): real;
begin
  stx := x - 1;  {x в степени}
  fakt := 1;  {значение знаменателя}
  lnt := 0;  {первый элемент в разложении}
  i := 1;  {счётчик}
  z := 1;  {знак элемента}
  while stx / fakt >= e do 
  begin{до тех пор, пока элемент в разложении не меньше точности}
    lnt := lnt + z * stx / fakt;
    inc(i);
    stx := stx * (x - 1);
    fakt := i;
    z := z * (-1);  {смена знака}
  end;
end;

procedure vivod(i: integer; x, lnt: real);{Display procedure}
begin
  Writeln('Количество элементов в разложении = ', i);
  Writeln('Значение ln(', x:6:6, ')= ', lnt:6:6);
  Writeln('Значение компьютера: ', ln(x):6:6);
end;

var
  x, stx, lnt, e: real;
  i, fakt, z: integer;

begin
  vvod(x, e);
  obrobotka(x, stx, lnt, i, fakt, z);
  vivod(i, x, lnt);
  Readln;
end.
Genzal вне форума Ответить с цитированием
Старый 15.04.2018, 12:33   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Genzal Посмотреть сообщение
я походу не правильно сделал рекурсию
А где тут рекурсия?

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 15.04.2018 в 12:39.
min@y™ вне форума Ответить с цитированием
Старый 15.04.2018, 15:04   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код верный, только точность надо указывать получше - побольше нулей после запятой
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ не правильно считает формулу pachan Помощь студентам 4 21.01.2017 20:46
Не правильно считает Иван12354 Общие вопросы C/C++ 3 01.06.2014 12:33
по ключам не правильно считает ) Black_Wolf Общие вопросы Delphi 2 23.12.2012 19:44
не правильно считает byMary Помощь студентам 4 08.12.2011 22:00
считает не правильно rapgamer Помощь студентам 3 15.09.2010 14:23