IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сортировка таблицы по k-ому столбцу
сообщение
Сообщение #1


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Не могу понять, вроде алгоритмически все правильно.
Код

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.


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Благодарствую good.gif

Добавлено через 11 мин.
Не. Это не то :)Сортировка таблицы, т.е. пусть дана след. матрица:
(Может просто неудачно выразился smile.gif Наверное, правильнее будет сортировка строк таблицы (матрицы) по возрастанию элементов k-ого столбца blink.gif )
Код
3 8         ->>>       4 2
4 2         ->>>       6 7
6 7         ->>>       3 8


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






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.

Так?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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


Ну так я это и написал ... строки сортируются по возрастанию/убыванию элементов в к-го столбца.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 14:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name