![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
__V |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Женский Реальное имя: Вера Репутация: ![]() ![]() ![]() |
Даны две тройки чисел a,b,c и x,y,z. (число, месяц, год). Определить количество полных лет, прошедших между этими датами.
помогите, пожалуйста Сообщение отредактировано: __V - 4.02.2012 11:36 |
![]() ![]() |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Если сравнивать напрямую даты,то долго и нудно проверять все условия, начиная с годов,вы начните, покажите свои идеи,а мы поможем.
|
Федосеев Павел |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Можно дату представить в виде одного числа, формируемого примерно так:
Прошу прощения, конечно же (Date1-Date2) div 10000 Сообщение отредактировано: Федосеев Павел - 4.02.2012 19:37 |
sheka |
![]()
Сообщение
#4
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата (Date1-Date2) div 10000 Это не правильное условие проверки. Шаришь почему? Как минимум потому, что (Показать/Скрыть)
|
Федосеев Павел |
![]()
Сообщение
#5
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Цитата Это не правильное условие проверки. Шаришь почему? Как минимум потому, что все твое решение сводится к простому с-z. По-правде говоря, не понимаю. Объясни или покажи пример когда это выражение превратится в глупость... |
sheka |
![]()
Сообщение
#6
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Да, что-то я протупил, прошу прощения
![]() |
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(Федосеев Павел) Объясни или покажи пример когда это выражение превратится в глупость... Я например совершенно не понял, откуда ты взял константы 1,100 и 10000. Потом даннное решение, что-то мне подсказывает, совершенно не учитывает тот факт, что в году может быть не только 365 дней. Автору Воспользуйся поиском, задача решалась неоднократно. Задачи связанные с календарем. можеш посмотреть вот это решение. Сообщение отредактировано: klem4 - 5.02.2012 10:41 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Федосеев Павел |
![]()
Сообщение
#8
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Константы 1, 100 и 10000 взяты из соображения получить из даты 01 февраля 2012 года число 20120201.
Вне зависимости от числа дней в году от 02 марта 2012 до 01 марта 2013 пройдет менее 1 года (20130301-20120302=9999 < 10000), тоже самое и для пары дат 02 марта 2011 - 01 марта 2012 (20120301-20110302=9999 < 10000). Конечно, любому нужно ознакомиться с юлианскими датами и получением количества дней между ними (при программировании сенсорных панелей BrainChild эти алгоритмы меня сильно выручили), но эта задача гораздо проще и должна решаться проще. К тому же, знание, что между датами прошло 365 дней - пустое без знания високосности и расположения даты относительно 1 марта. Dixi Сообщение отредактировано: Федосеев Павел - 5.02.2012 11:08 |
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Соглашусь с вами. Мне по крайней пока не удалось придумать входные данные, на которых данное решение выдало бы неверный ответ.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 10:57 |