Вычислить гиперболический косинус по формуле - 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.
нужно из функции сделать процедуру
Листинг программы
- const eps=0.0001;
- function pow(x:real;y:longint):real;
- var f:real;
- i:longint;
- begin
- f:=1;
- for i:=1 to y do f:=f*x;
- pow:=f;
- end;
- function fact(x:longint):longint;
- var i,f:longint;
- begin
- f:=1;
- for i:=1 to x do f:=f*i;
- fact:=f;
- end;
- function ch(x:real):real;
- var n:longint;
- t,s:real;
- begin
- s:=0;
- t:=1;
- n:=0;
- while t>=eps do begin
- t:=pow(x,2*n)/fact(2*n);
- s:=s+t;
- n:=n+1;
- end;
- ch:=s;
- end;
- var x,y:real;
- begin
- readln(x);
- if x>0 then y:=ch(x)-x
- else y:=ch(2*x-1)+sqr(x);
- writeln(y);
- end.
Решение задачи: «Вычислить гиперболический косинус по формуле»
textual
Листинг программы
- procedure ch(x:real;var s:real);
- var n:longint;//счетчик
- t:real;//значение текущего члена ряда
- begin
- n:=0; //нулевой член
- t:=1; //=1
- s:=t; //начльная сумма=1
- while abs(t)>=eps do//пока модуль очередного члена больше точности
- begin
- n:=n+1;//следующий член
- t:=t*x*x/(2*n)/(2*n-1); //домножаем предыдущий на x^2, делим на 2 очередных числа,
- // получаем х^2n/(2n)!
- s:=s+t; //прибавляем к сумме
- end;
- end;
Объяснение кода листинга программы
- В процедуре ch объявлены три переменные: x, s и n.
- Переменная n инициализируется значением 0.
- Переменная t инициализируется значением 1.
- Переменная s инициализируется значением t.
- Затем в цикле while выполняется следующие действия:
- n увеличивается на 1.
- t умножается на x, возведенный в квадрат, и делится на 2n-1. Это дает значение следующего члена ряда.
- Сумма s увеличивается на значение t.
- Цикл while продолжается до тех пор, пока модуль значения t не станет больше или равен eps, где eps - это значение точности.
- После завершения цикла while переменные n и t инициализируются новыми значениями.
- В конце процедуры значение переменной s возвращается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д