Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.10;
Скачать: CL | DM;

Вниз

сортировка массива записей   Найти похожие ветки 

 
яблочго   (2008-01-13 20:13) [0]

Есть тип
Stud = record
 Name: String[20];
 Year: Integer;
end;


Есть массив Studs: array of Stud

Как отсортировать записи в массиве Studs по возрастанию поля Year в каждой записи?


 
Efir   (2008-01-13 20:42) [1]

Тогда вопрос к Вам, а как можно отсортировать обычный массив?


 
palva ©   (2008-01-13 21:51) [2]

Слышал, есть метод пузыря. Ставишь пузырь знакомому программисту...


 
яблочго   (2008-01-14 00:33) [3]

тут суть не в том. если бы был массив типа array of Integer или там array of Real то всё просто. но тут сортировка именно по ПОЛЮ в записи, в этом вся сложность.


 
sniknik ©   (2008-01-14 00:45) [4]

> в этом вся сложность.
т.е. ее нет? т.к. принцип одинаковый.
в чем же тогда дело?


 
Германн ©   (2008-01-14 01:05) [5]


> яблочго   (14.01.08 00:33) [3]

Тогда  palva ©   (13.01.08 21:51) [2]


 
Юрий Зотов ©   (2008-01-14 02:01) [6]

> яблочго   (14.01.08 00:33) [3]

В первом случае пишем:
if Integer1 > Integer2 then ...

Во втором случае пишем:
if Record1.Field > Record2.Field then ...

И какая же тут разница?


 
KilkennyCat ©   (2008-01-14 04:41) [7]


> И какая же тут разница?


странный вопрос... это ж очевидно: в первом случае Integer, а во втором Record.Field!


 
Гостик   (2008-01-14 16:08) [8]

Скачай TSortList (http://i-7.webhost.ru/sortlistr.zip) и работай с листом, а не с массивом


 
palva ©   (2008-01-14 17:38) [9]

Можно обратиться к стандартной функции.

{$APPTYPE CONSOLE}
type
 Stud = record
  Name: String[20];
  Year: Integer;
 end;
var
 sarr: array[1..10] of Stud;
 i: Integer;

function cmp(var a, b): Integer; cdecl;
begin
 Result := Stud(a).Year - Stud(b).Year;
end;  

procedure qsort(base: Pointer; num, size: Integer; cmpfun: Pointer);
 cdecl; external "msvcrt.dll";

begin
 for i:=1 to 10 do sarr[i].Year := Random(20) + 1990;
 qsort(@sarr, 10, sizeof(Stud), @cmp);
 for i:=1 to 10 do WriteLn(sarr[i].Year);
end.


 
Dennis I. Komarov ©   (2008-01-14 18:15) [10]

> [8] Гостик   (14.01.08 16:08)

На каждый чих, надо обязательно чего-нить скачать :)



Страницы: 1 вся ветка

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
15-1199643011
vrem_
2008-01-06 21:10
2008.02.10
О, оптимальнейший из колобков)


15-1199907116
Rouse_
2008-01-09 22:31
2008.02.10
Махонькое обновление моего ресурса


2-1200655402
_Shuler_
2008-01-18 14:23
2008.02.10
ХИНТ


15-1199865119
user_
2008-01-09 10:51
2008.02.10
Исходный код


2-1200801804
ply
2008-01-20 07:03
2008.02.10
глобальная переменная - доступ из всех форм