inf: array [1..8] of note;
dt: array[1..3] of integer;
i, j: integer; s: string [10];
for i:=1 to n-1 do {Сортировка по возрастанию}
for j:=i+1 to n do
if inf[i].dt > inf[j].dt then
begin
s:= inf[i].dt;
inf[i].dt:= inf[j].dt;
inf[j].dt:= s;
end;
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сортировка методом «пузырька» |
Дарина |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Женский Репутация: 0 |
Всю программу скидывать не буду, смысл задачи в том, что нужно упорядочить записи по датам дней рождения. Что-то у меня не получает. При компилировании выдает "Операция '>' не применима к типу array [1..3] of integer". Помогите, пожалуйста)
Код inf: array [1..8] of note; dt: array[1..3] of integer; i, j: integer; s: string [10]; for i:=1 to n-1 do {Сортировка по возрастанию} for j:=i+1 to n do if inf[i].dt > inf[j].dt then begin s:= inf[i].dt; inf[i].dt:= inf[j].dt; inf[j].dt:= s; end; |
Федосеев Павел |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 9 |
Да, непременима.
Но сравнение сложных типов можно реализовать отдельной функцией. Например, для твоего случая
Но в данном конкретном случае дату можно заменить на число и сравнивать два целых числа. Вот смотри, берём дату YYYY MM DD - массив из трёх чисел - и превращаем в одно число DD+100*MM+10000*YYYY в твоём случае if inf[i].dt > inf[j].dt thenпревращается в if (inf[i].dt[1]+inf[i].dt[2]*100+inf[i].dt[3]*10000) > (inf[j].dt[1]+inf[j].dt[2]*100+inf[j].dt[3]*10000) then Теперь дата это не набор чисел а одно число - бери и сравнивай |
Текстовая версия | 16.06.2024 5:04 |