Консультация № 174424
22.11.2009, 05:16
0.00 руб.
0 3 1
Уважаемы эксперты,у меня возникли трудности с этими задачами,пожалуйста..помогите..
1)Дана матрица. Определить,является ли матрица магическим квадратом. В магическом квадрате суммы элементов по всем горизонтальным,вертикальным и двум диагоналям равны.
2)Найти произведение двухмерых массивов А и В,если массив А имеет размерность n*m, а В m*n . Укажите размерность результируещего массива и правило нахождения элемента с индексами i и j.

Обсуждение

Неизвестный
22.11.2009, 12:19
общий
это ответ
Здравствуйте, data2012.
Код программы в приложении

Приложение:
program magic;
var
a:array[1..20,1..20] of integer;
i,j,n,k,s,f:integer;
Begin
write('Введите размерность массива n=');
readln(n);
writeln('Введите элементы массива');
for i:=1 to n do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]) end;
s:=(1+n*n)*n div 2;
f:=0;
for i:=1 to n do begin
k:=0;
for j:=1 to n do
k:=k+a[i,j];
if k<>s then f:=1;
end;
if f=0 then for j:=1 to n do begin
k:=0;
for i:=1 to n do
k:=k+a[i,j];
if k<>s then f:=1;
end;
k:=0;
if f=0 then begin
for i:=1 to n do
k:=k+a[i,i];
if k<>s then f:=1;
end;
k:=0;
if f=0 then begin
for i:=1 to n do
k:=k+a[i,n-i+1];
if k<>s then f:=1;
end;
if f=0 then writeln('Матрица-магический квадрат')
else writeln('Квадрат не магический');
readln
END.
5
Неизвестный
22.11.2009, 12:43
общий
data2012:
Вторая программа

Код:

Program two;
uses crt;
const n=5;
m=7;
var a:array[1..n,1..m] of real;
b:array[1..m,1..n] of real;
c:array[1..n,1..n] of real;{размер полученной матрицы=кол.стр. 1-й*кол.стлбц. 2-oй}
i,j,p:integer;
begin
clrscr;
randomize;
writeln('Матрица А:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=10*random;
write(a[i,j]:4:1);
end;
writeln;
end;
writeln('Матрица B:');
for i:=1 to m do
begin
for j:=1 to n do
begin
b[i,j]:=10*random;
write(b[i,j]:4:1);
end;
writeln;
end;
for p:=1 to n do
for j:=1 to n do
begin
c[p,j]:=0;{сначала элемент i,j=0}
for i:=1 to m do
begin
c[p,j]:=c[p,j]+a[p,i]*b[i,j];
{перемножаем элементы строк 1-ой матрицы на соответствующие элементы соответствующих столбцов 2-ой и суммируем}
end;
end;
writeln('Матрица C=A*B:');
for i:=1 to n do
begin
for j:=1 to n do
write(c[i,j]:7:1);
writeln;
end;
readln
end.


Неизвестный
22.11.2009, 13:05
общий
Sky-er:
спасибо большое!!!!!!
Форма ответа