Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2014, 00:49   #1
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию обменять местами элементы строки и столбца / Delphi для начинающих

Доброго времени суток, господа!
В квадратной таблице (любые целые числа) обменяйте местами элементы строки и столбца, на пересекании которых находится первый минимальный элемент из позитивных чисел. Выведите на экран матрицу до, и после изменения.

Сначала мы ищем мин ел-т.Как нам выполнить вот это: обменять местами элементы строки и столбца, на пересекании которых находится первый минимальный элемент?

Я думаю,нужно сделать такую комбинацию a[i,j] на a[j,i].Но как нам это корректно реализовать в коде?

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,min,ind:Integer; a:array [1..4,1..4] of Integer;
begin
  for i:=1 to 4 do                             //
  for j:=1 to 4 do                             //
  begin                                         //       
   ind:=1+Random(50);                             //
   a[i,j]:=ind;                                       //
   StringGrid1.Cells[i-1,j-1]:=IntToStr(ind);             //
    end;
    
    begin
 
  min:=a[i-1,j-1];
  for i:=1 to 4 do                             //
  for j:=1 to 4 do
    if a[i,j] < min then
    begin
      min:=a[i,j];
    end;
 
  label1.caption:='Минимальный ел-т'+' - '+inttostr(min);
      end;
 
end;
tane вне форума Ответить с цитированием
Старый 26.01.2014, 00:57   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  n = 4;
var
  i, j, mini, minj, tmp : Integer;
  a: array [1..n, 1..n] of Integer;
begin
  for i := 1 to n do
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      StringGrid1.Cells[j - 1, i - 1] := IntToStr(a[i, j]:);
    end;
  mini := 0;
  minj := 0;
  for i := 1 to n do
    for j := 1 to n do
      if (a[i, j] > 0) and ((mini = 0) or (a[i, j] < a[mini, minj])) then
      begin
        mini := i;
        minj := j;
      end;
  if mini <> 0 then
    for i := 1 to n do
    begin
      tmp := a[mini, i];
      a[mini, i] := a[i, minj];
      a[i, minj] := tmp;
    end;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.01.2014, 20:14   #3
tane
Пользователь
 
Регистрация: 14.12.2013
Сообщений: 64
По умолчанию

Если результат записать,например, в Memo1.Lines.Add(IntToStr(tmp)); ,то нам покажет только измененную строку в столбец,а как сделать,чтобы при нажатии на кнопку ,нам вывело всю матрицу(измененную) (например, в StringGrid2 или memo)?
tane вне форума Ответить с цитированием
Старый 26.01.2014, 20:19   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Точно также, как и в теме поменять элементы относительно побочной диагонали и вывести на экран(delphi)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица размерностью NxM заполняется случайными числами. Поменять местами первый и последний элементы каждого столбца. (Delphi) ganster Помощь студентам 0 02.07.2012 21:46
Определить максимальный элемент произвольно заданной матрицы В размером n×n элементов . Обнулить все элементы строки и столбца amorousmaniac Помощь студентам 2 16.12.2011 06:41
Для начинающих БД Delphi Rustam_ БД в Delphi 1 26.09.2010 05:34
Как обменять заданные строки/столбцы в матрице siriusz Общие вопросы C/C++ 6 18.01.2009 19:13
как в TreeView обменять местами 2 элемента andrey4623 Компоненты Delphi 3 07.02.2008 20:10