
Часто приходится слышать как люди, увидев код в PascalАВС.NЕТ в точечной нотации, говорят: "А, тут LINQ используется...". И это зачастую совершенно неверно. Вот пример кода с точечной нотацией, который не имеет к LINQ никакого отношения:

Решим с помощью калькулятора практическую задачу по созданию подсетей.

В библиотеке School начиная с версии PascalАВС.NЕТ 3.9.0.3360 от 21.09.23 доступен калькулятор сетей TCP/IP, реализованный на базе двух классов: собственно калькулятора CalcIP и класса 32-битных адресов Addr32, обеспечивающего работу калькулятора, а также предоставляющего удобную работу с адресами IPv4 при самостоятельном использовании.

Калькулятор дает возможность в наглядном виде получить основную информацию о подсетях TCP/IP, задав адрес сети и маску подсети. Отображение информации с помощью калькулятора показано на приведенном ниже рисунке для ip-адреса 15.218.42.12 и маски 255.255.192.0.

Для повышения эффективности обработки структурированных данных используют их объединение в коллекции. Коллекция предлагает готовый набор средств работы с данными различной, иногда достаточно сложной структуры. Коллекции Microsotf ,NET поддерживают списки, стеки, очереди, множества, словари и т.д. При этом коллекции позволяют применять единый стандартизованный подход к данным различной структуры.

В языке PascalАВС.NЕТ при описании формальных параметров подпрограммы в качестве типа можно указать интерфейс. В самом деле, и класс, и интерфейс - это типы данных, так что ничего необычайного тут нет. Но, указав интерфейс, мы можем придать подпрограмме некоторую универсальность. Хотим работать с индексами (массивы, списки) - указываем интерфейс IList, не хотим (но при этом еще и с последовательностями можно работать) - указываем IEnumerable.
В курсе рассматриваются возможности языка, не вошедшие ни в один из ранее вышедших курсов. Большая часть этого материала имеется в книге "PascalАВС.NЕТ: введение в современное программирование", но на момент начала создания этого курса книга готовилась праздновать свой трехлетний юбилей, а язык развивается непрерывно...

Функция Digits(n) и расширение n.Digits позволяют получить список List<integer>, содержащий цифры десятичного числа n. Теперь у Digits появился необязательный целочисленный параметр base, позволяющий указать основание системы счисления, в которой требуется получить цифры числа. При основании, превышающем 10, каждая "цифра" числа представляется соответствующим десятичным числом. Поскольку основание может быть многоразрядным числом, такие "цифры" тоже могут оказаться многоразрядными. Например, рассмотрим представление числа 1234567890 в системе счисления по основанию 2023. Очевидно, что каждая "цифра" представления может находиться в интервале [0;2022].

Есть в IDE PascalАВС.NЕТ иконка "Здоровье кода". Считается, что у программы часть здоровья отнимает использование Write с формированием интервалов за счет вставки пробелов. Примерно вот так:
Если вам приходилось обращаться к библиотеке School при большом объеме работы с простыми числами, вы могли заметить, что эта работа происходит весьма быстро во всем диапазоне натуральных чисел, представимых типом integer. В чем тут секрет?