Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла type
matrix = array of array of integer;
arr = array of integer;
procedure matr2(c: char; var x: matrix; var m, n: integer);
var
i, j: integer;
begin
writeln('Введите количество строк в матрице ' + c + ': ');
readln(m);
writeln('Введите количество столбцов в матрице ' + c + ': ');
readln(n);
SetLength(x, m);
writeln('Матрица ', c, ':');
for i := 0 to m-1 do
begin
SetLength(x[i], n);
for j := 0 to n-1 do
begin
x[i, j] := -99 + random(199);
write(x[i, j]:4)
end;
writeln
end
end;
procedure el(const x: matrix; const m, n: integer; var y: arr);
var
i, j: integer;
begin
for j := 1 to n do y[j] := 0;// Предупреждение здесь!
for i := 1 to m do
for j := 1 to n do
if x[i, j] < 0 then inc(y[j])
end;
procedure poell(var y: arr; const n: integer);
var
j: integer;
begin
writeln('Количество отрицательных элементов по столбцам:');
for j := 1 to n do write(y[j]:4);
writeln;
writeln
end;
var
a, b: matrix;
c, d: arr;
i, j, k, e,m, n :integer;
begin
randomize;
matr2('A', a, i, j);
el(a, i, j, c);
poell(c, j);
matr2('B', b, k, e);
el(b, k, e, d);
poell(d, e);
readln;
end.
Что нужно изменить в программе чтобы она работала правильно?
Объяснение:
type
matrix = array of array of integer;
arr = array of integer;
procedure matr2(c: char; var x: matrix; var m, n: integer);
var
i, j: integer;
begin
writeln('Введите количество строк в матрице ' + c + ': ');
readln(m);
writeln('Введите количество столбцов в матрице ' + c + ': ');
readln(n);
SetLength(x, m);
writeln('Матрица ', c, ':');
for i := 0 to m-1 do
begin
SetLength(x[i], n);
for j := 0 to n-1 do
begin
x[i, j] := -99 + random(199);
write(x[i, j]:4);
end;
writeln;
end;
writeln;
end;
procedure el(const x: matrix; const m, n: integer; var y: arr);
var
i, j: integer;
begin
SetLength(y, n);
for j := 0 to n-1 do y[j] := 0;
for i := 0 to m -1 do
for j := 0 to n - 1 do
if x[i, j] < 0 then inc(y[j]);
end;
procedure poell(var y: arr; const n: integer);
var
j: integer;
begin
writeln('Количество отрицательных элементов по столбцам:');
for j := 0 to n - 1 do write(y[j]:4);
writeln;
end;
var
a, b: matrix;
c, d: arr;
m, n: integer;
begin
randomize;
matr2('A', a, m, n);
el(a, m, n, c);
poell(c, n);
matr2('B', b, m, n);
el(b, m, n, d);
poell(d, n);
readln();
end.