Skip to main content
Аватар пользователя sniper_
Не в сети
Студент
Зарегистрирован: 25.09.2005
Сообщения: 253
Баллы: 254
Delphi

решите задачу плиз

Разработать программу сортировки матрицы размером N X
Nтак, чтобы элементы в каждой отсортированной матрицы распологались по возрастанию и ни один элемент в i-ой строке не был больше любого элемента в i+1 строке. Сортировку целесообразно выполнить над одномерным массивом из N*N элементов, который "Накладывается" на исходную матрицу.

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Delphi

"sniper_" пишет:

решите задачу плиз

Разработать программу сортировки матрицы размером N X
Nтак, чтобы элементы в каждой отсортированной матрицы распологались по возрастанию и ни один элемент в i-ой строке не был больше любого элемента в i+1 строке. Сортировку целесообразно выполнить над одномерным массивом из N*N элементов, который "Накладывается" на исходную матрицу.

Вообще-то тут не просят решать за тебя - тут просят помощи. Тем более задача элементарная:
1) Переписываешь все элементы в одномерный массив длинной N*N...
2) Сортируешь его любым метождом
3) Переписываешь массив обратно (первые N элементов в 1-ю строку, вторые во вторую и тд)

вообще нечего делать... так уж и быть:

const N = 10;                     // размер матрицы<br />
type tmatrix = array [1..N,1..N] of integer;        // тип - матрица<br />
procedure matrix_sort(var matrix:tmatrix);       // сортировка<br />
var<br />
  i,j,k,l:integer;                                <br />
  temp:array [1..N*N] of integer;                    // одномерный массив<br />
begin<br />
  for k:=0 to N*N - 1  do begin                        // переписываем матрицу в массив<br />
    i:=k div N + 1;<br />
    j:=k mod N + 1;<br />
    temp[k+1]:=matrix[i,j];<br />
  end;<br />
  for i:=N*N-1 downto 2 do                          // соритровка (например "Пузырёк")<br />
    for j:=1 to i do begin<br />
      if temp[j] > temp[j+1] then begin<br />
        k:=temp[j];<br />
        temp[j]:=temp[j+1];<br />
        temp[j+1]:=k;<br />
      end;<br />
    end;<br />
  for k:=0 to N*N - 1  do begin                    // переписываем элементы обратно<br />
    i:=k div N + 1;<br />
    j:=k mod N + 1;<br />
    matrix[i,j]:=temp[k+1];<br />
  end;<br />
end;

Аватар пользователя sniper_
Не в сети
Студент
Зарегистрирован: 25.09.2005
Сообщения: 253
Баллы: 254
Delphi

"забыл_пароль" пишет:

Вообще-то тут не просят решать за тебя - тут просят помощи. Тем более задача элементарная:
1) Переписываешь все элементы в одномерный массив длинной N*N...
2) Сортируешь его любым метождом
3) Переписываешь массив обратно (первые N элементов в 1-ю строку, вторые во вторую и тд)

вообще нечего делать... так уж и быть:

const N = 10;                     // размер матрицы<br />
type tmatrix = array [1..N,1..N] of integer;        // тип - матрица<br />
procedure matrix_sort(var matrix:tmatrix);       // сортировка<br />
var<br />
  i,j,k,l:integer;                                <br />
  temp:array [1..N*N] of integer;                    // одномерный массив<br />
begin<br />
  for k:=0 to N*N - 1  do begin                        // переписываем матрицу в массив<br />
    i:=k div N + 1;<br />
    j:=k mod N + 1;<br />
    temp[k+1]:=matrix[i,j];<br />
  end;<br />
  for i:=N*N-1 downto 2 do                          // соритровка (например "Пузырёк")<br />
    for j:=1 to i do begin<br />
      if temp[j] > temp[j+1] then begin<br />
        k:=temp[j];<br />
        temp[j]:=temp[j+1];<br />
        temp[j+1]:=k;<br />
      end;<br />
    end;<br />
  for k:=0 to N*N - 1  do begin                    // переписываем элементы обратно<br />
    i:=k div N + 1;<br />
    j:=k mod N + 1;<br />
    matrix[i,j]:=temp[k+1];<br />
  end;<br />
end;

благодар просто все задачи решил а эту тему вообще не понял..... пойду попробую здать)))

Аватар пользователя -*Bogach*-
Не в сети
Студент
Зарегистрирован: 02.02.2007
Сообщения: 282
Баллы: 296
Delphi

а у кого - нибудь есть все команды на Delphi

Аватар пользователя Gr0l
Не в сети
Студент
Зарегистрирован: 16.10.2005
Сообщения: 349
Баллы: 367
Delphi

"&#045;*Bogach*&#045;" пишет:

а у кого - нибудь есть все команды на Delphi

В смысле все команды, ты имеешь WinAPI функции? Или что?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".