Как будет выглядеть формула в паскале для вечного календаря w = ( d+[(13m-1)/5]+[5y/4]+[-7c/4] ) % 7

ersyndosmaganbet ersyndosmaganbet    1   07.07.2019 16:10    0

Ответы
NAZBEK NAZBEK  30.07.2020 21:17
В условии есть одна неточность: не раскрыта суть операции "квадратные скобки". На самом деле это функция floor, возвращающая целое число, не большее исходного.
Перепишем формулу в надлежащий математический вид:
\displaystyle W=\left(d+\left\lfloor\frac{13m-1}{5}\right\rfloor+\left\lfloor\frac{5y}{4}\right\rfloor +\left\lfloor\frac{-7c}{4}\right\rfloor\right)mod \ 7
В Паскале операция floor для неотрицательного вещественного числа х, а также для отрицательного вещественного числа х с нулевой дробной частью отображается на функцию Trunc(х). Если дробная часть отрицательного числа ненулевая, нужно использовать отображение Trunc(x)-1.
Теперь мы можем записать соответствующее выражение для языка Паскаль:
if c mod 4=0 then W:=-7*(c div 4) else W:=Trunc(-7*c/4)-1;
W:=(d+Trunc((13*m-1)/5)+Trunc(5*y/4)+W) mod 7;
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика