Вопрос № 131855: Здравствуйте, эксперты! Помогите, пожалуйста, отсортировать по возрастанию двунаправленный список!...Вопрос № 131892: Добрый день
Помогите пожалуйста с программой у меня возникло 3 проблемы
1)При подсчете секунд выводится отрицательно число
2)Подскажите как мне сделать так что бы после при введении даты считался и месяц то есть... я ввел допустим 95 дней...
Вопрос № 131.855
Здравствуйте, эксперты! Помогите, пожалуйста, отсортировать по возрастанию двунаправленный список!
Отправлен: 12.04.2008, 16:45
Вопрос задал: Zulus_90 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Denisss
Здравствуйте, Zulus_90!
Пример сортировки двусвязных списков приведен в приложении. За основу примера взят код (c небольшими преобразованиями) сортировки двусвязных списков методом слияния из книги Джулиана Бакнелла "Фундаментальные алгоритмы и структуры данных в Delphi".
Размерность списка задана через константу N, но можно и динамически задавать это значение (например, спрашивать у пользователя это значение). Также можно "заставить" пользователя вводить значения вручную.
Вывод значений списка до сортировки и после выполняется при его создании и удалении соответственно.
Успехов!
Приложение:
--------- Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...
Ответ отправил: Denisss (статус: Профессионал) Россия, Москва ICQ: 281599577 ---- Ответ отправлен: 14.04.2008, 11:17 Оценка за ответ: 4
Вопрос № 131.892
Добрый день
Помогите пожалуйста с программой у меня возникло 3 проблемы
1)При подсчете секунд выводится отрицательно число
2)Подскажите как мне сделать так что бы после при введении даты считался и месяц то есть... я ввел допустим 95 дней и у меня показалось что это 2 месяца
3)То же самое что и в пункте 2 токо с годом....
Отвечает: Пупорев Юрий Борисович
Здравствуйте, Герасимов Виталий Владиславович!
1) В одних сутках 86400 секунд, что превышает допустимые размеры типа Integer, поэтому смените его на Longint.
2) В реальных задачах с датами учитывают, что не все месяцы одинаковой длины, как у вас по 31 дню. Если вам в принципе это не важно, то возимите хотя бы 30 дней, это ближе к средней продолжительности месяца. Дни в месяцы: mes:=dey div 30;,т.е целый остаток от деления дней на 30.
3) Допустим у вас 10 000 дней. Нужно грубо перевести в годы, месяцы и дни. God:=10000 div 365; god=27; mes:=10000 mod 365 div 30; mes=4;
day:=10000-god*365-mes*30; day=25;
Ответ отправил: Пупорев Юрий Борисович (статус: Студент)
Ответ отправлен: 12.04.2008, 22:33 Оценка за ответ: 5 Комментарий оценки: Все идеально идет! спасибо =) хотя я потер вот эту строку: day:=10000-god*365-mes*30;
Без нее все шло как надо =) единственный минус что год и месяц учитываются только после как они закончились =)
все суппер :)
Большое Пасибо :D