Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > сортировка элементов матрицы


Автор: igorx86 27.3.2010, 15:03
Доброго времени суток!

Дана матрица вида 

Код

43215
76980
32145
36781
23415


нужно чтобы было 
Код

12345
67890
12345
13678
12345

Данный код почему-то не работает
Код

for i:=0 to 4 do begin
    for k:=0 to 4 do begin
       if m[i+1,k]<m[i,k] then begin
           c:=m[i+1,k];
           m[i+1,k]:=m[i,k];
           m[i,k]:=c;
       end;
    end;
  end;

подскажите в чем может заключаться ошибка

Заранее спасибо!

Автор: Демо 27.3.2010, 16:26
Цитата(igorx86 @  27.3.2010,  15:03 Найти цитируемый пост)
подскажите в чем может заключаться ошибка


За один проход во внутреннем цикле ты же не можешь отсортировать 5 элементов.

Автор: Grag 27.3.2010, 16:52
Цитата(igorx86 @ 27.3.2010,  15:03)
Доброго времени суток!

Дана матрица вида 

Код

43215
76980
32145
36781
23415


нужно чтобы было 
Код

12345
67890
12345
13678
12345

Данный код почему-то не работает
Код

for i:=0 to 4 do begin
    for k:=0 to 4 do begin
       if m[i+1,k]<m[i,k] then begin
           c:=m[i+1,k];
           m[i+1,k]:=m[i,k];
           m[i,k]:=c;
       end;
    end;
  end;

подскажите в чем может заключаться ошибка

Заранее спасибо!

Первый цикл нужно сделать от 0 до 3, иначе в строке 3 выйдешь за границы массива.
Затем в этих циклах ты делаешь только сортировку строк, а в самой строке символы не тусуешь...

Автор: profesiachuvak 27.3.2010, 17:16
Цитата(Grag @  27.3.2010,  16:52 Найти цитируемый пост)
Первый цикл нужно сделать от 0 до 3, иначе в строке 3 выйдешь за границы массива.


Почему? Это ж матрица 5*5. Цикл от 0 до 4 вполне корректен.

Добавлено через 1 минуту и 13 секунд
Хотя похоже Вы правы, он ведь там ещё 1 добавляет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)