Статические структуры данных
V. Структуры и организация данных
Данные предшествуют алгоритму, поскольку прежде, чем выполнять какие-либо операции, необходимо иметь объекты, к которым они применяются; представляют собой абстракции реальных объектов, и их предпочтительно рассматривать как некоторые абстрактные образования со структурами, не обязательно предусмотренными в общераспространенных языках программирования. В процессе создания программы, по мере уточнения самого алгоритма, представление данных конкретизируется и согласуется с ограничениями, которые накладываются данной системой программирования.
Простые переменные представляют собой данные простых (базовых) типов.
Переменные сложных типов отличаются от простых переменных тем, что имеют более одного компонента.
Структура данных – это некоторая агрегация данных, представленных переменными, т. е. совокупность физически и логически взаимосвязанных данных. Физической взаимосвязью переменных являются типы данных, а логической взаимосвязью является алгоритм.
Фундаментальная (статическая) структура данных – это набор элементов базового представления данных, из которых строятся более сложные структуры, т. е. это – совокупность фиксированного количества данных постоянной размерности с неизменным характером связей между ними.
Переменные статических структур могут изменять только свое значение, а сама структура и множество допустимых значений остаются неизменными, поэтому размер памяти, занимаемый такими переменными, остается постоянным.
К статическим структурам данных в PASCALотносятся массивы, записи, множества, которые являются базовыми, поскольку из них можно образовывать более сложные структуры.
Примером агрегации переменных является массив, который представляет собой упорядоченный набор данных одинакового типа и относится к регулярному типуданных.
Массивданных – это упорядоченная последовательность данных одного и того же типа, имеющая общее имя; доступ к элементам массива организуется при помощи индексов, которые могут быть любого порядкового типа и которые являются порядковыми номерами элементов в последовательности.
Массив как статическая структура обладает следующими свойствами:
· имеет описание, и обращение к ней возможно по имени;
· память под нее выделяется на этапе компиляции;
· объем памяти фиксирован и не меняется в процессе выполнения программы.
Массивы могут быть одномерными и многомерными.
Одномерный массив – это массив, для получения доступа к элементам которого достаточно одной индексной переменной. Математическим представлением одномерного массива является вектор.
Объявление типа:
TYPE <имя типа> = ARRAY[<список индексных типов>] OF <тип данных>;
Объявление переменной:
VAR <имя массива>: ARRAY[<список индексных типов>] OF <тип данных>;
Обычно в качестве индексного типа используется тип диапазон, в котором задаются границы изменения индексов: [<нижний_индекс>..<верхний_индекс>].
Многомерный массив – это массив, для получения доступа к элементам которого требуется более одной индексной переменной. Математическим представлением многомерного массива является матрица. Частным случаем многомерного массива является двумерный массив, математическим представлением которого является двумерная матрица.
Объявление типа:
TYPE <имя_типа>=ARRAY[<нижний_индекс1>..<верхний_индекс1>,
<нижний_индекс2>..<верхний_индекс2>] OF <тип_данных>;
Объявление переменной:
VAR <имя_массива>:ARRAY[<нижний_индекс1>..<верхний_индекс1>,
<нижний_индекс2>..<верхний_индекс2>] OF <тип_данных>;