Предмет: Информатика,
автор: demyanchukdvdo191233
Помогите с проблемой:
var
n,i,j:integer;
m:array [1..n,1..n] of integer;
begin
writeln('Введите размерность матрицы');
read(n);
for i:=1 to n do
begin
for j:=1 to n do
read(m[i,j]);
end;
for i:=1 to n do
begin
for j:=1 to 41 do
write(m[i,j]:5);
writeln
end;
end.
ошибка: ожидалось константное выражение
мне не обходимо чтобы пользователь сам задавал размерность вводимого массива
Ответы
Автор ответа:
1
Объяснение:
Для этого нужно использовать динамические массивы.
var m: array of array of integer; означает массив массивов integer.
SetLength(m, n, n); инициализирует двумерный массив m размерностью n•n.
Но при использовании динамических массивов изменяется принцип обращения к элементам: если ранее (в статических массивах) нумерация шла с 1, то сейчас с 0. Также изменилось условие окончания цикла (ранее было до n, сейчас до n - 1)
Полный код:
var
n, i, j: integer;
m: array of array of integer;
begin
writeln('Введите размерность матрицы');
read(n);
SetLength(m, n, n);
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
read(m[i,j]);
end;
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
write(m[i,j]:5);
writeln();
end;
end.
Похожие вопросы
Предмет: Українська мова,
автор: denis10072003
Предмет: Русский язык,
автор: Настюлинька
Предмет: Українська література,
автор: Цезарь999999
Предмет: Геометрия,
автор: Викусъка
Предмет: Математика,
автор: денис1026