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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 22:08   #1
subzero95
Пользователь
 
Регистрация: 10.03.2012
Сообщений: 22
По умолчанию "Выборочное" упорядочивание.

Подскажите алгоритм для упорядочивания. Обясню на задаче...
Предположим есть матрица с 2 столбцами и 5 строчками. Нужно упорядочить по убыванию те элементы во втором столбце в строке с которыми находится... Ну предположим элемент равный 0. Выглядит так:
1 2
0 1
4 2
0 5
0 8

Подчёркнутые нужно упорядочить по убыванию...

P.S. Если что-то не понятно в вопросе могу уточнить. (Мне самому то не очень понятно что я тут понаписал )

Последний раз редактировалось subzero95; 12.04.2012 в 22:17.
subzero95 вне форума Ответить с цитированием
Старый 12.04.2012, 22:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

т.е. из предложенного должно получится:
Код:
1 2
0 8
4 2
0 5
0 1
так?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2012, 23:16   #3
subzero95
Пользователь
 
Регистрация: 10.03.2012
Сообщений: 22
По умолчанию

Да. (10 символов)
subzero95 вне форума Ответить с цитированием
Старый 13.04.2012, 00:18   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

пробуйте:
Код:
const
  n = 5;
  A : array[1..n,1..2] of integer = ((1,2),
(0, 1),
(4, 2),
(0, 5),
(0, 8));

var
  i, j, k, h : integer;
begin
  WriteLn('До:');
  for i:=1 to n do begin
    for j:=1 to 2 do Write(A[i,j],'  ');
    WriteLn;
  end;

  {сортировка}
  for i := 1 to n do 
      if A[i,1]=0 then
        for j := i + 1 to n do
          if (A[j,1]=0) and (A[j,2] > A[i,2]) then
            for h:=1 to 2 do begin
              k := A[i,h];
              A[i,h] := A[j,h];
              A[j,h] := k;
            end;



  WriteLn('После:');
  for i:=1 to n do begin
    for j:=1 to 2 do Write(A[i,j],'  ');
    WriteLn;
  end;
  Readln
  
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество букв "й", "ы" и "я", содержащихся в заданной строке. VoltZZZ Помощь студентам 2 01.03.2012 23:39
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04