Помощь - Поиск - Пользователи - Календарь
Полная версия: Сортировка таблицы по k-ому столбцу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
NTL
Не могу понять, вроде алгоритмически все правильно.
Код

const n=3;
      m=2;
var i,j,z,T,B,k:integer;
a: array [1..n,1..m] of integer;
begin
for i:=1 to n do
  for j:=1 to m do
   read(a[i,j]);
writeln('Массив до сортировки: ');
for i:=1 to n do
   begin
      for j:=1 to m do write(a[i,j]:3);
      writeln;
   end;

    
k:=2;
for i:=1 to n-1 do
  for j:=i+1 to n do
    if a[i,k]>a[j,k] then
      begin
          T:=a[j,k];
          a[j,k]:=a[i,k];
          a[j,k]:=T;
          for z:=1 to m do
            if z=k then continue
            else
              begin
                  B:=a[j,z];
                  a[j,z]:=a[i,z];
                  a[j,z]:=B;
              end;
      end;
writeln;
writeln('Массив после сортировки: ');
for i:=1 to n do
   begin
      for j:=1 to m do write(a[i,j]:3);
      writeln;
   end;
end.
klem4
k:=2;

for p := n downto 2 do
for q := 1 to p - 1 do
if a[q, k] < a[q + 1, k] then
for j := 1 to m do begin
T := a[q, j];
a[q, j] := a[q + 1, j];
a[q + 1, j] := T;
end;
NTL
Благодарствую good.gif

Добавлено через 11 мин.
Не. Это не то :)Сортировка таблицы, т.е. пусть дана след. матрица:
(Может просто неудачно выразился smile.gif Наверное, правильнее будет сортировка строк таблицы (матрицы) по возрастанию элементов k-ого столбца blink.gif )
Код
3 8         ->>>       4 2
4 2         ->>>       6 7
6 7         ->>>       3 8
volvo
const
n = 3;
m = 2;
type
vector = array[1 .. m] of integer;

var
i, j, k: integer;
a: array [1 .. n] of vector;
T: vector;

begin
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);

writeln('Массив до сортировки: ');
for i:=1 to n do begin
for j:=1 to m do write(a[i,j]:3);
writeln;
end;

k := 2;

for i := 1 to n Do
for j := n downto i + 1 do
if a[pred(j)][k] > a[j][k] then begin
T := a[pred(j)]; a[pred(j)] := a[j]; a[j] := T
end;

writeln;
writeln('Массив после сортировки: ');
for i:=1 to n do begin
for j:=1 to m do write(a[i,j]:3);
writeln;
end;

end.

Так?
klem4
Цитата
сортировка строк таблицы (матрицы) по возрастанию элементов k-ого столбца


Ну так я это и написал ... строки сортируются по возрастанию/убыванию элементов в к-го столбца.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.