![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите с задачей
Авиабилет Структура записи -пункт назначения - номер рейса - модель самолета - ФИО пассажира - Дата вылета: -день -месяц - год Записи упорядоченный по пункту назначения . Определить пункт назначения , в который вылетает наибольшее кол-во пассажиров |
|
#2
|
|||
|
|||
|
А записывать куда?)
или "в уме"(с) |
|
#3
|
|||
|
|||
|
так и хочется ответить:
Код:
SELECT Destination, Count(1) AS Cnt FROM TicketList GROUP BY Destination ORDER BY 2 DESC LIMIT 1 Задачу полностью ставь, давай свой код, в котором реализованно все, кроме проблемного места. Тогда кто-то поможет. По алгоритму. Идешь по списку/массиву/что-там-у-тебя-где-эти-записи-храняться. Для каждой записи с тем же пунктом назначения к счетчику прибавляешь единичку. При смене пункта назначения сравниваешь с пред. значением, если больше, то запоминаешь новое. Как то так: Код:
var
Dest : String;
DestCnt : Integer;
CurDest : String;
CurCnt : Integer;
I : Integer;
begin
Dest := '';
DestCnt := 0;
CurDest := '';
CurCnt := 0;
For I := Low(A) To High(A) Do // массив с записями
If CurDest = A[i].Dest
Then Inc(CurCnt)
Else
Begin
If CurCnt > DestCnt Then
Begin
Dest := CurDest;
DestCnt := CurCnt;
End;
Curcnt := 0;
CurDest := A[i].Dest;
End;
If CurCnt > DestCnt Then
Begin
Dest := CurDest;
DestCnt := CurCnt;
End;
ShowMessage(Dest);
end; |
|
#4
|
|||
|
|||
|
А решение программно или динамически?
Последний раз редактировалось ShamanVV, 28.10.2016 в 17:34. |
|
#5
|
|||
|
|||
|
Чего???
Нифига не понял последний вопрос... |