Очень часто возникают сложности, связанные с вводом элементов массива, особенно во время отладки. Приходится по нескольку раз вводить большие объемы информации. Этого можно избежать, описав массив - константу в разделе Const.
Одномерный массив
<идентификатор — имя массива>: array [<диапазон изменения индекса> ] of <тип элементов> =
<список элементов, через запятую>);
Примеры:
Const
A : array [ 1 .. 5] of integer = (7, 3, 22, 4, 3) ;
B : array [ 1 .. 3] of real = (2.55, 7.1, 3.6) ;
C : array [ 1 .. 3] of char = (‘A’, ‘B’, ‘C’) ;
Многомерные массивы
<идентификатор - имя массива>: array [ <список диапазонов, через запятую>] of <тип элементов> = (<список элементов массива, разделённых по группам в круглых скобках>);
Для двухмерного массива, группы - это строки. Примеры:
Const
M : array [ 1 .. 3, 1 .. 3] of integer = ((1, 2, 4) , (1, 7, 8), (22, 8, 4)) ;
T : array [ 1 .. 2, 1 .. 2, 1 .. 2] of byte = (((1, 8) , (4, 4)), ((3, 2) , (5, 4))) ;
В нашем случае все массивы были описаны как типизированные константы, значит их использование в программе равноценно использованию обычных массивов - переменных. Однако надо помнить, что изменять элементы этих массивов нельзя.
Задача. В одномерном массиве определить количество последовательностей из нулей. Последовательности - это цепочки из одного или более нулей, разделенные ненулевыми элементами.
program p8_4;
const
n= 10;
A: array[l..n] of Integer = (0, 1, 0, 0, 5, 0, 1,0, 3, 0, 0, 0, 2) ;
var
zero: Boolean;
i, k: integer;
begin
zero:= false;
k:= 0;
for i : = 1 to n do
if A[i] = 0 then
if not zero then begin k := k + 1; zero:= true; end;
else zero:= false;
Writeln(' количество нулевых последовательностей = ', k);
end.