Паскаль придумали как язык программирования для обучения, и в школе он живёт до сих пор: на ЕГЭ по информатике его разрешено использовать наравне с Python, C++, Java и C#. Чтобы начать, поставьте PascalABC.NET (Windows) или компилятор Free Pascal (macOS, Linux), наберите программу из четырёх строк и запустите её.
Ниже разберём установку, структуру программы, переменные, условия, циклы, массивы и функции. Каждый пример мы скомпилировали в Free Pascal (FPC) 3.2.2, вывод под кодом настоящий. Если вы ещё выбираете первый язык, сравните варианты в обзоре языков программирования для начинающих.
Что такое Pascal и кому он нужен сегодня

Язык описал швейцарский профессор Никлаус Вирт: первая публикация, «The Programming Language Pascal», вышла в журнале Acta Informatica в 1971 году. Назван язык в честь математика Блеза Паскаля. Задумка была простая: строгий синтаксис, который не даёт написать неряшливый код и приучает думать структурой.
Отсюда и главная аудитория. Pascal нужен:
- школьникам, у которых информатика идёт на Паскале по учебнику;
- выпускникам перед ЕГЭ: в спецификации КИМ ЕГЭ 2027 года (проект ФИПИ) среди сред программирования на экзамене названы C#, C++, Pascal, Java и Python;
- студентам первых курсов, где основы алгоритмов до сих пор читают на Паскале;
- тем, кто поддерживает программы на Delphi и Lazarus: обе среды работают с Object Pascal, прямым потомком языка. Про коммерческую ветку подробно рассказывали в статье о языке Delphi.
Если вы готовитесь сдавать информатику и поступать на IT-направление, посмотрите, что сдавать на программиста: там разобраны предметы и путь без ЕГЭ. Программы подготовки к экзамену ищите среди курсов по информатике.
Какие бывают версии Паскаля
«Паскаль» сегодня обычно означает одну из четырёх реализаций. Синтаксис у них общий, отличаются среда и дополнительные возможности.
| Реализация | Где работает | Кому подходит |
|---|---|---|
| PascalABC.NET | Windows; macOS и Linux через VS Code или Mono | школа, ЕГЭ, первые шаги |
| Free Pascal | Windows, macOS, Linux и десятки других платформ | студенты, консольные программы |
| Lazarus | Windows, macOS, Linux | программы с окнами и кнопками |
| Turbo Pascal | MS-DOS, сегодня только в эмуляторе | старые учебники и задачники |
Как установить Паскаль на компьютер
Выбор среды зависит от операционной системы. Для учёбы хватит любой из двух бесплатных.
PascalABC.NET на Windows
- Откройте страницу загрузки PascalABC.NET. На 9 октября 2026 года там лежит сборка 4.0.0.3862 от 22 августа.
- Скачайте StandardPack: это полная среда для Windows, ей нужен .NET Framework 4.7.2.
- Запустите установщик и пройдите шаги мастера.
- Откройте PascalABC.NET, наберите программу и нажмите F9: код скомпилируется и выполнится.
На macOS разработчики предлагают другой путь: Visual Studio Code, .NET 10 и расширение PascalABC.NET. Пошагово он описан в официальной инструкции для macOS.
Компилятор FPC на macOS и Linux
Компилятор Free Pascal ставится одной командой. Актуальная стабильная версия 3.2.2.
# macOS (через Homebrew)
brew install fpc
# Ubuntu и Debian
sudo apt install fp-compiler
# проверка
fpc -iV
Последняя команда печатает номер версии. У нас она ответила 3.2.2.
На Windows этот компилятор удобнее брать вместе со средой Lazarus: в установщик версии 4.8 компилятор FPC 3.2.2 уже встроен.
Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяСкриншотов установки в статье нет: PascalABC.NET ставится только как программа Windows, а FPC работает в терминале. Вместо кадров показываем команды и вывод компилятора.
Первая программа и структура кода
Создайте файл hello.pas и вставьте в него четыре строки:
program Hello;
begin
writeln('Привет, Pascal!');
end.
Скомпилируйте и запустите. Компилятор переводит текст программы в исполняемый файл, точно так же устроена работа компилятора языка C:
fpc hello.pas
./hello
Привет, Pascal!
В PascalABC.NET то же самое делает кнопка F9. Из чего состоит любая программа на Паскале:
program Имя;: заголовок. Его можно опустить, но в учебных задачах его пишут.var: раздел, где объявляют переменные. Выше него бываютconstдля констант и раздел подпрограмм.begin … end.: тело программы. Точка после последнегоendобязательна, без неё компилятор не соберёт код.- Точка с запятой разделяет команды. Перед
endеё можно не ставить.
Регистр букв Паскалю безразличен: WriteLn, writeln и WRITELN означают одну и ту же процедуру.
Переменные, типы данных и ввод
Каждую переменную нужно объявить заранее и указать тип. Это и есть строгая типизация: про её плюсы и минусы есть отдельный разбор типизации в программировании.
| Тип | Что хранит | Пример значения |
|---|---|---|
| integer | целое число | 42 |
| real | дробное число | 3.14 |
| boolean | логическое значение | true |
| char | один символ | ‘A’ |
| string | строка | ‘Pascal’ |
Присваивание пишется через :=, а одиночный знак = означает сравнение. С клавиатуры читает readln, на экран выводят write и writeln (второй ещё и переводит строку).
program SumTwo;
var
a, b: integer;
begin
write('Введите два числа: ');
readln(a, b);
writeln('Сумма: ', a + b);
end.
Введите два числа: 3 4
Сумма: 7
Деление в Паскале: div, mod и косая черта
Для деления в Паскале три операции, и путать их нельзя. div даёт целую часть, mod остаток, а / всегда возвращает дробное число типа real.
program Arith;
var
a, b: integer;
x: real;
begin
a := 17;
b := 5;
writeln('17 div 5 = ', a div b);
writeln('17 mod 5 = ', a mod b);
x := a / b;
writeln('17 / 5 = ', x);
writeln('17 / 5 = ', x:0:2);
end.
17 div 5 = 3
17 mod 5 = 2
17 / 5 = 3.3999999999999999E+000
17 / 5 = 3.40
Обратите внимание на третью строку. Без формата FPC печатает дробь в научной записи, поэтому для вывода пишут x:0:2. Ноль здесь задаёт минимальную ширину, двойка число знаков после запятой.
Условия: if и case
Ветвление строится на if … then … else. Когда вариантов много, удобнее case: он сравнивает значение со списком.
program Grade;
var
score: integer;
begin
score := 78;
if score >= 85 then
writeln('Отлично')
else if score >= 60 then
writeln('Зачёт')
else
writeln('Пересдача');
case score div 10 of
9, 10: writeln('Диапазон 90-100');
7, 8: writeln('Диапазон 70-89');
else
writeln('Ниже 70');
end;
end.
Зачёт
Диапазон 70-89
Если в ветке нужно выполнить несколько команд, их заключают в begin … end. Без этих «скобок» к условию относится только первая команда.
Циклы for, while и repeat

В Паскале три цикла, и у каждого своя задача:
- for, когда число повторов известно заранее;
- while повторяет, пока условие истинно, и проверяет его перед шагом;
- repeat … until повторяет, пока условие не станет истинным. Тело выполнится хотя бы один раз.
program Loops;
var
i, sum, n, digits: integer;
begin
sum := 0;
for i := 1 to 10 do
sum := sum + i;
writeln('Сумма 1..10 = ', sum);
n := 2026;
digits := 0;
while n > 0 do
begin
digits := digits + n mod 10;
n := n div 10;
end;
writeln('Сумма цифр 2026 = ', digits);
i := 1;
repeat
write(i, ' ');
i := i * 2;
until i > 100;
writeln;
end.
Сумма 1..10 = 55
Сумма цифр 2026 = 10
1 2 4 8 16 32 64
Средний цикл встречается в задачах ЕГЭ и олимпиад постоянно: mod 10 отрезает последнюю цифру, div 10 убирает её из числа. Что такое повторение шага в программировании вообще, объясняли в статье про итерацию. А если параллельно учите Python, сравните с тем, как там устроен цикл while: логика та же, синтаксис короче.
Массивы, процедуры и функции
Массив хранит несколько значений одного типа под одним именем. Границы индексов задаёте сами, обычно с единицы: array[1..5] of integer.
Подпрограмм два вида. Процедура выполняет действие, функция возвращает значение: результат присваивают имени функции.
program Journal;
const
N = 5;
var
marks: array[1..N] of integer = (5, 4, 3, 5, 4);
function Average(const a: array of integer): real;
var
i, s: integer;
begin
s := 0;
for i := 0 to High(a) do
s := s + a[i];
Average := s / Length(a);
end;
procedure PrintLine(ch: char; len: integer);
var
i: integer;
begin
for i := 1 to len do
write(ch);
writeln;
end;
begin
PrintLine('-', 20);
writeln('Средний балл: ', Average(marks):0:2);
writeln('Первая оценка: ', marks[1]);
PrintLine('-', 20);
end.
--------------------
Средний балл: 4.20
Первая оценка: 5
--------------------
Внутри функции массив нумеруется уже с нуля: так работает открытый массив array of integer. Поэтому цикл идёт от 0 до High(a), а снаружи первая оценка лежит в marks[1].
Две задачи для практики
Синтаксис запоминается только на задачах. Вот две, на которых сходятся все темы выше.
Простые числа до 50
program Primes;
var
n, d: integer;
isPrime: boolean;
begin
for n := 2 to 50 do
begin
isPrime := true;
d := 2;
while d * d <= n do
begin
if n mod d = 0 then
begin
isPrime := false;
break;
end;
d := d + 1;
end;
if isPrime then
write(n, ' ');
end;
writeln;
end.
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
Делители проверяем только до корня из числа: условие d * d <= n. Для 50 выигрыш незаметен, а у простого числа около миллиона проверок станет примерно в тысячу раз меньше.
Таблица умножения
program MulTable;
var
i, j: integer;
begin
for i := 1 to 5 do
begin
for j := 1 to 5 do
write(i * j:4);
writeln;
end;
end.
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
Формат :4 выравнивает числа в колонки шириной четыре символа. Дальше попробуйте сами: игру «угадай число» через random, переворот строки, поиск максимума в массиве. Как выстроить такую самостоятельную практику, разобрали в статье о том, как учить языки программирования самостоятельно.
Частые ошибки новичков

Эти пять ошибок мы получили сами, пока проверяли примеры для статьи. Сообщения компилятора приводим как есть.
Точка с запятой перед else
if x > 0 then
writeln('плюс');
else
writeln('минус');
semi.pas(8,3) Fatal: Syntax error, ";" expected but "ELSE" found
Точка с запятой закончила команду if, и else остался без пары. Решение: перед else точку с запятой не ставить.
Знак = вместо :=
Строка x = 5; для Паскаля означает сравнение, поэтому компилятор отвечает Error: Illegal expression. Решение: присваивать через :=.
Имя программы совпало с переменной
Мы назвали программу Marks, а массив оценок marks. Компилятор выдал Error: Duplicate identifier "Marks": для Паскаля большие и маленькие буквы одинаковы. Решение: дать программе другое имя.
Переполнение integer
x := 32767;
x := x + 1;
writeln(x);
writeln(SizeOf(integer), ' байта');
-32768
2 байта
FPC в режиме по умолчанию считает integer двухбайтовым, от −32 768 до 32 767. Так прямо сказано в документации компилятора. Число без всякого предупреждения ушло в минус. В режимах ObjFPC и Delphi integer занимает 4 байта: с ключом -Mobjfpc та же программа печатает 32768.
Решение: для больших чисел брать longint или int64, а при отладке включать проверку ключами -Co -Cr. Тогда программа упадёт с Runtime error 201, и вы увидите ошибку, вместо того чтобы получить неверный ответ.
Индекс строки с нуля
Символы строки в Паскале нумеруются с единицы: для s := 'Pascal' выражение s[1] вернёт P, а Length(s) вернёт 6. Привычка к нулевому индексу из Python и C здесь даёт сдвиг на один символ.
Pascal или Python: что учить первым
Короткий ответ зависит от цели. Сравнение по тому, что важно новичку:
| Критерий | Pascal | Python |
|---|---|---|
| Типы переменных | объявляются заранее, компилятор ловит ошибки до запуска | определяются при запуске |
| ЕГЭ по информатике | разрешён | разрешён |
| Работа после учёбы | в основном поддержка программ на Delphi | веб, анализ данных, автоматизация, ИИ |
| Скорость первых результатов | медленнее, больше обязательного синтаксиса | быстрее, меньше кода на задачу |
Если информатику в школе ведут на Паскале, доучите его: дисциплина строгих типов пригодится в любом языке. Если вы целитесь в профессию, переходите на язык с живым рынком вакансий. Плюсы и ограничения второго варианта собраны в разборе языка Python и полный путь до первой работы описан в плане как стать программистом с нуля.
Где учиться программированию системно
Для ЕГЭ и школьной информатики Паскаля с этой статьёй хватит на старт: дальше нужны задачи и разбор ошибок с преподавателем. Ниже пять курсов по информатике и подготовке к экзамену с ценами и форматом обучения.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| ОГЭ-2027. Подготовка к ОГЭ по информатике Перейти на сайт курса | 52 020 ₽ | 6232 ₽/мес. | Обзор курса | ||
| Прикладная информатика (Магистратура) Перейти на сайт курса | 90 000 ₽ | - | 2 года | Обзор курса | |
| Математика и информатика (Второе высшее) Перейти на сайт курса | 20 000 ₽ | - | 4 года | Обзор курса | |
| Профессия Учитель информатики и ИКТ за 6 мес. ФГОС Перейти на сайт курса | 33 200 ₽ | 2770 ₽/мес. | 21 неделя | Обзор курса | |
| Профессия Учитель математики и информатики за 9 мес. Перейти на сайт курса | 36 600 ₽ | 3050 ₽/мес. | 28 недель | Обзор курса |
Больше программ — в полном каталоге курсов по информатике
Если Паскаль для вас первая ступень к профессии, загляните в каталог курсов программирования: там собраны программы по Python, C++, Java и другим языкам.




