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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2012, 22:19   #1
Оля163
Новичок
Джуниор
 
Регистрация: 13.06.2012
Сообщений: 1
По умолчанию двумерная сортировка

Здравствуйте, помогите пожалуйста написать программу сортировки двумерного массива на Delphi, только не методом пузырька.
Заранее спасибо)*
Оля163 вне форума Ответить с цитированием
Старый 14.06.2012, 06:39   #2
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Вот, смотри и изучай!!!

Код:
program MatrixSort;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Type
    matr = array  of array of integer;

 Var
  B:matr;
  N,M:integer;

{ЗАПОЛНЕНИЕ МАТРИЦЫ}
PROCEDURE CreateMatriza;
 Var
  i,j:integer;
 BEGIN
   For i:=0 to N-1 do
    For j:=0 to M-1 Do
      B[i,j]:=random(20);

 END;
{ОТОБРАЖЕНИЕ МАТРИЦЫ}
PROCEDURE ShowMatriza;
 Var
  i,j:integer;
 BEGIN
   For i:=0 to N-1 do
    Begin
      For j:=0 to M-1 Do
        Write(B[i,j],'     ');
      Writeln;
    End
 END;

{СОРТИРОВКА ВСТАВКАМИ}
PROCEDURE InsertionSort;
  Var
    A:matr;
    i,j,k,z:integer;
BEGIN
 Writeln;
 {СОЗДАНИЕ АНАЛОГИЧНОГО ДОП. МАССИВА}
 SetLength(A,N,M);
 For i:=0 to N-1 do
   For j:=0 to M-1 do
   A[i,j]:=B[i,j];
 {СОРТИРОВКА}
 For z:=0 to N-1 do
  For i:=0 to M-1 do
   Begin
    j:=i;
    While (j>0) and (B[z,j-1]>=A[z,i]) do
     Begin
      B[z,j]:=B[z,j-1];
      j:=j-1;
     End;
    B[z,j]:=A[z,i];
   End;
 {ВЫВОД МАССИВА B}
 Writeln('Resultat sortirovki metodom vstavok:');
 Writeln;
 For i:=0 to N-1 do
  Begin
   For j:=0 to M-1 do
    Write(B[i,j],'     ');
    Writeln;
  End
END;

{ТЕЛО}
BEGIN
  Write('Vvedite chislo strok:  ');
  Readln(N);
  Writeln;
  Write('Vvedite chislo stolbzov:  ');
  Readln(M);
  SetLength(B,N,M);
  Writeln;
  CreateMatriza;
  Writeln('Ishhodnaj matriza:');
  Writeln;
  ShowMatriza;
  InsertionSort;
  Readln;
END.
<----Весы Там.
Npwas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерная матрица и их сумма Sane Общие вопросы C/C++ 3 04.05.2012 16:02
Двумерная матрица (C#) kuato Помощь студентам 0 13.12.2011 13:57
линейная двумерная интерполяция армфайт Общие вопросы C/C++ 0 13.01.2011 11:36
двумерная интерполяция по численым методам. армфайт Помощь студентам 6 07.01.2011 15:55
двумерная упаковка (2dbpp) AsPin Помощь студентам 0 09.09.2010 23:12