Сортировка методом «пузырька» |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сортировка методом «пузырька» |
Дарина |
25.05.2014 17:37
Сообщение
#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; |
Федосеев Павел |
26.05.2014 18:50
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 8 |
Да, непременима.
Но сравнение сложных типов можно реализовать отдельной функцией. Например, для твоего случая
Но в данном конкретном случае дату можно заменить на число и сравнивать два целых числа. Вот смотри, берём дату 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 Теперь дата это не набор чисел а одно число - бери и сравнивай |
Текстовая версия | 6.06.2024 1:33 |