| 
| 
 | Вопрос # 2 780/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 У меня есть следующая структура:
 type
 TMyUserData = record
 UID: Word;
 UGroupID: Word;
 UPriorInGroup: Byte;
 end;
 и массив
 var
 UserData: array[1..100] of TMyUserData;
 Подскажите как мне отсортировать этот массив сначала по полю UGroupID, а потом еще по полю UPriorInGroup.
 Заранее спасибо!
 
|  |   Вопрос задал: Muratov Radik (статус: Посетитель)Вопрос отправлен: 14 мая 2009, 15:02
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Muratov Radik!думаю, на таких размерах, сортировка пузырьком будет достаточно.
 "сначала по полю UGroupID, а потом еще по полю UPriorInGroup." - это две разных сортировки или одна, но если первое поле совпадает, то сортировать по второму? Я думаю, что это второй вариант, соответсвенно и код.
 
 var 
temp:TMyUserData;
begin
for i := 1 to 99 do
for j := i+1 to 100 do
if ((Userdata[i].UGroupID > Userdata[j].UGroupID) or (Userdata[i].UGroupID = Userdata[j].UGroupID) and
(Userdata[i].UPriorInGroup > Userdata[j].UPriorInGroup)) then
begin
  temp := Userdata[i];
  Userdata[i] := Userdata[j];
  Userdata[j] := temp;
end; 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 14 мая 2009, 16:33
 Оценка за ответ: 5
 Комментарий к оценке: Большое спасибо! Вариант действительно второй. И прошу прощения за вопрос такой. Что-то я "затупил" поначалу, даже не смог нормально сформулировать, но потом сам разобрался. Но все-равно спасибо! |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |