Условие : Напишите программу, которая вводит с клавиатуры номер месяца и день, и определяет, сколько дней осталось до Нового года. При вводе неверных данных должно быть выведено сообщение об ошибке. Считается, что год невисокосный.
Входные данные
Входная строка содержит два целых числа: номер месяца и номер дня в этом месяце.
Выходные данные
Программа должна вывести количество дней, оставшихся до Нового года. Если введены неверные данные, нужно вывести число -1.

const n = 12;
type Arr = array[1..n] of integer;
var months: Arr := (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var day, month, remainder: integer;
function days(const day: integer; const month: integer): integer;
begin
Result := months[month] - day;
for var i := month + 1 to n do
Result += months[i];
end;
begin
repeat
write('Введите месяц: ');
read(month);
if (month > 0) and (month <= n) then
break;
writeln('Ошибка: некорректный месяц!');
until False;
repeat
write('Введите день: ');
read(day);
if (day > 0) and (day <= months[month]) then
break;
writeln('Ошибка: некорректный день!');
until False;
remainder := days(day, month);
writelnFormat('До Нового года осталось: {0} дней', remainder);
end.
var a, d, count, i: integer;
function CountDay(a: integer): integer;
begin
if (a = 1) then countday := 31;
if (a = 2) then countday := 28;
if (a = 3) then countday := 31;
if (a = 4) then countday := 30;
if (a = 5) then countday := 31;
if (a = 6) then countday := 30;
if (a = 7) then countday := 31;
if (a = 8) then countday := 31;
if (a = 9) then countday := 30;
if (a = 10) then countday := 31;
if (a = 11) then countday := 30;
if (a = 12) then countday := 31;
end;
begin
count := 0;
write('Введите месяц: ');
readln(a);
write('Введите день: ');
readln(d);
if (a <= 0)or(a > 12)or(d <= 0)or(d > countday(a)) then
writeln('Ошибка в данных!')
else
begin
for i:=a to 12 do
count := count + countday(i);
count := count - d;
writeln('До нового года осталось ', count, ' дней.');
end;
end.
год сдесь окажется не при чем весь смысл в информации