Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 217

В первом присваивании явно указано, что аргументы переводятся в дей­ствительную форму и, соответственно, выполняется деление действитель­ных чисел с действительным результатом. Затем этот результат переводится обратно в форму целого числа, при этом обычно он усекается отбрасыванием дробной части.

Операции, семантика которых состоит в переводе значения из одной формы в другую, называются приведениями. Операции приведения могут быть как явными (в таком случае практически во всех современных языках они имеют синтаксическую форму ТУРЕ(<выражение>), берущую начало из Алгола 68), так и неявными. Например, если у нас есть присваивание

где d— переменная типаdouble,х — типаfloat,п — типаint,то сначала целое п будет преобразовано в действительное одинарной точности, а затем результат умножения — в действительное число двойной точности. Таким образом, на абстрактносинтаксических структурах операторов должны по­являться еще и новые вершины — приведения значений к нужному типу.

Наряду с целочисленным делением вводится и операция взятия остатка, но она также может быть самым непоследовательным образом определена для различных комбинаций отрицательного делимого и отрицательного де­лителя. В С операция взятия остатка обозначается %, а в языке Pascal — mod.

Операция возведения в степень также практически везде, где она преду­смотрена, обозначается **, но ее интерпретация сильно зависит и от языка программирования, и от конкретной его реализации. Например, возведение действительного числа в целую степень в некоторых реализациях делается через умножение, а в других — показатель переводится в действительную форму и применяются стандартные функции ехр и log. Существовали да­же такие реализации, в которых возведение целого числа в целую степень делалось при помощи перевода аргументов в действительную форму, и, со­ответственно, вычисление (—1) * *п могло привести к ошибке. Этот пример показателен: стремление к универсализации не всегда благо. Так что воз­ведением в степень там, где эта операция предусмотрена, во избежание неприятностей лучше пользоваться лишь для целых чисел и для возведе­ния положительных действительных чисел в целую степень. В языках С и Pascalот операции возведения в степень просто отказались.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама