Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 14.12.2008, 21:05
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Ну в таком случае можно извратится до такого:
Код:
type
 TMyRec = record
           AName: String;
           ADate: array [1..3] of Integer;
          end;
var
 MyRec : array [1..10] of TMyRec;
 AMyRec: TMyRec;

 for i := 1 to 10 do
  for j := 1 to 10-i do
   if MyRec[j].ADate[1] < MyRec[j+1].ADate[1] then
   begin
    AMyRec := MyRec[j];
    MyRec[j] := MyRec[j+1];
    MyRec[j+1] := AMyRec;
   end;

 for i := 1 to 10 do
  for j := 1 to 10-i do
   if MyRec[j].ADate[2] < MyRec[j+1].ADate[2] then
   begin
    AMyRec := MyRec[j];
    MyRec[j] := MyRec[j+1];
    MyRec[j+1] := AMyRec;
   end;

 for i := 1 to 10 do
  for j := 1 to 10-i do
   if MyRec[j].ADate[3] < MyRec[j+1].ADate[3] then
   begin
    AMyRec := MyRec[j];
    MyRec[j] := MyRec[j+1];
    MyRec[j+1] := AMyRec;
   end;

MyRec[j].ADate[1] - дата
MyRec[j].ADate[2] - месяц
MyRec[j].ADate[3] - год
Ответить с цитированием
  #17  
Старый 14.12.2008, 21:13
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

к сожалению не работает

p.s. я уже так извращался
Ответить с цитированием
  #18  
Старый 14.12.2008, 21:18
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Как не работет? У меня работало О_о
Ответить с цитированием
  #19  
Старый 14.12.2008, 21:24
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

стоп, я делал почти так.. я сначала сортировал год, потом месяц, потом число.. ща попробую твоим вариантом..


по поводу того что не работает я имел ввиду мой пост.. там где идея про longint
Ответить с цитированием
  #20  
Старый 14.12.2008, 21:29
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

все, проверил.. пашет )) я был близок) спасибо всем)
Ответить с цитированием
  #21  
Старый 15.12.2008, 13:41
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Странно, у меня работает:

Код:

type
 TDate  =  record
  Y: integer;
  M: integer;
  D: integer;
 end;

 TDates  =  array of TDate;

 var
 D: TDates;

procedure Sort;
var
 i, k: integer;
 flag: boolean;
 t: TDate;
begin
k  :=  1;
 repeat
  flag  :=  true;
  for i  :=  0 to High(D)  -  k do
   if (D[i].Y  *  1000  +  D[i].M  *  10  +  D[i].D)  >  (D[i  +  1].Y  *  1000  +  D[i  +  1].M  *  10  +  D[i  +  1].D) then begin
    t  :=  D[i];
    D[i]  :=  D[i  +  1];
    D[i  +  1]  :=  t;
    flag  :=  false;
   end;
   inc(k);
 until flag  =  true;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025