Описание одномерных массивов имеет вид
<список идентификаторов>: array [< диапазон изменения
индекса>] of <тип элементов массива>;
<диапазон изменения индекса> - это поддиапазон любого перечислимого типа. Например:
1 ..85, январь ..декабрь, ‘A’ .. ‘Z’ и т.п.
Типом элементов массива может быть любой простой тип. Кроме того, элементами массива могут быть другие массивы. Массивы описывают, как и остальные переменные в разделе Var.
Примеры:
A: array[l ..10] of integer; { массив с одним индексом,
который меняется от 1 до 10,
элементы массива целые числа }
В: array['А' . . ' Z ' ] of Real; { массив с одним индексом,
который меняется от 'А' до 'Z' ,
элементы массива - вещественные числа}
С: array[10 .. 20] of Char; { массив с одним индексом,
который меняется от 10 до 20,
элементы массива – символы }
Если два массива А и В однотипные, то допускаются следующие операторы присваивания:
А := В; или В := А;
Необходимо отметить, что элементы массивов имеют те же свойства, что и обычные переменные соответствующих типов. Доступ к элементу массива в программе выполняется путём указания идентификатора массива, а затем в квадратных скобках его номера (индекса).
Пример:
A[1]: = 7;
A[2]: = A[6];
A[6]:=SQRT(f);
На месте индекса элемента массива может стоять идентификатор переменной. В этом случае во время выполнения программы будет осуществлена подстановка – значение этой переменной.
Примеры:
1)
i:=7;
A[i] := 23; {это равносильно оператору А[7] : = 23; }
2)
for j:= 1 to 10 do A[j]:= j*j;
В последнем примере в цикле выполняется присвоение элементам массива конкретных значений. Изменение счётчика цикла в каждой итерации позволяет перебрать все элементы массива.
Одномерный массив длины N можно представить как вектор c элементами (А1, А2,..., АN). Если необходимо ввести значения элементов массива с клавиатуры, то для этого проще всего использовать цикл:
for i := 1 to n do read (A[i]) ;
или с выводом сообщения:
for i:= 1 to n do
begin
Write('введите А[' , i , ']: ');
Readln(A[i] ) ;
end;
Подобным образом можно организовать вывод элементов массива на экран. Например, в строку без комментариев:
for i := 1 to n do Write(А[i] : 4, ' ');
или в столбец и с комментариями:
for i := 1 to n do Writeln('А[' , i , ']= ' , A[i]);
Кроме операций ввода и вывода, любые другие операции с элементами массива осуществляются в цикле, и лучше всего для этих целей подходит цикл типа for … do.
Часто размер массива приходится несколько раз изменять во время отладки программы. Изменение диапазона в описании массива влечёт за собой изменение параметров цикла и возможно других переменных. Можно облегчить подобные преобразования, если при указании диапазона изменения индексов использовать константы.
Задача. Ввести массив с клавиатуры, найти максимальный и минимальный элементы.
program p8_1;
const n = 10; { Константа n задаёт максимальное количество
элементов в массиве А}
var
A: array[1..n] of real;
i: integer;
max, min : real;
begin
{ ввод элементов массива }
Writeln(' Введите ' , n, ' элементов массива:');
for i := 1 to n do Read (A [i] );
readln;
{ Начальные установки }
max := А [ 1] ;
min := A [ 1] ;
{поиск максимума и минимума}
for i:= 2 to n do
if A[i] > max then max:= A[i]
else
if A[i] < min then min:= A[i];
{ вывод максимума и минимума}
Writeln('max= ', max, ' min= ' , min);
end.