Label 1, 5, 25, 100, metka, beta7;

РАЗДЕЛ ОПИСАНИЯ КОНСТАНТ

В Turbo Pascal описываются все именованные константы, значения которых в ходе выполнения программы постоянны.

Для описания констант используется ключевое слово CONST, имя константы, знак = равенства и значение константы:

Const < имя 1> = < значение 1>;

< имя 2> = < значение 2>;

. . . . . . . . . . . . . . . . . . . . . . .

< имя N> = < значение N>;

Допускается использовать константные выражения, состоящие из констант описанных ранее, в правой части описания констант. В константных выражениях разрешается использовать стандартные функции.

Пример описания констант:

const A=‘студент’; Sbol=true; revu=9.82; T_k=273;

РАЗДЕЛ ОПИСАНИЯ ТИПОВ

В разделе описания типов программист с целью упрощения программы может задавать свои нестандартные типы, явно описываемые в программе, сформированные на основе определенных правил и с использованием стандартных типов. Раздел описания типов начинается с зарезервированного слова Type, за которым следуют одно или несколько определений типов, разделенных точкой с запятой “ ; “.

Общая форма описания новых типов:

TYPE <имя типа1>:<определение типа1>;

<имя типа2>:<определение типа2>;

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

<имя типа N>:<определение типа N>;

ТИП “ПЕРЕЧИСЛЕНИЕ”

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

Формат описания типа “ПЕРЕЧИСЛЕНИЕ”:

TYPE <имя типа> = (< знач1>,<знач2>, ... ,<значN>);

В основе типа перечисления лежит идея дать программисту возможность обращаться с элементами данных, используя их названия. Описание типа “перечисление” вводит упорядочение его значений, считается, что нумерация значений в типе начинается с нуля. В двух разных перечислениях не должно быть одного общего элемента. Значения перечисляемого типа нельзя вводить и выводить непосредственно операторами Read и Write.

Пример: type animals = (cat, dog, horse, cow);

month = ( january, februaty, march, april, may, june, july, august, september, october, november, december);

ТИП “ДИАПАЗОН”

Интервальный тип позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограмму проверки, определяющие, остается ли значение переменной внутри установленного для нее диапазона значений.

Формат описания типа “диапазон” имеет вид:

TYPE <имя типа> = Min . . Max;

Здесь Min , Max - константы, определяющие левую и правую границы значений, которые могут принимать переменные типа “диапазон”. Тип констант Min , Max называется базовым относительно типа “диапазон”. Базовый тип должен принадлежать одному из стандартных типов, кроме вещественного (real - недопустим). Значение первой константы базисного типа должно быть меньше второй.

Пример: type days = 1..31; temperature = 1..100;

ТИП “МАССИВ”

Массив - это упорядоченная совокупность однотипных элементов. Тип “массив” вводится при помощи ключевого слова ARRAY:

TYPE

<имя типа> = array[1..n,1..m, . . . ,1..k] of <тип элементов>;

здесьn, m, k - размерность ( число индексов) массива. В Turbo Pascal размерность массивов не ограничена.

Пример: type vector = array[1..50] of real;

massiv = array[1..20,1..25] of string;

nomer = array[1..100] of integer;

datau = array[1..10,1..20,1..30] of char;

ТИП “СТРОКА”

Существует стандартный тип “строка” STRING во многом похожий на тип массивов символов.

Строка - это последовательность символов кодовой таблицы ПЭВМ. При использовании в выражениях строка заключается в апострофы. количество символов в строке ( длина строки) может динамически меняться от 0 до 255 символов. Для определения данных строкового типа используется служебное слово string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.

TYPE

<имя типа>=string[< максимальная длина строка];

 

Пример: type name = string[30];

phone = string[ 7];

Тип “Запись”

Запись - это совокупность элементов различных типов. Структурированный тип данных запись объявляется с помощью служебного слова RECORD.

Формат:

Type <имя типа> = record

<имя поля1>:<тип поля1>;

<имя поля2>:<тип поля2>;

. . . . . . . . . . . . . . . . . . . . . . .

<имя поля n>:<тип поля n>;

<вариантная часть>;

End;

Здесь вариантная часть - это конструкция следующего типа:

CASE <селектор> of

<знач.1>:(<имя поля1>:<тип поля1>, . . . , <имя поля n>:<тип поляn>,);

<знач.2>:(<имя поля1>:<тип поля1>, . . . , <имя поля n>:<тип поляn>,);

<знач.m>:(<имя поля1>:<тип поля1>, . . . , <имя поля n>:<тип поляn>,);

Индивидуальные элементы данных образующих запись, называются полями или компонентами записи. Компонента записи находится по имени записи и имени поля разделенной точкой.

Тип “Множество”

Множество - это произвольный набор объектов произвольной природы. Множества не упорядочены. Количество элементов множества может меняться в отличии от записей и массивов.

Описание типа “множество” осуществляется с использованием служебное словосочетание SET OF ( множество из . . .)

Формат:

TYPE <имя> = SET OF <базисный тип >;

TYPE <имя> = SET OF <min> . . . <max>; { диапазон}

TYPE <имя> = SET OF (< знач1>,<знач2>, ... ,<значN>); {перечисление}

При определении множества существуют следующие ограничения:

¾ базисный тип может быть любой простой тип, за исключением вещественного real;

¾ максимальное число символов 256;

¾ значения элементов из базисного типа integer должны принадлежать множеству 0 ... 255;

Множества вычисляются через выражения над множествами, состоящих из констант, переменных и операций. Константы из множеств - это подмножества некоторых множеств. В выражениях на языке Turbo Pascal значения элементов множества указываются в квадратных скобках: [ x, y ], [ x . . y ], [ ]. Если множество не имеет элементов, то оно называется пустым и обозначается [ ].

Существуют следующие операции над множествами:

*пересечение +объединение - разность

=равенство <> неравенство IN принадлежность

<= меньше или равно >= больше или равно