СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ
В языке PASCAL 7.0 используются следующие структурированные типы: ■ массив; ■ запись; ■ множество; ■ файл. Массив. Он представляет собой заранее известное количество однотипных компонентов, снабженных индексами. Массив может быть одномерным или многомерным. Чтобы задать тип-массив, необходимо использовать зарезервированное слово ARRAY, тип индексов массива и тип компонентов массива. Например, тип одномерного массива целых чисел может быть задан следующим образом: TYPE MAS = ARRAY[1..1O] OF INTEGER; VAR Ml: MAS; Тот же самый тип массива может быть задан и приопределении соответствующих переменных: VAR М1: ARRAY[1..1O] OF INTEGER; Размерность массива может быть любой, компоненты тоже, только тип индексов должен быть обязательно порядковый и не Longint. В большинстве случаев при задании размеров массивов используются диапазоны. В PASCAL 7.0 тип двумерных массивов описывается так же, как и одномерных. Различие состоит в том, что вы должны указать диапазон для двух индексов.массива - положение каждого элемента массива A [I, J] определяется значением строки I и столбца J. Например, описание двумерного массива натуральных чисел размера N х М может быть задано следующей строкой: VAR MAS: ARRAY[1..N, 1..M] OF INTEGER; Особым типом одномерных массивов являются строки. В PASCAL 7.0 последовательность символов, заключенная в апострофы, называется строкой и описывается типом STRING: 'ASEWQ', 'zxczxczxc', ' хи-хи' и т. д. Строки, состоящие всего из одного символа, называются символьными константами. У типа-строки может быть указан размер (от 1 до 255). Для строк выполняются операции сравнения (>,> =,<,<=) и конкатинации (+), например: 'viv' < 'viva', 'мото' + 'цикл' = 'мотоцикл'. По сути строка длины К представляет собой массив из К+1 символьных переменных, где нулевой элемент хранит значение длины строки: STRING[K] = ARRAY[0..K] OF CHAR. Для строк часто используется функция длины LENGTH(STR). Вверсии 7.0 введен еще один тип строки - ASCIIZ -строка. В отличие от прочих строк каждая из них оканчивается на 0 и длина ее не ограничена. Например, задать тип ASCIIZ-строки можно следующим образом: VAR STR: PCHAR; Запись. Она включает в себя несколько полей, тип которых может отличаться друг от друга. Для задания записи используется зарезервированное слово RECORD, затем следует задание типов полей с использованием двоеточия. Завершается каждое поле точкой с запятой. Конец описания записи определяется словом END. Например, для того, чтобы составить записи, соответствующие имени, фамилии и году рождения человека, можно использовать следующее задание: TYPE HUMAN = RECORD NAME: STRING; SURNAME: STRING; DATA: INTEGER END; Доступ к полям записи осуществляется через имя переменной и имя поля, записываемого через точку:
|