Прошу помочь. Необходимо выполнить при помощи языка программирования Pascal: Не используя...

0 голосов
47 просмотров

Прошу помочь. Необходимо выполнить при помощи языка программирования Pascal:

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

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


image

Информатика (15 баллов) | 47 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Версия программы с использованием только базового функционала языка.
Проверил с помощью введенных значений из программы Эникей.

Листинг и скриншот результата в приложениях.


image
(10.8k баллов)
0 голосов
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var (x,eps):=ReadReal2('Введите аргумент и точность:');
  var (i,s,px,fn,x2):=(1,0.0,x,1.0,x*x);
  var t:real;
  repeat
    t:=px/fn; i+=1; px*=x2; fn*=(2*i-1)*(2*i-2); s+=t
  until Abs(t)<=eps;<br>  Writeln(s:0:15,' - расчетное значение');
  Writeln(Sinh(x):0:15,' - вычислено функцией Sinh(x)')
end.

Примеры
Введите аргумент и точность: 1.543 1e-8
2.232433065790520 - расчетное значение
2.232433065795030 - вычислено функцией Sinh(x)

Введите аргумент и точность:1 .543 1e-15
2.232433065795030 - расчетное значение
2.232433065795030 - вычислено функцией Sinh(x)

Введите аргумент и точность: -12.6 1e-7
-148279.282647414000000 - расчетное значение
-148279.282647415000000 - вычислено функцией Sinh(x)
(150k баллов)
0

А эту версию - в копилку :)