Тип Integer используется для хранения целых величин в случае, если вас не заботит, каково их минимальное и максимальное значение - компилятор Ada сам определит, какой диапазон является наиболее подходящим для вашего компьютера. Ada гарантирует, что тип Integer может хранить числа от -32767 до 32767 включительно, хотя чаще всего тип Integer имеет более широкий диапазон. Другими словами, величина целого типа занимает, как минимум, 16 бит, но точное их количество зависит от компилятора и компьютера.
Если вам не безразличен диапазон величины, то использовать тип Integer не совсем верно. На самом деле, как мы увидим далее, в Аде существует богатейший набор типов и механизмов типизации для того, чтобы реализовать именно то, что необходимо. Множество реальных программ на Аде не слишком часто используют тип Integer, но рассмотрение того, какие именно типы они используют, отложим до следующего урока.
В Ada можно использовать обычные операции с целыми числами: + означает сложение, - означает вычитание, * - умножение, / - деление (целочисленное) и ** - возведение в степень. Используются обычные правила математических преобразований, т.е. в первую очередь выполняется возведение в степень, затем - умножение и деление, затем - сложение и вычитание. Скобки используются для изменения порядка выполнения действий и для упрощения понимания выражений. Таким образом, ``2+3*5'' равно 17, а ``(2+3)*5'' равно 25.
Ключевое различие между Ada и некоторыми другими языками (такими, как С и С++) состоит в том, что происходит в случае, если разбор выражения не может быть завершен. Если сделана потытка деления на ноль, или результат преобразования выражения слишком велик, Ada возбудит исключение. Исключения могут быть обработаны, в противоположном случае программа завершит работу (после вывода определенной отладочной информации, которая помогает локализировать ошибку и определить ее тип). Это означает, что вместо того, чтобы "молча" давать неверные ответы, программа на Ada выполнит останов, если вычисления не могут быть доведены до конца. Это упрощает отладку.
Для типа Integer доступны обычные операции сравнения (возвращающие значения "true" (истина) или "false" (ложь)): '=' означает "равно", '>' означает "больше, чем", '>=' означает "больше или равно, чем" и т.д. Операцию "не равно" записывают '/=' (что похоже на математический знак неравенства). Предполагается, что операции сравнения выполняются после арифметических операций, таким образом ``3 + 4 > 6'' преобразуется в ``7 > 6'' и принимает значение "true".
В отличие от С и С++, но подобно Паскалю и многим другим языкам, переменные Integer и логические переменные "true" или "false" - не одно и то же. Ноль и "false" - это разные вещи (применительно к Ada они имеют разные типы). Если необходимо определить равенство числа нулю, то его сравнивают (используя знак '=') с нулем. Это способствует обнаружению ошибок на ранних стадиях.
Какое из следующих выважений является истинным?
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 4 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s4s1.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк