Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3.docx
Скачиваний:
3
Добавлен:
21.03.2015
Размер:
83.52 Кб
Скачать

Пользовательский тип – массив

В программе можно определить тип массива, для того чтобы потом его использовать для определения переменных типа массива.

Пример:

Type

Arr = array[1..20] of integer; {определили тип массива целых чисел

содержащего 20 элементов}

Var

A,B: Arr; {A и B – массивы целых чисел, содержащие по 20

элементов}

Дальше с массивами A и B можно работать как с обычными массивами:

A[3]:=2; B[4]:=A[3]; и т.д.

Кроме типа массива в программе можно определить и специальный тип для индексов. Этот тип должен быть интервальным.

Пример:

Type

IndexEl = 1 .. 20; {тип индекса элемента}

Arr = array[IndexEl] of integer; {тип массива целых чисел

содержащего 20 элементов}

Var

A,B: Arr; {A и B – массивы целых чисел, содержащие по 20

элементов}

i,j: IndexEl; {переменные, используемые для указания

индекса элемента }

Одномерные и n - мерные массивы

Все массивы, которые приведены выше, называются одномерными – у элементов одномерных массивов в квадратных скобках указывается только один индекс (у таких массивов только одно измерение).

Кроме одномерных массивов могут быть и двумерные, и трехмерные, и прочие n-мерные массивы. «Мерность» массивов определяется количеством индексов, указываемых в квадратных скобках, для того чтобы определить элемент массива.

Пример:

A[7] – A – одномерный массив

S[2,-3] – S – двумерный массив

W[1,0,0] – W – трехмерный массив

Z[-1,3,4,3,0] – Z – пятимерный массив

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

Двумерные массивы

Одномерный массив можно представить в виде строки. Например, массив целых чисел можно представить строкой целых чисел, например такой: 3 2 4 1 3. Двумерный массив можно представить в виде прямоугольной таблицы, например такой:

2 3 4 5

0 4 8 3

7 1 5 3

Чтобы определить такой массив, в программе надо написать:

Var

A: array[1..3,1..4] of integer;

Здесь в массиве A первый интервал индексов - 1..3 – обозначает индекс номера строки, а второй интервал индексов – 1..4 – обозначает индекс номера столбца. Для обращения к элементу двумерного массива необходимо в квадратных скобках сначала указать номер строки, а затем номер столбца.

Например:

Writeln(A[2,3]); {будет выведено число 8}

Writeln(A[3,1]); {будет выведено число 7}

Writeln(A[1,1]); {будет выведено число 2}

Замечание: в данных методических указаниях будут рассматриваться алгоритмы обработки только одномерных массивов.

Основные алгоритмы обработки одномерных массивов

Алгоритмы обработки массивов включают в себя, как правило, последовательную обработку каждого из элементов массива. Такая последовательная обработка называется сканированием массива, и для ее реализации удобнее всего использовать цикл for. Например, фрагмент программы, выполняющий подсчет суммы элементов массива имеет такой вид:

S:=0; {Значение суммы S обнуляем}

For i:=1 to N do {проходим по всем N элементам массива}

S:=S+a[i]; {прибавляя к сумме S значение i-го элемента}

По сложившейся традиции, переменная, используемая в качестве счетчика цикла сканирования элементов массива, называется i. Если в программе требуется не одна, а две переменные-счетчики, то им дают имена i и j. Если же требуется более двух переменных-счетчиков, то первым двум дают имена i и j, а остальным, как правило, дают тоже однобуквенные имена (например k,l,z и т.д.). Все эти переменные должны иметь тип, совместимый с типом индекса элемента массива. Всего же при работе с одномерными массивами нужны:

Константы:

Const

maxN = 20; {максимальное количество элементов

в массиве}

Типы:

Type

IndexEl = 1 .. maxN; {тип индекса элемента}

arrInt = array[IndexEl] of integer; {тип массива целых чисел}

Переменные:

Var

A:arrInt; {обрабатываемый массив}

n:integer; {количество используемых элементов в массиве}

i:IndexEl; {счетчик, используемый для сканирования}

Замечание:

1. Знаком … будем обозначать, что некоторая часть исходного текста программы пропущена.

2. Если в алгоритме будут нужны еще какие-то переменные, то они будут указаны дополнительно.