Помогите решить три задачки пожалуйста.
Первая:
Задана матрица А размерностью 3х6. Сделать поворот относительно главной диагонали.
Вторая:
Задана матрица А размерностью 15х10. Найти рядок с наименьшим элементом и поменять его местами с последним.
Третья:
Задана матрица А размерностью 7х5 та матрица В размерностью 7х4. Сделать добавление А+В, результат записать в матрицу С.
Спасибо за внимание.
[Прошу прощение, если тема не в том разделе. По возможности прошу перенести данную тему в нужный раздел]
Пытаясь решить третью задачу, я был подвержен критике специалистов, которые в итоге помогли мне сделать эту задачку.
Выложу решение, возможно, кому-то понадобится.
Задача №3. Программный код.
В первой - неясно, что есть главная диагональ в неквадратной матрице. И что значит поворот относитлеьно нее (даже и в квадратной).
Вторая (надеюсь, что рядок это строка..)
type
tRow= array[1..10] of ...
var
a: array[1..15] of tRow;
b: tRow;
...
imin:= 1;
jmin:= 1;
for i:=1 to 15 do
for j:=1 to 10 do
if a[i,j]<a[imin,jmin] then begin
imin:= i;
jmin:= j
end;
b:= a[i];
a[i]:= a[15];
a[15]:= b;
...
В первой задаче нужно сделать транспонирование матрицы.
Спасибо за помощь. Вот что получилось:
Задача №2.
const
n=15;
m=10;
type
matr=array[1..n,1..m] of integer;
var
a:matr;
i,j,imin,jmin,i_point,buf:integer;
begin
randomize;
{Vyvod}
writeln('Ishodnaya matritsa:');
for i:=1 to n do
for j:=1 to m do
begin
a[i,j]:=random(100)+5;
write(a[i,j]:4);
if j=m then
writeln;
end;
writeln;
{Poisk min, stroki min}
imin:=1;jmin:=1;
for i:=1 to n do
for j:=1 to m do
begin
if a[i,j]<a[imin,jmin] then
begin
imin:=i;
jmin:=j;
i_point:=i;
end;
end;
writeln('Min:',a[imin,jmin],' ego stroka: ',i_point,' Press enter...');
readln;
if i_point=n then{nomer stroki s min posledniy}
writeln('Element nahoditsa v poslednei stroke. Nichego ne menyaem.')
else
begin
{Obmen}
for j:=1 to m do
begin
buf:=a[i_point,j];
a[i_point,j]:=a[n,j];
a[n,j]:=buf;
end;
{Vyvod}
writeln('Posle obmena:');
for i:=1 to n do
for j:=1 to m do
begin
write(a[i,j]:4);
if j=m then
writeln;
end;
writeln;
end;
end.
Первая задача с измененным условием: Не 3х6, а 6х6.
№1
uses crt;
const n=6;m=6;
var
a:array[1..n,1..m] of integer;
b:array[1..n,1..m] of integer;
i,j:integer;
begin
clrscr;
{Vyvod nachal`nogo massiva}
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
writeln;
{Zapolnenie novogo massiva z povorotom}
for i:=1 to n do begin
for j:=1 to m do begin
b[j,i]:=a[i,j];
end;
end;
{Pechat` poluchivshegosya massiva}
for i:=1 to n do begin
for j:=1 to m do begin
write(b[i,j]:4);
end;
writeln;
end;
readln;
end.