Program pryam;
Var y1, y2, y3, x1, x2 : real;
Begin
writeln ('Введите координату (у) верхней точки прямой');
readln (y1);
writeln ('Введите координату (у) нижней точки прямой');
readln (y2);
writeln ('Введите координату (х) точек-концов прямой');
readln (x1);
writeln ('Введите координату (у) точки, принадлежность к прямой которой нужно определить');
readln (y3);
writeln ('Введите координату (х) точки, принадлежность к прямой которой нужно определить');
readln (x2);
if (y3<=y1) and (y3>=y2) and (x2=x1) then writeln (' принадлежит ')
else writeln (' не принадлежит ');
readln;
End.
Объяснение:
Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.
m - 1 – номер дня недели первого числа месяца (считая с 0)
n - 1 – пройдёт от первого числа
(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)
(m + n - 2) mod 7 + 1 – ответ.
Программа (PascalABC.NET):
begin
var n := ReadInteger;
var m := ReadInteger;
print((m + n - 2) mod 7 + 1)
end.
Пример ввода:
7
7
Пример вывода:
6
(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)