Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи, задача про день рождения
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Clerick
Народ выручайте кто может!!!
Необходимо решить следущую задачу: составить прогу, которая выводит те года, в которых день рождения совпадает с "истинным" днем (т.е. тот, когда родился человек). Период времени +50 и -50 лет от текущей даты. Вот такая задача. mega_chok.gif

Большая просьба - помогите!!! Буду очень признателен!!! yes2.gif yes2.gif yes2.gif
klem4
перебераешь все нужные года и смотришь, если день рождения попадает на нужный день, выводишь год ... Посмотри, вот модуль для работы с календарем
Clerick
Цитата(klem4 @ 25.02.2006 15:59) *

перебераешь все нужные года и смотришь, если день рождения попадает на нужный день, выводишь год ... Посмотри, вот модуль для работы с календарем



А без перебора никак??? blink.gif
volvo
Что значит "Без перебора"? blink.gif Сразу вывести ВСЕ совпадающие года? Нет...

Кстати, это фактически не перебор, а цикл:
For Year := CurrYear - 50 To CurrYear + 50 Do
{
Проверить, совпадает ли день недели определенной даты
с днем недели этого же числа в ТЕКУЩЕМ году
}
Clerick
Извиняюсь про "без перебора", ошибся, не то хотел сказать. А насчет цикла тут есть "засада":учитывая что наличие високосных годов даты слишком круто "скачут". Я никак не могу их учесть. blink.gif
volvo
Да тебе и не надо учитывать! В модуле это уже учтено:
uses calenfun; { Тебе же дали ссылку на этот модуль }

const
curr_year = 2006;
var
birth, other: tdate;
birth_day: byte;
year: integer;

begin
with birth do begin
d := 4; m := 5; y := 1971;
end;
birth_day := dayofweek(birth, grigorian);

for year := curr_year - 50 to curr_year + 50 do begin
other := birth;
other.y := year;
if dayofweek(other, grigorian) = birth_day then writeln(year);
end;
end.
Только что проверил на своем дне рождения - все работает...
Clerick
Все сдаюсь... wacko.gif Нельзя ли все прогу сразу??? Буду очень признателен!!! good.gif good.gif good.gif
volvo
Я тебе привел программу полностью... Сходи по ссылке, которую дал klem4, скачай модуль calenfun, и присоедини его к программе...
Clerick
Ну тогда все!!! Огромное спасибо!!! Пошел набивать!!! 1.gif 1.gif 1.gif
volvo
Вот в следующий раз ТЫ будешь сначала приводить свою программу, а потом тебе будут отвечать, ЯСНО? Совсем совесть потеряли - лень даже ПОПРОБОВАТЬ, прежде, чем что-то запостить, а даешь готовое решение - так еще и это не проверяют...

mad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.