Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2017, 22:47   #1
Ksenia2019
 
Регистрация: 15.07.2017
Сообщений: 8
Вопрос Вычисляю дату Пасхи. Что не так с кодом?

Добрый день.
Я написала программу которая вычисляет дату пасхи.
Она работает, но дата пасхи в 2018 выходит не верная.
Подскажите пожалуйста в чем причина? pascal

Код:
var
 a,b,c,d,e,f,g :integer;
 year,month,day : integer;

begin
 writeln ('введите year ');
 readln(year);
 a := year mod 4;
 b := year mod 7;
 c :=year mod 19;
 d :=(19*c+15) mod 30;
 e := ( 2 * a + 4 * b - d + 34 ) mod 7;
 f := 3+(d+e+21)div 31;
 g := (d+e+21) mod 31;
 month := f;
 day := g + 1;
 writeln('Следующая Пасха состоится ',day,'.0',month,'.',year);
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 06.09.2017 в 09:33.
Ksenia2019 вне форума Ответить с цитированием
Старый 06.09.2017, 01:03   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Все правильно считает. Я проверил - вот ссыла
Только она выдает даты по юлианскому календарю ( по "старому" стилю ).
Прибавьте 13 дней, будет по новому.
Например 26.03.2018 + 13 = 08.04.2018
type_Oleg на форуме Ответить с цитированием
Старый 17.09.2017, 10:35   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
function Pasha(Year: integer): TDateTime;
 var a, b, c: integer;
 begin
    a:=Year mod 19;
    b:=Year mod 4;
    c:=Year mod 7;
    a:=(19*a+15) mod 30;
    b:=(2*b+4*c+6*a+6) mod 7;
    a:=a+b;
    b:=-2+Year div 100-Year div 400;
    If TryEncodeDate(Year, 3, 22, Result) then
       Result:=Result+a+b else
       Result:=0;
 end;
http://newerow1989.narod.ru/publ/fun...emeni/1-1-0-13

С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так с кодом? Afferist Microsoft Office Access 3 12.12.2014 10:00
Что не так с кодом? SL1M_DOGG JavaScript, Ajax 16 13.07.2013 18:28
что не так с кодом? MICROSONIC C++ Builder 4 07.03.2012 01:07
Что с моим кодом не так? cooky Visual C++ 1 28.02.2012 15:10
Подскажите, что не так с кодом Grisha248 Помощь студентам 2 24.05.2009 16:41