Язык программирования Паскаль для начинающих: установка и 8 примеров кода

Pascal ставится за пару минут: PascalABC.NET на Windows или компилятор Free Pascal на macOS и Linux.

Разбираем структуру программы, переменные, условия, циклы, массивы и функции на восьми примерах, которые мы сами скомпилировали, и пять ошибок, на которых новички теряют время.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 2872 статьи автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3526 экспертных мнений Подписаться на Телеграм-канал
Обложка: Язык программирования Паскаль для начинающих: установка и 8 примеров кода

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

Ниже разберём установку, структуру программы, переменные, условия, циклы, массивы и функции. Каждый пример мы скомпилировали в Free Pascal (FPC) 3.2.2, вывод под кодом настоящий. Если вы ещё выбираете первый язык, сравните варианты в обзоре языков программирования для начинающих.

CheckroiCheckroiПодборка курсов по информатике136 курсов • 30 школСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Что такое 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

  1. Откройте страницу загрузки PascalABC.NET. На 9 октября 2026 года там лежит сборка 4.0.0.3862 от 22 августа.
  2. Скачайте StandardPack: это полная среда для Windows, ей нужен .NET Framework 4.7.2.
  3. Запустите установщик и пройдите шаги мастера.
  4. Откройте 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 уже встроен.

Скриншотов установки в статье нет: PascalABC.NET ставится только как программа Windows, а FPC работает в терминале. Вместо кадров показываем команды и вывод компилятора.

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Первая программа и структура кода

Создайте файл 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: логика та же, синтаксис короче.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Массивы, процедуры и функции

Массив хранит несколько значений одного типа под одним именем. Границы индексов задаёте сами, обычно с единицы: 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. Подготовка к ОГЭ по информатике
Перейти на сайт курса
FoxfordФоксфорд52 020 ₽6232 ₽/мес.Обзор курса
Прикладная информатика (Магистратура)
Перейти на сайт курса
Университет СинергияУниверситет Синергия90 000 ₽ - 2 годаОбзор курса
Математика и информатика (Второе высшее)
Перейти на сайт курса
Университет СинергияУниверситет Синергия20 000 ₽ - 4 годаОбзор курса
Профессия Учитель информатики и ИКТ за 6 мес. ФГОС
Перейти на сайт курса
НИУДПО имени К.Д. Ушинского (НИИДПО)НИУДПО (НИИДПО)33 200 ₽2770 ₽/мес.21 неделяОбзор курса
Профессия Учитель математики и информатики за 9 мес.
Перейти на сайт курса
НИУДПО имени К.Д. Ушинского (НИИДПО)НИУДПО (НИИДПО)36 600 ₽3050 ₽/мес.28 недельОбзор курса

Больше программ — в полном каталоге курсов по информатике

Если Паскаль для вас первая ступень к профессии, загляните в каталог курсов программирования: там собраны программы по Python, C++, Java и другим языкам.

Часто задаваемые вопросы

Где писать программы на Паскале?

На Windows удобнее всего PascalABC.NET: среда бесплатная, программа запускается клавишей F9. На macOS и Linux ставьте компилятор Free Pascal (brew install fpc или sudo apt install fp-compiler) либо PascalABC.NET через Visual Studio Code.

Можно ли сдавать ЕГЭ по информатике на Паскале?

Да. В проекте спецификации КИМ ЕГЭ 2027 года по информатике среди сред программирования на экзамене названы C#, C++, Pascal, Java и Python. Язык выбираете сами, проверяют только ответ.

Чем отличаются Turbo Pascal, Free Pascal и PascalABC.NET?

Синтаксис у них общий. Turbo Pascal работал под MS-DOS и сегодня запускается только в эмуляторе. Free Pascal — современный бесплатный компилятор для Windows, macOS и Linux, PascalABC.NET — учебная среда, которую используют в школах.

Почему программа выводит дробь в виде 3.3999999999999999E+000?

Так Free Pascal печатает число типа real без формата. Укажите ширину и число знаков после запятой: writeln(x:0:2) выведет 3.40.

Что учить первым: Pascal или Python?

Если информатика в школе идёт на Паскале, доучите его: строгие типы приучают к аккуратному коду. Для работы выбирайте язык с рынком вакансий, подробнее в разборе языка Python.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!