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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2017, 12:30   #1
tutejshy
Форумчанин
 
Регистрация: 13.05.2017
Сообщений: 100
По умолчанию можно ли создать процедуру, которая бы сортировала указанный массив?

Подскажите можно ли создать процедуру, которая бы сортировала указанный массив? Типа пишешь имя этой процедуры, а в скобках имя массива, который нужно отсортировать и она сортирует указанный массив. Потом пишешь опять название процедуры, а в скобках название другого массива и она сортирует уже другой массив. Можно ли создать нечто подобное?
tutejshy вне форума Ответить с цитированием
Старый 14.05.2017, 12:36   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно, для определенного типа массива
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.05.2017, 12:51   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не обязательно определенного если современный Free Pascal или Дельфи 2009+ (Generics).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.05.2017, 13:16   #4
tutejshy
Форумчанин
 
Регистрация: 13.05.2017
Сообщений: 100
По умолчанию

Ну вот у меня два массива [1..9,1..9] of integer, процедура сортировки массива методом пузырька - как записать вот эту процедуру, чтобы она сортировала именно тот массив, который указан(при этом в самой процедуре не должны быть указаны наименования этих двух массивов)?
tutejshy вне форума Ответить с цитированием
Старый 14.05.2017, 13:21   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Образец:
Код:
type tArri=array of integer;

procedure Sort(var p:tArri);
var i,z:integer;
    d:boolean;
begin
   Repeat
      d:=true;
      For i:=Low(p) to High(p)-1 do
         If p[i]>p[i+1] then
         begin
            z:=p[i];
            p[i]:=p[i+1];
            p[i+1]:=z;
            d:=false;
         end;
   Until d;
end;

var p1,p2:tArri;
    i,len:integer;
begin
   Randomize;
   len:=5+Random(10);
   SetLength(p1,len);
   For i:=0 to len-1 do
      p1[i]:=Random(21);
   len:=5+Random(10);
   SetLength(p2,len);
   For i:=0 to len-1 do
      p2[i]:=Random(21);
   For i:=Low(p1) to High(p1) do
      Write(p1[i]:2,'  ');
   Writeln;
   Sort(p1);
   For i:=Low(p1) to High(p1) do
      Write(p1[i]:2,'  ');
   Writeln;
   Writeln;
   For i:=Low(p2) to High(p2) do
      Write(p2[i]:2,'  ');
   Writeln;
   Sort(p2);
   For i:=Low(p2) to High(p2) do
      Write(p2[i]:2,'  ');
   Writeln;
   Writeln;
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 14.05.2017, 13:22   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это двумерный массив, а не два массива.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.05.2017, 13:42   #7
tutejshy
Форумчанин
 
Регистрация: 13.05.2017
Сообщений: 100
По умолчанию

два массива по [1..9,1..9] - неужели это не понятно?
tutejshy вне форума Ответить с цитированием
Старый 14.05.2017, 13:48   #8
tutejshy
Форумчанин
 
Регистрация: 13.05.2017
Сообщений: 100
По умолчанию

Ага,понял: надо установить тип данных. Спс.
tutejshy вне форума Ответить с цитированием
Старый 14.05.2017, 19:51   #9
tutejshy
Форумчанин
 
Регистрация: 13.05.2017
Сообщений: 100
По умолчанию

Кстати, Неверов, а эта прога будет работать с двумерными массивами?
tutejshy вне форума Ответить с цитированием
Старый 14.05.2017, 20:07   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет конечно, разве не видно что там одномерный?
Но передача в процедуру, о которой и был вопрос, останется такой же (ну только заменить на двумерный).

Для сортировки двумерного массива сначала надо определиться что значит "отсортировать двумерный массив". Там ж разные варианты порядка возможны.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подпрограмма , которая из текста S изымала указанный символ х Делфи 7 (консольный режим) программирование Помощь студентам 2 01.12.2013 20:23
Создать программу,имеющая процедуру,кторая в производном текстовом файле,которая имеет слова и числа,изменяющая все числа числа,ме Fingergod Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 20:08
можно ли передать динамический массив в процедуру "по значению" ? vedro-compota Общие вопросы Delphi 2 05.05.2010 23:11
как создать процедуру для кнопки которая еще не создана? DeepPurple Общие вопросы Delphi 10 21.05.2009 13:50
Можно ли создать массив х Paul_AG Общие вопросы C/C++ 5 28.03.2009 22:18