Вычислить гиперболический косинус по формуле - Turbo Pascal (29475)

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

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

Найти значение функции: y = cℎ(x) -x, если x>0 или y=cℎ(2x − 1) + х^2 , если x ≤ 0.Написать подпрограмму, вычисляющую гиперболический косинус по формуле: ch(x) = 1 + х^2 /2! + х^4 /4! + х^6 /6! + ⋯ + х^2n/ (2n)! + ⋯ с точностью 0.0001. нужно из функции сделать процедуру
Листинг программы
  1. const eps=0.0001;
  2. function pow(x:real;y:longint):real;
  3. var f:real;
  4. i:longint;
  5. begin
  6. f:=1;
  7. for i:=1 to y do f:=f*x;
  8. pow:=f;
  9. end;
  10. function fact(x:longint):longint;
  11. var i,f:longint;
  12. begin
  13. f:=1;
  14. for i:=1 to x do f:=f*i;
  15. fact:=f;
  16. end;
  17. function ch(x:real):real;
  18. var n:longint;
  19. t,s:real;
  20. begin
  21. s:=0;
  22. t:=1;
  23. n:=0;
  24. while t>=eps do begin
  25. t:=pow(x,2*n)/fact(2*n);
  26. s:=s+t;
  27. n:=n+1;
  28. end;
  29. ch:=s;
  30. end;
  31. var x,y:real;
  32. begin
  33. readln(x);
  34. if x>0 then y:=ch(x)-x
  35. else y:=ch(2*x-1)+sqr(x);
  36. writeln(y);
  37. end.

Решение задачи: «Вычислить гиперболический косинус по формуле»

textual
Листинг программы
  1. procedure ch(x:real;var s:real);
  2. var n:longint;//счетчик
  3.     t:real;//значение текущего члена ряда
  4. begin
  5. n:=0; //нулевой член
  6. t:=1; //=1
  7. s:=t; //начльная сумма=1
  8. while abs(t)>=eps do//пока модуль очередного члена больше точности
  9.  begin
  10.   n:=n+1;//следующий член
  11.   t:=t*x*x/(2*n)/(2*n-1); //домножаем предыдущий на x^2, делим на 2 очередных числа,
  12.                           // получаем х^2n/(2n)!
  13.   s:=s+t; //прибавляем к сумме
  14.  end;
  15. end;

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

  1. В процедуре ch объявлены три переменные: x, s и n.
  2. Переменная n инициализируется значением 0.
  3. Переменная t инициализируется значением 1.
  4. Переменная s инициализируется значением t.
  5. Затем в цикле while выполняется следующие действия:
    • n увеличивается на 1.
    • t умножается на x, возведенный в квадрат, и делится на 2n-1. Это дает значение следующего члена ряда.
    • Сумма s увеличивается на значение t.
  6. Цикл while продолжается до тех пор, пока модуль значения t не станет больше или равен eps, где eps - это значение точности.
  7. После завершения цикла while переменные n и t инициализируются новыми значениями.
  8. В конце процедуры значение переменной s возвращается.

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


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

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

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

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

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

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