Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перестановки в матрице

431
30 ноября 2006 года
sherry
207 / / 16.10.2006
Доброго времени суток всем пользователям, юзверам и всем кто чего-то понимает в программировании!

Столкнулся я со следующей проблемой.

Задача момента: в матрице 7*4 найти максимальный элемент и путём перестановок строк и столбцов матрицы, нужно поместить этот элемент в верхний левый угол матрицы (A[1,1]). Максимальный элемент я нашёл. И всё.. Как его перемесить -умных мыслей не имеется...
257
30 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
попробуй так:
Код:
var matrix:array[1..7,1..4]of word;
    x,y,swap,max,i,j:word;
begin
randomize;
for i:=1 to 7 do
 begin
  for j:=1 to 4 do
   begin
    matrix[i,j]:=random(100);
    write(' ',matrix[i,j]);
   end;
  writeln;
 end;
max:=matrix[1,1];
x:=1;
y:=1;
for i:=1 to 7 do
 for j:=1 to 4 do
  if max<matrix[i,j] then
  begin
   max:=matrix[i,j];
   x:=i;
   y:=j;
  end;
writeln('max:=',max,' x:=',x,' y:=',y);
if x<>1 then
 for i:=1 to 4 do
 begin
  swap:=matrix[1,i];
  matrix[1,i]:=matrix[x,i];
  matrix[x,i]:=swap;
 end;
if y<>1 then
 for i:=1 to 7 do
 begin
  swap:=matrix[i,1];
  matrix[i,1]:=matrix[i,y];
  matrix[i,y]:=swap;
 end;
for i:=1 to 7 do
 begin
  for j:=1 to 4 do
   write(' ',matrix[i,j]);
  writeln;
 end;
readln;
end.
431
01 декабря 2006 года
sherry
207 / / 16.10.2006
вах! А небольшой коммент к всему ентому делу? мне тут препод по сетке такое ещё прислал:

program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type mas=array[1..7,1..4] of integer;
var M:mas; i,j,R,i_max,j_max,max:integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
// Ввод элементов массива
for i:=1 to 7 do
for j:=1 to 4 do
begin write('M[',i,',',j,']='); readln(M[i,j]); end;
i_max:=1; j_max:=1; max:=M[1,1];
// Поиск Максимального элемента
for i:=1 to 7 do
for j:=1 to 4 do
if max<M[i,j] then begin i_max:=i; j_max:=j; max:=M[i,j]; end;
writeln('max=',max,'i_max=',i_max,'j_max=',j_max);
R:=-1;
// Обмен строк
for i:=1 to 4 do
begin R:=M[1,i]; M[1,i]:=M[i_max,i]; M[i_max,i]:=R; end;
// Обмен стролбцов
for i:=1 to 7 do
begin R:=M[i,1]; M[i,1]:=M[i,j_max]; M[i,j_max]:=R; end;
// Вывод элементов массива
for i:=1 to 7 do
begin
for j:=1 to 4 do
write(M[i,j]:4);
writeln;
end;
readln;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог