Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_лекций.doc
Скачиваний:
18
Добавлен:
26.04.2019
Размер:
1.11 Mб
Скачать

7. Массивы переменных

Эффективность автомата-вычислителя ЭВМ проявляется только при решении задач, в которых требуется многократное повторение одних и тех же операций, проводимых над большим количеством однотипных исходных данных.

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

Опр. Конструктивный метод образования новых типов информационных объектов основан на упорядоченном объединении (плотном размещении «один за другим») некоторого количества, стандартных или ранее введенных, информационных объектов в единое целое, с наделением новообразованных структур уникальным именем.

Опр. Класс информационных объектов ARRAY (массив) образуется путем упорядоченного объединения нескольких однотипных информационных объектов в единое целое.

Определяющие структурные характеристики информационных объектов класса ARRAY:

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

  2. упорядоченность объединяемых элементов, т.е. каждому элементу присущ (может быть автоматически вычислен) порядковый номер,

  3. количество объединяемых элементов и плотность их размещения: позволяют автоматически вычислять:

  • необходимые размеры оперативной памяти для всего объекта,

- адрес каждого из элементов сложно структурированного объекта.

Каждый информационный объект класса ARRAY наделяется уникальным именем (идентификатором), которое является адресом первого байта первого элемента объекта.

Имена отдельных элементов, объединенных в массив, являются составными и включают: собственно имя массива и порядковый номер (индекс) элемента в этом массиве.

Математические аналоги вводимого понятия массив: последовательности, таблицы, векторы, матрицы.

Для использования переменных класса ARRAY необходимо предварительно сообщить программе-транслятору – как устроены эти информационные объекты, т.е. дать описание их структуры.

Опр. Оператор TYPE описывает структуру ново образуемых объектов и присваивает этой структуре уникальное имя (идентификатор).

Синтаксис описательного оператора TYPE для объектов класса ARRAY:

TYPE Имя1 = ARRAY[N1..N2] OF Имя2 ;

где:

TYPE - ключевое слово, за которым обязательно следует один или несколько пробелов: символов - разделителей,

Имя1 - имя (идентификатор), которым будет называться тип (структура) создаваемых программистом объектов обработки,

= служебный символ-разделитель (избыточный синтаксис языка Pascal), за которым желателен разделитель-пробел,

ARRAY- служебное слово - название класса ново образуемых переменных,

[N1..N2] – в квадратных скобках, через символы-разделители (две точки), указываются вещественные константы, задающие интервал изменения индексов, т.е. числовых имен, которые присваиваются отдельным элементам массива, общее количество элементарных объектов обработки объединяемых в единое целое равно (N2 - N1 +1),

OF – служебное слово-разделитель (избыточный синтаксис языка Pascal), за которым желательно ставить разделитель-пробел,

Имя2 - стандартное или ранее описанное имя (название) типа элементарного объекта обработки.

Примеры:

Type Tvec= array[1..4] of real;

Type Tmatr= array[0..7] of Tvec;

Звуковая транскрипция этих операторов:

  • назвать именем Tvec, новую структуру информационных объектов, образованную объединением в единое целое четырех информационных объектов стандартного типа REAL,

  • назвать именем Tmatr, новый тип объектов обработки, образованный объединением в единое целое восьми ранее описанных элементов типа Tvec.

Для описания переменных нового типа используется стандартный оператор Var.

Пример: Var PP, sss: Tmatr;

V, V1: Tvec;

Стандартный синтаксис языка Pascal включает только две операции для обработки сложно структурированных информационных объектов это:

  • операция пересылки, т.е. побитного копирования содержимого одной переменной в другую однотипную ей переменную, например:

PP:=sss; или v1:=v;

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

Var b: boolean; . . . . b:= PP = sss;

Все прочие содержательные операции обработки: арифметика, ввод-вывод, сравнение больше/меньше и т.д., применяются только к конкретным элементам сложно структурированных переменных.

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

Примеры:

Var k: integer; a, b : real;

. . . . . . .

a:=V[2]+b; {сложить число из второго элемента массива V с числом b,

результат поместить в переменную a}

k:=1;

V[k*k]:=b; {вычислить индекс, т.е. номер элемента массива V (он будет

равен 1) и внести в соответствующий элемент массива

значение из переменной b}

V[2]:= V[k+3] + V[k]; {сложить числа, находящиеся в 4-ом и 1-ом

элементах массива V и поместить результат во

второй элемент этого же массива}