Begin
if n>1 then
Begin
imn:=Min(n-1);
if x[n]>x[imn] then Min:=imn
else Min:=n
End
else Min:=1
end;
Begin
clrscr;
randomize;
write('Razmer massiva X n=');
readln(n);
writeln('Massiv X:');
for i:=1 to n do
Begin
x[i]:=random(20);
write(x[i],' ');
end;
writeln;
write('Index min=',Min(n));
readln
end.
Массив – это именованная группа однотипных данных, хранящихся в последовательных ячейках памяти.
Двумерный массив (прямоугольная таблица (матрица, набор векторов)) - это пример массива, в котором элементы нумеруются двумя индексами, элемент которого зависит от его местоположения в строке и в столбце.
Описать такой массив можно двумя способами:
I.
Var
A: Array [1..20] Of Array [1..30] Of Integer;
II.
Var
A: Array [1..20,1..30] Of Integer;
В обоих случаях описан двумерный массив, соответствующий таблице, состоящей из 20 строк и 30 столбцов. Приведенные описания совершенно равноправны.
Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5][6] или A[5,6].
Двумерные массивы
В качестве номера (индекса) элемента массива используется выражение порядкового типа (чаще integer).
|
|
Для определения позиции элемента в двумерном массиве необходимы два индекса. Любой двумерный массив есть матрица, а матрица есть таблица. Поэтому удобно описывать двумерные массивы путем указания границ изменения индексов (номеров) строк и столбцов.
Например, таблица символов M × N, где M – число строк и N – число столбцов, может быть описана:
var TAB: array [1..M, 1..N] of char;
Общая форма записи
VAR <имя>: ARRAY [тип индекса строки, тип индекса столбца]
OF <тип компонент>;
Однако двумерный массив можно интерпретировать как вектор-столбец, каждый элемент которого, в свою очередь, является одномерным массивом (вектор-строка). Этот подход к определению двумерного массива влечет его описание с помощью двух строк, где первая содержит описание строки, а вторая – описание столбца:
type LINE = array [1..N] of char;
STOLB = array [1..M] of LINE;
var TAB: STOLB.
Здесь TAB [I] – переменная типа LINE, а TAB [I][J] – переменная типа CHAR.
Общая форма записи
TYPE <тип строки> = ARRAY [тип индекса] OF <тип компонент>;
<тип столбца> = ARRAY [тип индекса] OF <тип строки>;
VAR <переменная массива>: <тип столбца>;
Эти два вида определения массивов задают и два способа обращения к элементам массива: TAB [I, J] – в первом случае и TAB [I][J] – во втором. Вполне очевидно, что сказанное выше для двумерного массива распространяется и на массивы большей размерности. Например, описание VAR CUBE: ARRAY [1..M, 1..N, 1..K] OF INTEGER определяет задание трехмерного массива целых чисел.
А так же двумерным массивом называется таблица, состоящая из строк и столбцов.
|
|
А11А12А13… А1m
A21A22A23...А2m
...............
...............
An1An2An3...Anm
Описание двумерного массива.
Способ 1. В разделе описания переменных.
Имя Массива: array [Верх.Гр.1..Ниж.Гр.1,Верх.Гр.2..Ниж.Гр.2] of Тип Элементов;
Способ 2. В разделе описания типов.
Имя Массива: array [Верх.Гр.1..Ниж.Гр.1,Верх.Гр.2..Ниж.Гр.2] of Тип Элементов;
Способ 3. В разделе описания констант.
Const
Имя Массива: array[1..3,1..3] of real=((1.2,2.4,0.4),(0.045,-0.47,0.003),(1.24,1,-7.4));
Часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значения и номера максимального и минимального элементов, а также изменить значения элементов массива и т.д. Особенность работы с двумерными массивами заключается в том, что расширяется возможность обработки массива (появились новые элементы: строки, столбцы - являющиеся одномерными массивами).