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

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

Задать свой вопрос
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(абс(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(абс(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.3510), но если делать много вычислений, оплошности могут скапливаться.
Вычисленное с более высочайшей точностью (и округлое до такой же, как в паскале разрядности) значение y одинаково -0.162831822729052, т.е. "современное" решение оказывается еще и на один порядок поточнее. За счет чего? За счет убавления ошибок при наименьшем количестве вычислений - их уменьшили функции power  и log10.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт