Определить, сколько дней осталось от заданного дня до нового года. Проверить программу - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Всем здарова! Нужно было написать программу, которая вводит с клавиатуры номер месяца и день, и определяет, сколько дней осталось до Нового года. При вводе неверных данных нужно вывести число -1. Считается, что год невисокосный. Ссылка на задание (Ссылка удалена) Мне пишет "Частичное решение", 25 баллов, то есть 5 тестов я не прошел. Заранее спасибо!)))

Решение задачи: «Определить, сколько дней осталось от заданного дня до нового года. Проверить программу»

textual
Листинг программы
CONST
  Max_Day: Array [1..12] of Integer = (31,28,31,30,31,30,31,31,30,31,30,31);
VAR
  Day, Month: LongINt;
  Kol_Day: LongINt;
  
BEGIN
  Read(Month, Day);
  // Проверяем данные
  if (Month * Day < 1) then begin Write(-1); Exit; End;
  If (Month > 12)or(Day > Max_Day[Month]) then begin Write(-1); Exit; End;
  
  // Считаем дни
  Kol_Day := 0;
  While (Month <> 12)or(Day <> 31) do begin
    Inc(Kol_Day);
    
    if (Day < Max_Day[Month]) then Inc(Day)
    Else begin Inc(Month); Day := 1; end;
  End;
  
  Write(Kol_Day);
END.

Объяснение кода листинга программы

  1. Объявлены константы и переменные:
    • Max_Day: массив из 12 целых чисел, представляющих количество дней в каждом месяце (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    • Day, Month: переменные типа LongInt для чтения номера месяца и дня месяца;
    • Kol_Day: переменная типа LongInt для подсчета количества дней.
  2. Пользователю предлагается ввести номер месяца и дня месяца.
  3. Происходит проверка введенных данных:
    • Если месяц * день < 1, выводится -1 и выполняется выход из программы.
    • Если месяц > 12 или день > Max_Day[месяц], выводится -1 и выполняется выход из программы.
  4. Инициализируется переменная Kol_Day со значением 0.
  5. Запускается цикл, который выполняется до тех пор, пока месяц не станет равным 12 или день не станет равным 31:
    • Увеличивается значение переменной Kol_Day.
    • Если день меньше Max_Day[месяц], увеличивается значение переменной Day.
    • Если день равно Max_Day[месяц], увеличивается значение переменной Month на 1, а значение переменной Day устанавливается равным 1.
  6. После завершения цикла выводится значение переменной Kol_Day.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы