olga14081
21.05.2022 14:24

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
2006anna1
05.10.2020 01:46
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.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота