Вопрос задан 16.01.2026 в 14:30. Предмет Информатика. Спрашивает Кисель Ева.

Составить на Паскале программу, которая по введённому номеру месяца выводит название времени года. При написании программы использовать логические операции. При неверном вводе месяца должно выдаваться сообщение об ошибке ввода и программа должна прекращать свою работу. Программа должна иметь дружественный интерфейс. Протестировать программу на всех целых числах от 0 до 13.

Перейти к ответам

Ответы на вопрос

Отвечает Князев Захар.

Вот рабочий вариант на FreePascal/Turbo Pascal с «дружественным» консольным интерфейсом. Логику определения времени года делаю именно через логические операции and, or, not, как и требуется. При ошибке ввода программа выводит сообщение и сразу завершает работу.

pascal
program SeasonByMonth; uses Crt; { для простого "дружественного" оформления консоли }

var s: string; m, code: integer;

begin ClrScr; TextColor(LightCyan); Writeln('==============================================='); Writeln(' Определение времени года по номеру месяца '); Writeln('==============================================='); TextColor(White); Write('Введите номер месяца (1..12) и нажмите Enter: ');

{ читаем ввод как строку и пытаемся преобразовать в число } ReadLn(s); Val(s, m, code);

if (code <> 0) or (m < 1) or (m > 12) then begin TextColor(LightRed); Writeln; Writeln('Ошибка ввода: номер месяца должен быть целым числом от 1 до 12.'); Writeln('Работа программы прекращена.'); Halt(1); end;

TextColor(LightGreen); WriteLn; Write('Результат: ');

{ определяем время года через логические операции } if (m = 12) or ((m >= 1) and (m <= 2)) then Writeln('Зима') else if (m >= 3) and (m <= 5) then Writeln('Весна') else if (m >= 6) and (m <= 8) then Writeln('Лето') else if (m >= 9) and (m <= 11) then Writeln('Осень') else begin { сюда мы логически не должны попасть, но оставим на всякий случай } TextColor(LightRed); Writeln('Неизвестное значение. Работа программы прекращена.'); Halt(1); end;

TextColor(White); Writeln; Writeln('Спасибо за использование программы!'); end.

Тестирование на всех целых от 0 до 13

Ниже — ожидаемые результаты для каждого ввода (именно то, что логика выдаст):

  • 0 → Ошибка ввода: номер месяца должен быть целым числом от 1 до 12. Программа завершена.

  • 1 → Зима

  • 2 → Зима

  • 3 → Весна

  • 4 → Весна

  • 5 → Весна

  • 6 → Лето

  • 7 → Лето

  • 8 → Лето

  • 9 → Осень

  • 10 → Осень

  • 11 → Осень

  • 12 → Зима

  • 13 → Ошибка ввода: номер месяца должен быть целым числом от 1 до 12. Программа завершена.

Примечания по совместимости:

  • Блок uses Crt удобен для цвета/очистки экрана. Если его убрать, логика останется прежней — просто удалите вызовы ClrScr, TextColor и сохраните остальной код.

  • Для гарантированного «мягкого» контроля ошибок ввод читается как строка и проверяется через Val, чтобы не падать при вводе нечисловых символов.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос