• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Задача Pascal

  • Автор темы Автор темы Sabin
  • Дата начала Дата начала

Sabin

Ученик
Регистрация
31 Май 2015
Сообщения
1
Реакции
0
Баллы
0
Задача Pascal

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

 
И для нафига тут записи?
 
Вероятно, для того, чтобы удовлетворить эго преподавателя :))
 
Вероятно, для того, чтобы удовлетворить эго преподавателя :))
Расстрелять. Из крупнокалиберного.
Ладно, программку я нарисую, поскольку люблю такие задачки, а уж записи пускай студент напару с преподом туда впихивают, как хотят.
 
Код:
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.
 
Назад
Сверху