Массивы.
Объявление переменной массива происходит в разделе var. При этом используется зарезервированное слово array, указывается тип массива и его размерность перечислением индексов, а также объявляется тип данных в массиве.
Пример 1:

Ввод и вывод одномерных массивов
Массивы нужно вводить (и выводить) поэлементно. Почему? Да потому, что оператор readln способен прочитать только значения типов integer, real и char и их простых производных. А массив - это несколько переменных, и их нужно читать по одной.
Массивы вводят и выводят с помощью цикла (понятно, почему ввод массива - циклическое действие?). Для любых одномерных массивов эти циклы очень похожи. Их общий вид:
for <переменная цикла> := <нижний индекс> to <верхний индекс> do
begin
write('Введите <имя массива>[', <переменная цикла>, ']=');
readln(<имя массива>[<переменная цикла>]);
end; {ввод}
for <переменная цикла> := <нижний индекс> to <верхний индекс> do
writeln('<имя массива>[', <переменная цикла>, ']=',<имя массива>[<переменная цикла>]);
{вывод}
Здесь: <переменная цикла> должна иметь тип индекса или базовый для него (например, для индекса ограниченного целого типа <переменная цикла> может быть целой).
Замените названия в <> на названия и значения Вашей задачи - и получите нужные циклы ввода и вывода массива.
Например, для массива
var A: array [1..50] of integer;
var i: integer;
они выглядят так:
for i := 1 to 50 do
begin
write('Введите A[', i, ']=');
readln(A[i]);
end; {ввод}
for i := 1 to 50 do
begin
writeln('A[', i, ']=', A[i]);
end; {вывод, begin и end в данном случае необязательны, так как в цикле один оператор.}
Ввод и вывод
Для последовательного ввода элементов одномерного массива мы использовали цикл for, в котором изменяли значение индекса с 1-го до последнего. Но положение элемента в двумерном массиве Паскаля определяется двумя индексами: номером строки и номером столбца. Это значит, что нам нужно будет последовательно изменять номер строки с 1-й до последней и в каждой строке перебирать элементы столбцов с 1-го до последнего. Значит, нам потребуется два цикла for , причем один из них будет вложен в другой.
var
a: Array [1..5, 1..10] of integer;
i, j: integer; { индексы массива }
begin
for i :=1 to 5 do {цикл для перебора всех строк}
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
readln (a [ i , j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце}
Двумерный массив Паскаля можно заполнить случайным образом, т.е. использовать функцию random (N), а также присвоить каждому элементу матрицы значение некоторого выражения. Способ заполнения двумерного массива Паскаля выбирается в зависимости от поставленной задачи, но в любом случае должен быть определен каждый элемент в каждой строке и каждом столбце.
Вывод элементов двумерного массива Паскаля также осуществляется последовательно, необходимо напечатать элементы каждой строки и каждого столбца. При этом хотелось бы, чтобы элементы, стоящие в одной строке, печатались рядом, т.е. в строку, а элементы столбца располагались один под другим. Для этого необходимо выполнить следующую последовательность действий (рассмотрим фрагмент программы для массива, описанного в предыдущем примере):
for i :=1 to 5 do {цикл для перебора всех строк}
begin
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
write (a [ i , j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции}
writeln; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки}
end ;