Вопрос № 57559: Вот мне как-то писали исходни, где нужно упорядочить список студентов, я не могу упорядочить их по дате, если только по месяцу, году или дню отдельно ...
Нужно еще и по алфовиту, не получается у меня блин ... (...
Вопрос № 57.559
Вот мне как-то писали исходни, где нужно упорядочить список студентов, я не могу упорядочить их по дате, если только по месяцу, году или дню отдельно ...
Нужно еще и по алфовиту, не получается у меня блин ... (
Отвечает: Маренич Владимир
Здравствуйте, Терсков Алексей Николаевич!
....
for i:=1 to n-1 do {сортировка по году}
for j:=n downto i do
if (ms_dt[i].year>ms_dt[j].year) or (ms_dt[i].year=ms_dt[j].year) and (ms_dt[i].name>ms_dt[j].name) then
begin kk:=ms_dt[i]; ms_dt[i]:=ms_dt[j]; ms_dt[j]:=kk;
end;
....
Аналогично для месяца
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 03.10.2006, 13:40 Оценка за ответ: 4 Комментарий оценки: А по алфавиту...
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Терсков Алексей Николаевич!
А в чем, собственно, вопрос? Сортировка у вас пузырьком.
Для сортировки по дате, примените процедуру сортировки по дням, потом, к тому же массиву - по месяцу, а потом по годам.
Чтобы наглядно можно было убедится в эффективности этого способа, попробуйте поэкспериментировать с сортировками по разным полям, например, в Excel-е.
В Delphi для сравнения строк можно точно также применять стандартные операторы сравнения: <, >, =< <>. Если в Pascal-е, на которым пишите вы, это нельзя, тол должна быть другая какая-то функция сравнения строк. Посмотрите справку, поищите в интернете. В си-то есть куча функций для сравнения строк - значит и в Паскале должны быть.
--------- Не узнаешь - не попробуешь.