Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 31.05.2015, 18:51   #1 (permalink)
Sabin
Новичок
 
Регистрация: 31.05.2015
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Задача Pascal

Даны натуральные числа a1, b1, c1, a2, b2,c2, которые указывают две даты (число, месяц, год). Вычислить количество дней, прошедших между двумя этими датами.(через записи)

Sabin вне форума   Ответить с цитированием

Старый 31.05.2015, 18:51
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую обратить внимание на аналогичные темы

Задача Turbo Pascal
Задача. Pascal
Pascal, задача

Старый 31.05.2015, 19:15   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

И для нафига тут записи?
Vladimir_S вне форума   Ответить с цитированием
Старый 31.05.2015, 19:33   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Вероятно, для того, чтобы удовлетворить эго преподавателя
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 31.05.2015, 19:47   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Вероятно, для того, чтобы удовлетворить эго преподавателя
Расстрелять. Из крупнокалиберного.
Ладно, программку я нарисую, поскольку люблю такие задачки, а уж записи пускай студент напару с преподом туда впихивают, как хотят.
Vladimir_S вне форума   Ответить с цитированием
Старый 31.05.2015, 20:17   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Код:
Const
 D_nb:Array[0..11] of Word=(0,31,59,90,120,151,181,212,242,273,303,334);
 D_bb:Array[0..11] of Word=(0,31,60,91,121,152,182,213,243,274,304,335);

Var
 N1,N2,DN:LongInt;
 a1,b1,c1,a2,b2,c2:Word;

Function Bis(Year:Word):Boolean;
begin
 Bis:=(((Year mod 4)=0) and ((Year mod 100)>0)) or ((Year mod 400)=0);
end;

Begin
 Write('Date_1 = ');
 Readln(a1);
 Write('Month_1 = ');
 Readln(b1);
 Write('Year_1 = ');
 Readln(c1);
 Write('Date_2 = ');
 Readln(a2);
 Write('Month_2 = ');
 Readln(b2);
 Write('Year_2 = ');
 Readln(c2);

 N1:=(c1-1)*365+((c1-1) div 4)-((c1-1) div 100)+((c1-1) div 400);
 if Bis(c1) then N1:=N1+D_bb[b1-1] else N1:=N1+D_nb[b1-1];
 N1:=N1+a1;

 N2:=(c2-1)*365+((c2-1) div 4)-((c2-1) div 100)+((c2-1) div 400);
 if Bis(c2) then N2:=N2+D_bb[b2-1] else N2:=N2+D_nb[b2-1];
 N2:=N2+a2;

 Writeln;

 Writeln('Result: ',N2-N1,' days');

 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 08:43.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.