Вычислить значение выражения - Turbo Pascal (29153)

Узнай цену своей работы

Формулировка задачи:

Помогите,уже второй день не могу найти ошибку(Не правильный ответ выдает
Листинг программы
  1. uses lnx;
  2. var x,len:real;
  3. begin
  4. write('Введите x>0: ');
  5. readln(x);
  6. if x>0 then begin
  7. len:=sum(x);
  8. writeln('ln(x)=' ,len:3:3);
  9. end
  10. else writeln('Введены неправильные данные');
  11. end.
Листинг программы
  1. Unit lnx;
  2. interface function sum(x:real):real;
  3. implementation
  4. function sum(x:real):real;
  5. const E=0.000001;
  6. var
  7. a,b:real;
  8. n:integer;
  9. begin
  10. n:=0;b:=0;
  11. repeat
  12. a:=power(-1,n)*power(x-1,2*n+1)/((2*n+1)*power(x+1,2*n+1));
  13. b:=b+a;
  14. n:=n+1;
  15. until abs(a)<E;
  16. sum:=3*b;
  17. end;
  18. end.

Решение задачи: «Вычислить значение выражения»

textual
Листинг программы
  1. unit lnx;
  2.  
  3. interface
  4.  
  5. function sum(x: real): real;
  6.  
  7. implementation
  8.  
  9. function sum(x: real): real;
  10. const
  11.   E = 0.000001;
  12. var
  13.   a, Ratio: real;
  14.   n: integer;
  15.   S: real;
  16. begin
  17.   n := 0;
  18.   Ratio := (x - 1) / (x + 1);
  19.   a := Ratio;
  20.   Ratio := sqr(Ratio);
  21.   S := a;
  22.   repeat
  23.     n := n + 1;
  24.     a := a * Ratio;
  25.     S := S + a / (2 * n + 1);
  26.   until abs(a) < E;
  27.   sum := 2 * S;
  28. end;
  29.  
  30. end.

Объяснение кода листинга программы

Код начинается с объявления единицы измерения данных в модуле lnx, а именно, что все переменные будут иметь тип real. Затем следует интерфейс, который содержит функцию sum с типом возвращаемого значения real. В реализации функции sum также используется тип real для всех переменных. Константа E установлена равной очень маленькому числу (0.000001), которое будет использоваться для определения, когда вычисление еще имеет смысл. Переменные a, Ratio и n инициализируются начальными значениями. Переменная Ratio вычисляется как (x-1)/(x+1), где x - это аргумент функции sum. Переменная a первоначально равна Ratio. Затем вычисляется квадрат переменной Ratio, и эта новая переменная называется Ratio. Переменная S инициализируется значением a. Затем начинается цикл повторений, который продолжается до тех пор, пока абсолютное значение переменной a не станет меньше константы E. В каждой итерации цикла переменная n увеличивается на 1, переменная a умножается на Ratio, а переменная S увеличивается на a, деленное на (2n+1). Когда abs(a) становится меньше E, цикл прекращается, и функция sum возвращает значение 2S. В итоге, значение выражения вычисляется как 2*S, где S - это значение, полученное в результате последнего итерационного шага цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут