Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САОД.doc
Скачиваний:
2
Добавлен:
24.09.2019
Размер:
384 Кб
Скачать

Вопрос 2) Массивы и их свойства.

Массив – это одно- или многомерная таблица данных одного типа. Каждая ячейка таблицы имеет свой индекс (в одномерном случае) или набор индексов (в многомерном). Массив называют структурой данных со случайным доступом, поскольку к любому элементу массива можно обратиться, просто указав его индексы, т.е. все элементы одинаково доступны в любой момент времени. Массив определяется, прежде всего, общим типом его элементов и их количеством. Количество элементов массива, в свою очередь, определяется количеством индексов и диапазоном их изменения. При описании переменной типа массив под каждый элемент выделяется фиксированный объем памяти, что и является главным недостатком этой структуры

Обьявление массива

IntArray : array[1..100] of Integer; // int[] numbers = { 1, 2, 3, 4, 5 };

a: array [1..2,1..2] of Integer;

В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов (подробнее). В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру.

Основные свойства массивов

Четыре основных принципа, определяющих свойства массивов: в массиве хранятся отдельные значения, которые называются элементами;

• все элементы массива должны быть одного типа; • все элементы массива сохраняются в памяти последовательно, и первый элемент имеет нулевое смещение адреса, т.е. нулевой индекс;

• имя массива является константой и содержит адрес первого элемента массива. Поскольку все элементы массива имеют одинаковый, заранее установленный размер, а имя массива содержит адрес первого его элемента, то нетрудно вычислить адрес любого другого элемента. Но при этом должен соблюдаться еще один принцип — строгой последовательности хранения в памяти всех элементов массива, от нулевого до последнего, причем первый элемент имеет наименьший адрес, а последний — наибольший. По принципу выделения памяти под массив массивы языка Object Pascal делятся на статические и динамические.

Память под статический массив выделяется при его создании (мы выделяем границы).

Динамический массив не имеет фиксированного размера или длины.

Вопрос 3) Записи

Более сложным типом является запись. Основное отличие записи заключается в том, что она может объединять элементы данных разных типов. Рассмотрим пример простейшей записи

Type

      Person = record

      Name: string;

      Address: string;

      Index: longint;

end;

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

Var

     Persons : array[1..30] of person;

Следует заметить, что в Turbo-pascal эти два описания можно объединить в виде описания так называемого массива записей

Var

     Persons : array[1..30] of record

     Name: string;

     Address: string;

     Index: longint;

end;

Доступ к полям отдельной записи осуществляется через имя переменной и имя поля.

Persons[1] . Name:=▓Иванов▓;

Persons[1] . Adress:='город Санкт-Петербург ┘▓;

Persons[2] . Name:=▓Петров▓;

Persons[2] . Adress:='город Москва ┘▓;

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

Type

        Person = record

                  Name: string;

                  Address: string;

                  Index: Longint;

        end;

Var

        Person1: person;

Begin

        Person1.index:=190000;