Массивы

### Конспект урока | Вопросы самопроверки | Задания на дом | Практикум | Тест

### МАССИВ-ЭТО ФОРМАЛЬНОЕ ОБЪЕДИНЕНИЕ НЕСКОЛЬКИХ ОДНОТИПНЫХ ОБЪЕКТОВ, РАССМАТРИВАЕМОЕ КАК ЕДИНОЕ ЦЕЛОЕ. Через массивы очень часто осуществляется обработка относительно больших объемов данных. В виде массива очень удобно представить, например перечень значений какой-либо величины или результаты каких-либо измерений. Доступ к отдельным элементам массива осуществляется по их индексу. В этом смысле можно дать еще одно определение, отражающее механизм работы с массивами: массив – это группа переменных одного типа (элементов массива), названная одним именем и имеющая индексный механизм доступа к каждой переменной этой группы. Описание массива включает в себя указание из переменных какого типа должен состоять массив, сколько должно быть элементов, и какие индексы должны быть использованы для доступа к его элементам:
VAR
<Имя массива>:ARRAY[<Нижний индекс>..<Верхний индекс>] OF <Тип элементов>
Для ИМЕНИ массива применяются идентификаторы, отвечающие тем же правилам, что и переменных и других элементов программы.Параметры массива НИЖНИЙ ИНДЕКС и ВЕХНИЙ ИНДЕКС должны являться константами и определяют пределы изменения индекса и, соответственно количество элементов, которые содержатся в массиве. Например, если в качестве НИЖНЕГО ИНДЕКСА использовано значение 5, а в качестве ВЕРХНЕГО ИНДЕКСА 7, то массив будет включать в себя три элемента, доступ к которым будет осуществляться по индексам 5,6,7.В качестве ТИПА ЭЛЕМЕНТА может быть использован любой необходимый для решения поставленной задачи тип данных, например INTEGER или STRING, в том числе и другой массив. Необходимо иметь в виду, что объем ОП, занимаемой переменными, описываемыми в разделе описания переменных VAR не должен превышать 64-х Килобайт. Таким образом существует ограничение на максимальное количество элементов, заданного типа в массиве. Для массива элементов типа INTEGER, например, такое ограничение – 32408.
Type
massiv =array [0..20] of char;
kukan=array [byte] of integer;
var
a:massiv;
b,sum:kukan;
i:byte;
begin
…………………………..
Sum[15]:=b[i+1]*2;
это иллюстрация обращения к отдельному элементу массива по его индексу. При этом в качестве индекса может выступать переменная. Определить переменную как тот или иной массив можно непосредственно в разделе VAR без предварительного описания типа массива:
VAR
A,HOH:ARRAY[0..20] OF CHAR;
В качестве типа массива может в свою очередь выступать также массив. Таким образом получается массив массивов- двухмерный массив. По аналогии могут быть трехмерные массивы (массивы из массивов массивов), четырехмерные и т.д. Вот описание двухмерного массива:
TYPE
MASSIV=ARRAY[0..20] OF ARRAY [-5..5] OF REAL;
Кстати говоря, оно может быть сведено к более краткой форме:
TYPE MASSIV=ARRAY [0..20,-5..5] OF REAL;
Трехмерный массив будет выглядеть примерно так:
TYPE
MASSIV=ARRAY [0..20,-5..5,a..g] OF REAL;
Если при обращении к элементу обычного одномерного массива используется один индекс, указываемый в квадратных скобках, то при обращении к элементу двухмерного массива должны указываться два индекса через запятую, например A[10,5]. Соответственно для обращения к элементу трехмерного массива используются три индекса и т.д. В Turbo Pascal предусмотрена интересная возможность одним оператором присваивания передать все элементы одного массива другому массиву того же типа. Делается это следующим образом:
TYPE
MASSIV=ARRAY [0..20] OF CHAR;
KUKAN=ARRAY [BYTE] OF INTEGER;
VAR
A:MASSIV;
B,SUM:KUKAN;
I:BYTE;
BEGIN
…………………..
B:=SUM;
Последовательный перебор элементов массива, как правило, осуществляется с помощью цикла FOR. При этом для двухмерных массивов (их еще называют матрицами) используются два цикла FOR , вложенных один в другой. В качестве примера работы с массивом рассмотрим программу, которая в квадратной матрице (двумерном массиве) меняет местами строку с максимальным элементом на главной диагонали со строкой с заданным номером m. Индексы элементов, расположенных на главной диагонали равны, например A[1,1], A[2,2] и т.д.

### 1. Что такое "массив"?
2. Как описывается массив?
3. Какого типа должны быть параметры массива "верхний индекс" и "нижний индекс"?
4. С помощью какого цикла осуществляется перебор элементов массива?

### 1.Сформировать одномерный массив из случайных чисел.
2. Отсортировать по возрастанию (использовать вложенные циклы).
3. Вывести на экран монитора отсортированный массив.