Всё для программиста

Основы Ada 95
Индекс материала
Основы Ada 95
Текстовый и числовой ввод-вывод
Процедуры ввода
Основные операторы
Операторы цикла
Основные программные модули
Процедуры
Пакеты
Производные типы
Подтипы
Расширяемые типы
Все страницы

Основные средства языка программирования Ada 95

 

Ada 95 — современный язык программирования, имеющий максимальный набор средств описания данных и действий. Его средства обеспечивают все технологические потребности профессионального.программирования. Конструкции языка поддерживают как традиционный, императивный стиль программирования, так и объектно-ориентированный стиль, позволяют создавать как последовательные, так и параллельные процессы.

Типы и объекты данных

 

Тип данных задает набор возможных значений и набор операций, допустимых над этими значениями. Все типы данных Ada 95 разделяют на две большие группы: элементарные и составные. Данные элементарного типа имеют значения, которые логически неразделимы. Данные составного типа имеют значения, которые составлены из значений компонентов.

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

Составные типы данных подразделяются на комбинированные типы (записи), расширения типа запись, регулярные типы (массивы), задачные типы, защищенные типы. Задачные и защищенные типы используются при программировании параллельных процессов.

Описание типа приводится в декларативной части программы. Общая форма объявления типа имеет вид

type <ИмяТипа> is <ОпределениеТипа>;

где в угловых скобках указывается название, которое в реальной программе заменяется конкретной конструкцией (именем, выражением, оператором).

Приведем примеры объявления типов:

q       целый знаковый тип

type Temperature is range -70..70:

q       модульный целый тип

type Time_of_Day is mod 86400;

type Day_of_Month is mod 32;

q       вещественный тип с плавающей точкой — задает значения, представляемые восемью десятичными цифрами

type Distance is digits 8;

q       двоичный вещественный тип с фиксированной точкой — задает значения с погрешностью 0,001 в диапазоне от 0.00 до 200.00

type Price is delta 0.001 range 0.00 ..200.00;

q       десятичный вещественный тип с фиксированной точкой — задает значения, представляемые восемью десятичными цифрами с погрешностью 0,1 (то есть значения до 9999999,9)

type Miles is delta 0.1 digits 8;

q       перечисляемый тип

type Day is ( mon. tue. wed, thu. fri. sat. sun );

type Colour is ( red. blue, green, black );

q       тип записи

type Date_Type is

record

Day : Day_Type;

Month : Month_Day;

Year : Year_Type;

end record;

q       тип массива

type Week is array ( 1 .. 7 ) of Day:

Некоторые типы в языке предопределены. Предопределенные типы не нужно объявлять в декларативной части программы. К ним относятся:

q       целый тип Integer с диапазоном значений -32 767...+32 768;

q       вещественный тип с плавающей точкой Float;

q       перечисляемые типы Boolean (логический), Character (символьный);

q       регулярный тип String (задает массивы из элементов символьного типа).

После того как тип объявлен, можно объявлять экземпляры этого типа. Экземпляры типов называются объектами. Объекты содержат значения. Значения объектов-переменных могут изменяться, значения объектов-констант постоянны.

Общая форма объявления объекта имеет вид

<ИмяОбъекта> : [constant] <ИмяТипа> [:=НачальноеЗначение];

где в квадратных скобках указаны необязательные элементы, а НачальноеЗначение — некоторое выражение соответствующего типа.

Примеры объявлений объектов-переменных:

q       символьный объект с начальным значением

Symbol : Character :- 'A';

ПРИМЕЧАНИЕ

Значение символьного объекта записывается в апострофах.

 

q       строковый объект с начальным значением

Name : String ( 1 .. 9 ) := "Aleksandr";

ПРИМЕЧАНИЕ

Значение строкового объекта записывается в кавычках.

 

q       объект перечисляемого типа

Car_Colour : Colour := red;

q       объект модульного типа

Today : Day_of_Month := 31;

ПРИМЕЧАНИЕ

Значение этого объекта может изменяться в диапазоне от 0 до 31. К модульному типу применяется модульная арифметика, поэтому после оператора Today := Today + 1 объект Today получит значение 0.

 

Примеры объявлений объектов-констант:

Time : constant Time_of_Day := 60;

Best_Colour : constant Colour := blue;

Отметим, что если константа является именованным числом (целого и вещественного типа), то имя типа можно не указывать:

Minute : constant := 60;

Hour : constant := 60 * Minute;