Pascal
Pascal — язык, на котором учатся программировать в школе и на первых курсах. Курс с нуля в PascalABC.NET и Free Pascal: переменные, ввод и вывод, условия, циклы, массивы, строки, процедуры.
Pascal (читается «паскаль») — язык программирования, который швейцарский учёный Никлаус Вирт создал около 1970 года специально для обучения. Программа на Pascal строгая и наглядная: все переменные описываются заранее, у каждой есть тип, а слова begin, end, if, then, while читаются почти как английский текст. Ошибки в таких программах компилятор находит ещё до запуска. Поэтому на Pascal много лет учат программированию в школах, в том числе в Беларуси, и на первых курсах вузов.
Где пишут на Pascal
- PascalABC.NET — бесплатная среда для Windows с русским интерфейсом, её чаще всего ставят в школах. Она понимает классический Pascal и добавляет к нему много современных возможностей.
- Free Pascal — бесплатный компилятор для Windows, Linux и macOS. В комплекте есть текстовая среда
fp, похожая на старый Turbo Pascal. На Free Pascal работает и визуальная среда Lazarus. - Turbo Pascal — среда 1980–1990-х годов для MS-DOS. Её давно не выпускают, но многие учебники написаны под неё. Такие программы, как правило, собирает и Free Pascal.
Что нужно для начала
- компьютер с Windows, Linux или macOS;
- PascalABC.NET (для Windows) или Free Pascal (для любой из этих систем) — как их установить, рассказано в справках Как скачать и установить PascalABC.NET и Free Pascal — установка и запуск;
- никаких знаний программирования: курс начинается с первой программы из трёх строк.
Как пройти курс
Уроки идут по порядку: первая программа, переменные, ввод и вывод, условия, циклы, массивы, строки, процедуры и функции, а в конце — разбор задач школьного курса. После каждого урока — несколько вопросов для проверки, в конце — итоговый тест.
Все программы курса написаны на классическом Pascal и работают одинаково в PascalABC.NET и Free Pascal. Там, где среды ведут себя по-разному, это сказано отдельно. Под программой показано, что она выводит, а если программа читает данные — что вводить. Набирайте примеры сами, а не копируйте: так проще привыкнуть к точкам с запятой и к begin…end.
Одно отличие сред, о котором стоит знать сразу
В PascalABC.NET тип integer хранит числа примерно до двух миллиардов, а в Free Pascal в обычном режиме — только до 32 767. Если в задаче числа больше, берите тип longint: он одинаков везде. Подробно — в справке Диапазон integer.
В справочнике — короткие ответы на частые вопросы: что значат ошибки компиляции, как вывести число с двумя знаками после запятой, как получить случайное число, прочитать файл или найти максимум в массиве.
Курс с нуля
- 1.Первая программа на PascalКакую среду выбрать — PascalABC.NET или Free Pascal, из чего состоит программа на Pascal, как её запустить и чем отличаются write и writeln.
- 2.Переменные и типы данныхЧто такое переменная в Pascal, как её описать в разделе var, какие бывают типы — integer, longint, real, char, string, boolean — и как работает присваивание :=.
- 3.Ввод, вывод и арифметикаКак прочитать числа с клавиатуры командой readln, как в Pascal складывать, умножать и делить, чем div и mod отличаются от деления и как вывести дробное число.
- 4.Условия — if и caseКак программа на Pascal выбирает, что делать: if…then…else, составной оператор begin…end, сравнения, and, or, not и оператор выбора case.
- 5.Циклы — for, while и repeatКак повторять действия в Pascal: цикл for с to и downto, while с условием в начале, repeat…until с условием в конце, break, continue и вложенные циклы.
- 6.МассивыКак хранить много значений в одном массиве Pascal: описание array, заполнение с клавиатуры и случайными числами, сумма, среднее, максимум, поиск и двумерные массивы.
- 7.Строки и символыКак работать с текстом в Pascal: типы string и char, длина строки, отдельные символы, склейка строк, copy, pos, delete, insert и коды символов ord и chr.
- 8.Процедуры и функцииКак разбить программу на Pascal на части: процедуры и функции, параметры по значению и var-параметры, локальные и глобальные переменные, возврат результата и рекурсия.
- 9.Задачи школьного курсаРазбор типовых задач по информатике на Pascal: цифры числа, простые числа, НОД и НОК, факториал, числа Фибоначчи, перевод в двоичную систему и палиндром.
Справочник
- Free Pascal — установка и запускКак установить компилятор Free Pascal в Windows и Linux, собрать программу командой fpc, запустить её и работать в текстовой среде fp, похожей на Turbo Pascal.
- Диапазон integer и переполнениеКакие числа помещаются в integer, longint и int64, почему в Free Pascal сумма вдруг становится отрицательной после 32 767 и как избежать переполнения.
- Как вывести число с двумя знаками после запятойФормат writeln(x:0:2) в Pascal: сколько знаков после точки, ширина поля, выравнивание столбцом, почему без формата числа выглядят как 3.3333E+000 и как округлить само значение.
- Как найти максимум и минимум в массивеКак найти в Pascal наибольший и наименьший элемент массива, его номер и количество одинаковых максимумов, и почему начинать нужно с первого элемента, а не с нуля.
- Как отсортировать массивСортировка массива в Pascal методом пузырька и выбором: по возрастанию и по убыванию, с разбором, почему работает обмен соседей, и готовая Sort в PascalABC.NET.
- Как перевести число в строку и обратноПеревод числа в строку и строки в число в Pascal: процедуры str и val, работающие везде, функции IntToStr и StrToInt, проверка ввода и цифра-символ в число.
- Как проверить, простое ли числоПроверка числа на простоту в Pascal перебором делителей до корня, функция IsPrime, особые случаи 0, 1 и 2 и решето Эратосфена для всех простых чисел до N.
- Как сделать задержку в программеПауза в программе на Pascal: Sleep в PascalABC.NET, sleep из sysutils и delay из crt в Free Pascal, ожидание нажатия Enter и почему программа с uses crt не запускается по F9.
- Как скачать и установить PascalABC.NETГде скачать PascalABC.NET, как установить его в Windows, запустить первую программу и что делать, если среда или готовая программа не запускается.
- Как читать из файла и писать в файлРабота с текстовыми файлами в Pascal: assign, reset, rewrite, append и close, чтение чисел до конца файла через eof и seekeof, запись результата в файл и частые ошибки.
- Окно программы сразу закрываетсяПочему консольное окно с программой на Pascal мигает и исчезает, как задержать его строкой readln в конце, почему иногда не помогает и как запустить программу из командной строки.
- Ошибка — неизвестное имяПочему Pascal пишет «Неизвестное имя» или «Identifier not found»: опечатка, неописанная переменная, русская буква в имени, подпрограмма ниже вызова или неподключённый модуль.
- Ошибка — несовместимые типыЧто значат ошибки «Нельзя преобразовать тип real к integer» и «Incompatible types» в Pascal и как привести дробное число, строку или символ к нужному типу.
- Ошибка — ожидалась точка с запятойПочему Pascal пишет «ожидалось ';'» или «; expected», где не хватает точки с запятой, почему её нельзя ставить перед else и чем опасна лишняя после then и do.
- Ошибки при выполнении программыЧто значат ошибки, которые появляются уже при запуске программы на Pascal: деление на ноль, выход за границы массива, неверный ввод числа, Runtime error 200, 201, 106.
- Случайные числа — random и randomizeКак получить случайное число в Pascal: random(n) от 0 до n−1, число в диапазоне от a до b, случайное дробное, зачем нужен randomize и как заполнить массив случайными числами.
- Сумма цифр числаКак найти сумму цифр числа в Pascal через mod 10 и div 10, как быть с отрицательными числами и нулём, и ещё три задачи тем же приёмом: количество, произведение и число наоборот.
- Чем отличаются div, mod и /Как делить числа в Pascal: знак / всегда даёт дробное число, div — целую часть, mod — остаток. Примеры с цифрами числа, временем и отрицательными числами.
Официальная документация
- Официальный сайт PascalABC.NET — https://pascalabc.net/
- Документация Free Pascal — https://www.freepascal.org/docs.html