Как сделать на языке паскаль y=lg|arctg(x)-sin(ax)| где x=10^a+cos(a+1) Очень важно помогите

Как сделать на языке паскаль y=lg|arctg(x)-sin(ax)| где x=10^a+cos(a+1) Очень важно помогите
Гость
Ответ(ы) на вопрос:
Гость
1. Современный паскаль // PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию! begin   var a:=ReadReal('a=');   var x:=power(10,a)+cos(a+1);   var y:=log10(abs(arctan(x)-sin(a*x)));   Writeln('x=',x,', y=',y) end. Пример a= 2.105 x=126.35097753811, y=-0.162831822729058 2. Типовой "школьный" паскаль (как не надо учить) program Vasya; var   a,x,y:real; begin   Write('a=');   Read(a);   x:=exp(a*ln(10))+cos(a+1);   y:=ln(abs(arctan(x)-sin(a*x)))/ln(10);   Writeln('x=',x,', y=',y) end. Пример a=2.105 x=126.35097753811, y=-0.162831822729023 3. Сравнение решений - "школьный" вариант длиннее. Больше текста - дольше писать, больше шансов сделать ошибку. - результат вычисления y различный. Разница составляет вроде немного - всего 0.000000000000035 (это 0.35×10⁻¹³), но если делать много вычислений, ошибки могут накапливаться. Вычисленное с более высокой точностью (и округленное до такой же, как в паскале разрядности) значение y равно -0.162831822729052, т.е. "современное" решение оказывается еще и на один порядок точнее. За счет чего? За счет уменьшения ошибок при меньшем количестве вычислений - их сократили функции power  и log10.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы