Skip to content

About

Продвинутый курс Pascal: ООП, коллекции, алгоритмы. Продолжение курса pascal-basics.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Продвинутый Pascal: ООП и алгоритмы

Продолжение курса pascal-basics. Второй том: объектно-ориентированное программирование, коллекции .NET, сортировки, модули и итоговый проект.

Содержание

№ Тема Конспект Примеры
1 Классы и объекты README код
2 Инкапсуляция и свойства README код
3 Наследование README код
4 Полиморфизм, абстрактные методы README код
5 Исключения README код
6 Интерфейсы README код
7 Generics и коллекции .NET README код
8 Сортировки и бинарный поиск README код
9 Модули README код
10 Итоговый проект README код

Среда

Примеры курса рассчитаны на PascalABC.NET — свободную реализацию Pascal для платформы .NET.

  • Скачать: https://pascalabc.net
  • VS Code + расширение PascalABC.NET: открыть .pas и нажать F9.

Особенности по урокам

  • Уроки 1–8 — компилируются и запускаются в VS Code (F9).

  • Урок 9 (модули) — расширение PascalABC.NET для VS Code не подхватывает модули автоматически. Программа выдаёт «Модуль не найден», хотя файл модуля лежит рядом.

    Как запустить урок 9: через Free Pascal (fpc) в терминале.

    cd lesson-09-modules
    fpc use_mathutils.pas
    ./use_mathutils

Требования

  • PascalABC.NET 3.8+ (VS Code / standalone)
  • Free Pascal 3.2+ — для урока 9 (опционально)
  • Базовый курс pascal-basics — пройден

Структура репозитория

pascal-advanced/
├── README.md
├── LICENSE
├── .gitignore
├── lesson-01-classes/
│   ├── README.md
│   └── *.pas
├── lesson-02-encapsulation/
├── ...

В каждой папке урока:

  • README.md — конспект: цель, ключевые понятия, примеры, что дальше.
  • *.pas — рабочие примеры кода с комментариями.

Как проходить курс

  1. Читаем README.md урока.
  2. Открываем и разбираем примеры *.pas.
  3. Запускаем в PascalABC.NET (F9).
  4. Меняем, экспериментируем.
  5. Переходим к следующему уроку.

Ограничения PascalABC.NET, о которых стоит знать

По ходу курса мы столкнулись с рядом особенностей среды. Они собраны здесь, чтобы не наступать на одни и те же грабли.

  • Автосвойства не поддерживаются. property X: Integer; без read/write не компилируется. Пишите property X: Integer read fX write fX;.
  • read/write принимают только имя поля или метода, не выражение. Для вычисляемых свойств заводите геттер-функцию.
  • inherited (args); в конструкторе наследника не работает. Присваивайте поля родителя напрямую — они protected.
  • Имя программы не должно совпадать с именем переменной. Регистр не важен: program Shapes; + var shapes — конфликт.
  • Модули (unit) не подхватываются в VS Code. См. урок 9.

Лицензия

MIT

About

Продвинутый курс Pascal: ООП, коллекции, алгоритмы. Продолжение курса pascal-basics.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages