![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сортировка массива записей [D7, Win2k, WinXP]
яблочго © (2008-01-13 20:13:00)Есть тип
Stud = record
Name: String[20];
Year: Integer;
end;
Есть массив Studs: array of Stud
Как отсортировать записи в массиве Studs по возрастанию поля Year в каждой записи?
Dennis I. Komarov (2008-01-14 18:15:00) [1]> [8] Гостик (14.01.08 16:08)
На каждый чих, надо обязательно чего-нить скачать :)
palva (2008-01-14 17:38:00) [2]Можно обратиться к стандартной функции.
{$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.
Гостик (2008-01-14 16:08:00) [3]Скачай TSortList ( http://i-7.webhost.ru/sortlistr.zip) и работай с листом, а не с массивом
KilkennyCat (2008-01-14 04:41:00) [4]
> И какая же тут разница?
странный вопрос... это ж очевидно: в первом случае Integer, а во втором Record.Field!
Юрий Зотов (2008-01-14 02:01:00) [5]> яблочго (14.01.08 00:33) [3]
В первом случае пишем:
if Integer1 > Integer2 then ...
Во втором случае пишем:
if Record1.Field > Record2.Field then ...
И какая же тут разница?
Германн (2008-01-14 01:05:00) [6]
> яблочго (14.01.08 00:33) [3]
Тогда palva © (13.01.08 21:51) [2]
sniknik (2008-01-14 00:45:00) [7]> в этом вся сложность.
т.е. ее нет? т.к. принцип одинаковый.
в чем же тогда дело?
яблочго (2008-01-14 00:33:00) [8]тут суть не в том. если бы был массив типа array of Integer или там array of Real то всё просто. но тут сортировка именно по ПОЛЮ в записи, в этом вся сложность.
palva (2008-01-13 21:51:00) [9]Слышал, есть метод пузыря. Ставишь пузырь знакомому программисту...
Efir (2008-01-13 20:42:00) [10]Тогда вопрос к Вам, а как можно отсортировать обычный массив?