Помогите найти ошибку в программе..... умножение двумерного массива.pas(29) : Нельзя...

0 голосов
67 просмотров

Помогите найти ошибку в программе.....
умножение двумерного массива.pas(29) : Нельзя преобразовать тип integer к array [1..100] of array [1..100] of integer.
Вот сама программа: умножение матриц в обратном порядке, т.е первый элемент на последний, второй на предпоследний и.т.д.
var
x:integer;
a1:array[1..100,1..100] of integer;a2:array[1..100,1..100] of integer;a3:array[1..100,1..100] of integer;
i,j,m,n:integer;
begin
writeln('Введите размер матрицы');
readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
end;
begin
writeln('Введите элементы первой матрицы');
for i:=1 to m do
begin
for j:=1 to n do
readln(a1[i,j]);
end;
end;
begin
writeln('Введите элементы второй матрицы');
for i:=1 to m do
begin
for j:=1 to n do
readln(a2[i,j]);
end;
end;
begin
a3:=a1[i,j]*a2[x+1-i,x+1-j];
for i:=1 to m do
begin
for j:=1 to n do
readln(a3[i,j]);
end;
writeln;
end;
readln;
end.
ЗАРАНЕЕ СПАСИБО!!!


Информатика (81 баллов) | 67 просмотров
0

const handsfree = true;type mas100_100 = array[1..100, 1..100] of integer;var a1, a2, a3: mas100_100; i, j, m, n: integer;procedure InitializeMatrix(var a: mas100_100; m, n: integer);var i, j: integer;begin writeln('Данные матрицы'); for i := 1 to m do begin for j := 1 to n do if handsfree then begin a[i, j] := random(30); write(a[i, j]:2, ' ') end else read(a[i, j

0

else read(a[i, j]); writeln; end;end;

0

begin writeln('Введите размер матриц'); readln(m, n); InitializeMatrix(a1, m, n); InitializeMatrix(a2, m, n); writeln('Вывод результата'); for i := 1 to m do begin for j := 1 to n do begin a3[i, j] := a1[i, j] * a2[m + 1 - i, n + 1 - j]; write(a3[i, j], ' '); end; writeln; end; readln;end.

0

вот так будет правильно, процедура для удобства, автоматический ввод чтоб долго не вводить

0

большое спасибо))

Дан 1 ответ
0 голосов
Правильный ответ

Const
handsfree = true;

type
mas100_100 = array[1..100, 1..100] of integer;

var
a1, a2, a3: mas100_100;
i, j, m, n: integer;

procedure InitializeMatrix(var a: mas100_100; m, n: integer);
var
i, j: integer;
begin
writeln('Данные матрицы');
for i := 1 to m do 
begin
for j := 1 to n do
if handsfree then begin
a[i, j] := random(30);
write(a[i, j]:2, ' ')
end
else
read(a[i, j]);
writeln;
end;
end;

begin
writeln('Введите размер матриц');
readln(m, n);

InitializeMatrix(a1, m, n);
InitializeMatrix(a2, m, n);

writeln('Вывод результата');
for i := 1 to m do 
begin
for j := 1 to n do 
begin
a3[i, j] := a1[i, j] * a2[m + 1 - i, n + 1 - j];
write(a3[i, j], ' ');
end;
writeln;
end;

readln;
end.

(53.1k баллов)