Не используя стандартные функции (за исключением ABS), вычислить с точностью e>0 - Pascal

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

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

Считать, что заданная точность достигнута, если: очередное слагаемое по модулю меньше e(эпсилон).

Решение задачи: «Не используя стандартные функции (за исключением ABS), вычислить с точностью e>0»

textual
Листинг программы
var x,e,s,t:real;
    n:integer;
begin
clrscr;
write('x=');
readln(x); //x любое число
repeat
write('0<e<1 e='); //точность
readln(e);
until(e>0)and(e<1);
n:=1;
t:=x;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=t*x*x/(2*n-2)/(2*n-1);
  s:=s+t;
 end;
writeln('s=',s:0:4);
write('sh(x)=',(exp(x)-exp(-x))/2:0:4);
readln
end.

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

  1. Объявлены переменные: x, e, s, t (реальные числа), n (целое число).
  2. Очистка экрана и ввод значения переменной x.
  3. Ввод значения переменной e с точностью e>0 и e<1.
  4. Инициализация счетчика n и начального значения переменной s.
  5. Начальное значение переменной t равно s.
  6. Цикл while с условием abs(t)>e выполняется до тех пор, пока абсолютное значение t больше заданной точности e.
  7. Внутри цикла происходит обновление значения переменной n, а затем t вычисляется по формуле t=txx/(2n-2)/(2n-1).
  8. Значение переменной s обновляется путем добавления значения t.
  9. После выхода из цикла while выводится значение переменной s с точностью до 4 знаков после запятой.
  10. Вычисляется значение переменной sh(x) по формуле sh(x)=(exp(x)-exp(-x))/2 и выводится с точностью до 4 знаков после запятой.
  11. Программа ожидает ввода данных с помощью функции readln.

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

14   голосов , оценка 3.786 из 5
Похожие ответы