Текущий архив: 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.46 MB
Время: 0.046 c