Помогите, пожалуйста, найти ошибку. программа для перемножение 2-х матриц. Pascal

помогите, пожалуйста, найти ошибку. программа для перемножение 2-х матриц. Pascal
программа для перемножение 2-х матриц. Pascal

Program Pro;
uses Crt;
const
q=500;
type
matrix=array [1..q, 1..q] of longint;
var
x,y,z:matrix;
n1,m1,n2,m2:longint;
i,j,k:longint;
s:longint;

begin
writeln('Введите размерность матрицы ');
readln(n1,m1);

for i:= 1 to n1 do begin
for j:= 1 to m1 do begin
writeln('Введите все эл-ты м-цы построчно');
read(x[i,j]);
write(x[i,j]:4);
end;
writeln;
end;

writeln ('количество столбцов 2-ой м-цы равно кол-ву строк 2-ой.');
n2:= m1;
writeln ('Введите кол-во строк 2-ой м-цы ');
readln (m2);
for i:= 1 to n2 do begin
for j:= 1 to m2 do begin
writeln('Введите все эл-ты м-цы построчно');
read(y[i,j]);
write(y[i,j]:4);
end;
writeln;
end;
for i:= 1 to n1 do
for j:= 1 to m2 do

begin
s:= 0;
for k:= 1 to n2 do
s:= s + x [i, k] * y [k, j];
z[i, j]:= s;
end;
writeln;
writeln('Ïîëó÷åííàÿ ìàòðèöà:');
for i:= 1 to n1 do
begin
for j:= 1 to m2 do
write(z[i,j]:4 );
writeln;
end;
readln;
end.

программа, в принципе, работает.делал через рандом, нормально всё получилось. теперь надо сделать так, чтобы эл-ты строки вволись построчно, вида
1 2 6 Enter
4 0 5 Enter
Но программа при вводи строки, например, из трёх символов, выдаёт лишь один. Да и полученную матрицу вообще обнуляет. Подскажите, пожалуйста.
по одному элементу было бы вводить ещё ничего, а тут я уже что-то совсем запутался.

  • x,y,z:matrix;
    У вас динамический массив. Но у вас нет указания на его длинну те. нет установки setlength/ Без нее все будет происходить только для нулевого индекса массива.