|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2008, 00:53 | #1 |
Регистрация: 06.06.2008
Сообщений: 3
|
Занятные задачки
Вот одна из тех задач, которые вызвали у меня интерес.Оставляйте свои предложения по решению.
День рождения Витя с нетерпением ждет своего дня рождения, и дней рождения своих друзей.Чтобы облегчить подсчет оставшихся до праздников дней, он решил написать программу, которая сама считает количество дней, которые остались до указанного день рождения.Заданы день рождения и месяц рождения, а также текущие день,месяц и год. Определить, сколько дней осталось до Д\р. Примечание: высокосные года-это те, номер которых делится на 400, а также те, номер которых делится на 4, но не делится на 100; Пример1: Ввод: 19 04 19 04 2002 Вывод:0 Пример2: Ввод: 05 05 19 04 2002 Вывод:16 |
07.06.2008, 01:52 | #2 |
Форумчанин
Регистрация: 06.06.2008
Сообщений: 105
|
Хм..
Создаем массив из 12 Integer - кол-во дней в месяце.. - все кроме февраля заполняем, считаем февраль. Потом просто смотрим какие месяцы пройдут целиком и складываем те дни, с днями - которые в неполных месяцах будут |
08.06.2008, 17:30 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
dwork:=encodeDate(19,4,2002);
dr:=encodedate(05.05,2002); if dr>dwork then dr:=encodedate(05,05,2002-1); result:=daybetween(dowrk,dr);
программа — запись алгоритма на языке понятном транслятору
|
08.06.2008, 17:55 | #4 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Обычная задача которую уже вроде рассматривали на форуме.
Преподу зачёт что придумал нормальное условие к задаче а не какоенибудь тупое и еле понятно.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
08.06.2008, 18:15 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, процедурки, "выдернутые" из TPDATE ©TurboPower
Код:
|
10.06.2008, 16:03 | #6 |
Регистрация: 06.06.2008
Сообщений: 3
|
Вот моё решение.Оставляйте комментарии...
Program Den_rozlenya; Var dr,mr,dt,mt,g,g1,n,i,k:integer; a:array[1..100]of integer; label 10,20; Begin a[1]:=31;a[8]:=31; For i:=2 to 7 do If a[i-1]=31 then a[i]:=30 else a[i]:=31; For i:=9 to 12 do If a[i-1]=31 then a[i]:=30 else a[i]:=31; Read(dr,mr,dt,mt,g); If (g mod 400=0)or((g mod 4=0)and(g mod 100<>0)) then a[2]:=29 else a[2]:=28; If (dr=29)and (mr=2) then For i:=g to 3000 do If (i mod 400=0)or((i mod 4=0)and(i mod 100<>0)) then begin g1:=i; g1:=g1-g; k:=1; break; end; dr:=28; 20:; If (mt<mr)or((mt=mr)and(dr>=dt)) then begin For i:=mt to mr-1 do n:=n+a[i]; If dt<dr then n:=n+abs(dt-dr) else n:=n-abs(dt-dr); goto 10; end; n:=0; For i:=mt to 12 do n:=n+a[i]; g:=g+1; If (g mod 400=0)or((g mod 4=0)and(g mod 100<>0)) then a[2]:=29 else a[2]:=28; mt:=1; goto 20; 10:; if k=1 then n:=n+g1*365+1; Writeln(n); End. |
13.06.2008, 10:39 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ОЧЕНЬ плохо!! :-(
прежде всего - она НЕ РАБОТАЕТ!! для тестовых данных из ВАШЕГО ЖЕ примера: 19 04 19 04 2002 программа выводит 9 с алгоритмом просто страшно разбираться!!! даже на первый взгляд: зачем массив месяцев до 100, почему он называется a зачем метки и переходы, зачем цикл до 3000 года?? (For i:=g to 3000 do ...) И используйте форматирование с помощью тэга CODE!! Последний раз редактировалось Serge_Bliznykov; 13.06.2008 в 10:43. |
16.10.2012, 13:02 | #8 |
- Дорогой, а ты ку
Форумчанин
Регистрация: 06.10.2012
Сообщений: 181
|
Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 16.10.2012 в 13:32. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задачки | мандаринка | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 02.02.2008 17:02 |
Задачки на Си | Cyn4uk | Помощь студентам | 3 | 06.12.2007 23:51 |
Задачки по С | Aero | Помощь студентам | 3 | 04.10.2007 18:41 |