Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости
Новое

Почему важен приоритет операторов

Почему важен приоритет операторовВопрос приоритета операторов не такой тривиальный, как может показаться на первый взгляд. Возьмем для примера обычную программу Калькулятор. Кажется, будто эта программа по-разному работает в обычном и научном режиме. Если в меню Вид выбирается стандартный режим, результатом выражения 5+4*3 будет 27, а если научный — 17. Обычный (не компьютерный) калькулятор в любом случае выдаст один и тот же ответ — 27. По историческим причинам (а именно из-за дороговизны памяти) первые калькуляторы имели всего два регистра памяти (для вводимых чисел). Таким образом, в память помещалось два числа, после чего с ними выполнялась операция, чтобы можно было освободить место для нового числа. В приведенном примере порядок инструкций был бы следующим. Число 5 помещалось бы в первый регистр, а 4 во второй. После этого выполнялась бы операция сложения, результат которой помещался бы в первый регистр. После этого число 3 помещалось бы во второй регистр и выполнялась бы операция умножения. Следовательно, результат вычисляется после каждого нажатия клавиши оператора. По мере того как аппаратура дешевела, стали возможными использование более двух регистров и реализация существовавших столетиями в математике правил приоритета операций. Однако на тот момент уже насчитывалось огромное количество старых калькуляторов, выполняющих вычисления “простым” путем. Производители калькуляторов побоялись потерять рынок, и потому решили выпускать два типа калькуляторов: для “обычных” людей и для “ученых”. Впоследствии эта методика была перенесена и в программные калькуляторы. Таким образом, порядок унарных операторов не повлиял на результат — в обоих случаях он оказался отрицательным.