Переводим число из двоичной системы в десятичную: 10(2) = 1 * 2^1 + 0 * 2^0 = 2 + 0 = 2
10(2) + 10(10) = 2(10) + 10(10) = 12(10)
Чтобы перевести число из системы счисления с основанием b, можно представить его в виде суммы: Всё точно так же, как и в десятичной системе, только меняем 10 на основание системы счисления, например, Другой избежать большого количества возведений в степень и записать, например, так: Берем первую цифру – умножаем на b, прибавляем вторую цифру – умножаем на b, прибавляем третью цифру – ... – умножаем на b, прибавляем последнюю цифру.
Чтобы перевести из десятичной в систему с основанием b, нужно по сути сделать в обратном порядке то, что написано выше: либо восстановить разложение в сумму, либо выписать остатки от деления на b в обратном порядке. Например, переведем 27(4) в десятичную систему счисления: 27(4) = 1 * 16 + 2 * 4 + 3 * 1 = 1 * 4^2 + 2 * 4^1 + 3 * 4^0 = 123(4)
// 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
Оформи подписку