Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
15-1199867455
Piroxyline
2008-01-09 11:30
2008.02.10
Про винду *rofl*


2-1200107272
дучф_ч
2008-01-12 06:07
2008.02.10
приложение без установки BDE


2-1200582419
misha_gr
2008-01-17 18:06
2008.02.10
Хранение информации внутри exe - файла.


15-1199879782
pavel_guzhanov
2008-01-09 14:56
2008.02.10
Минимизировать булеву функцию


2-1200563240
Ivolg
2008-01-17 12:47
2008.02.10
Установить пароль




   Наверх