Цель статьи — создать простую консольную программу на Pascal, которая в цикле запрашивает у пользователя слова «ДА» или «НЕТ» и завершается при вводе 0․ При этом мы рассмотрим:
- структуру типичной Pascal-программы;
- работу со строковыми переменными;
- организацию циклов и условных операторов;
- современные особенности Free Pascal / PascalABC․NET․
История в двух словах
Язык Pascal был создан в 1970 году Никлаусом Виртом и назван в честь французского математика-изобретателя Блеза Паскаля․ Первые версии разрабатывались для CDC 6000, но уже в 1980-х Turbo Pascal стал стандартом в образовании и системном программировании․ Сегодня основным «рабочим вариантом» является Free Pascal (компилятор FPC) и PascalABC․NET, оба распространяются бесплатно и поддерживают современные ОС: Windows, Linux, macOS․
Почему Pascal учат в школах именно с таких задач?
- Простой синтаксис: нет тяжёлых конструкций, неявных приведений и «магических» операторов․
- Чёткая структура: каждая программа начинается с
program, затемvar,begin,end․ - Безопасные строки: встроенный тип
Stringне требует ручной работы с нуль-терминаторами, как в C․ - Интерактивность: ученик сразу видит ответ компилятора и результаты работы программы․
Текст программы «Да или Нет»
Код для Free Pascal / Lazarus
program YesNo;
uses
SysUtils;
var
s: string;
begin
repeat
Write('Введите ДА, НЕТ или 0 для выхода: ');
ReadLn(s);
s := UpperCase(Trim(s)); // убираем пробелы и приводим к верхнему регистру
if s = '0' then
Break
else if s = 'ДА' then
WriteLn('Вы ответили ДА․')
else if s = 'НЕТ' then
WriteLn('Вы ответили НЕТ․')
else
WriteLn('Неверный ввод, попробуйте ещё раз․');
until False;
WriteLn('Программа завершена․');
end․
Код для PascalABC․NET
begin
while true do
begin
var s := ReadString('Введите ДА, НЕТ или 0 для выхода: ')․ToUpper․Trim;
case s of
'0': break;
'ДА': Writeln('Вы ответили ДА․');
'НЕТ': Writeln('Вы ответили НЕТ․');
else
Writeln('Неверный ввод, попробуйте ещё раз․');
end;
end;
Writeln('Программа завершена․');
end․
Пошаговое объяснение
- Подключение модулей․
SysUtils(Free Pascal) предоставляетUpperCaseиTrim․ - Объявление переменной
s․ ТипStringдинамически расширяется, память контролируется автоматически․ - Цикл repeat/until или while true․ Оба варианта бесконечны, но выход
breakпроисходит при вводе 0․ - Обработка строки․ Приводим к верхнему регистру и удаляем пробелы, чтобы «Да », « да» и «ДА» считались одинаково․
- Условия․ Проверяем три варианта:
0,ДА,НЕТ․ В остальных случаях выводим сообщение об ошибке․
Как запустить
Windows
- Скачайте Lazarus IDE с официального сайта lazarus-ide․org и установите․
- Создайте новый проект Console Application, вставьте код, нажмите F9․
Linux / macOS
- Установите Free Pascal Compiler через пакетный менеджер:
sudo apt install fpc(Debian, Ubuntu) илиbrew install fpc(macOS)․ - Сохраните файл как
yesno․pasи скомпилируйте:fpc yesno․pas, затем запустите․/yesno․
Расширения и идеи для самостоятельной работы
- Добавить счётчик «ДА» и «НЕТ»․ В конце выводить статистику․
- Поддержка английских Yes/No․ Разрешить ввод
YESиNOв дополнение кДА/НЕТ․ - Графический интерфейс․ Переписать на Lazarus или Delphi VCL/FMX с кнопками «Да», «Нет», «Выход»․
- Файловый ввод/вывод․ Сохранять каждый ответ в текстовый файл
answers․txt․
Хотя Pascal сегодня редко используется в коммерческой разработке, его роль как идеального учебного инструмента остаётся неизменной: минималистичный синтаксис, строгая типизация, безопасные строки и мгновенная обратная связь․ Начав с простой программы «Да или Нет», вы за пару дней освоите основы, которые легко перенести на более «модные» языки: C#, Go, Swift и даже Python․
Так что клавиатуру в руки — и вперёд!