PascalABC.NET официальный канал
Open in Telegram
Официальный канал языка и системы программирования PascalABC.NET
Show more1 856
Subscribers
No data24 hours
-147 days
-2330 days
Posts Archive
Изменение символов в строке возможно. Но неэффективно
В C# символы строки неизменны. Тем не менее в PascalABC.NET менять символы строки можно. Например, так:
var s := 'Hello'; for var i:=1 to s.Length do s[i] := Succ(s[i]);Однако такой код неэффективен: при каждом изменении символа строки по-существу создается новая строка. Причина проста: надо было как то моделировать изменяемые строки изменяемыми. Однако если необходимо поменять символы строки эффективно, следует использовать класс StringBuilder.
Строки и столбцы матрицы
https://teletype.in/@pascalabcnet/RowsCols
PascalABC.NET - в поставке Alt Linux Образование!
PascalABC.NET включён в Центр приложений Alt Linux Образование!
Выполняем команду
rpminstall appstream-dataи открываем Центр приложений на вкладке "Инструменты разработки"
Оконное приложение «Страны»
Много ли кода надо чтобы написать оконное приложение для урока географии, в котором можно интерактивно визуализировать основные характеристики стран, фильтровать и сортировать их по различным критериям?
Отвечаем: на PascalABC.NET приложение занимает 14 строк.
Тут разумеется есть и цепочки методов и лямбда выражения и обработчики событий и считывание из базы данных и конструкторы оконных элементов управления. А как же без этого?
Кто такой код пишет? Школьники, желающие изучать современное программирование без компромиссов.
Заполнение матрицы таблицей умножения
Для заполнения матрицы по некоторой формуле проще всего воспользоваться функцией MatrGen. Например, следующий код заполняет матрицу таблицей умножения
Заполнение и вывод двумерных динамических массивов
Двумерные динамические массивы в PascalABC.NET трактуются как матрицы и выводятся методом Print.
Общие методы массивов и списков, не связанные с последовательностями
Большинство методов здесь возвращает одно значение. Лишь два метода - a.ToList и L.ToArray - служат для преобразования между массивами и списками
Цветной вывод
Есть в интегрированной среде PascalABC.NET такая секретная возможность - выводить в окно вывода цветной текст.
Для переключения цвета используются символы #65535 #65534 #65533 #65532 #65531
Помечтаем? Генераторы списков в PascalABC.NET
Генераторы списков - активно используемая возможность в Python и ряде других языков // https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(list_comprehension).
А почему бы такое не сделать в PascalABC.NET?
Посмотрите, как изменился бы синтаксис PascalABC.NET если бы в нем появились генераторы списков. Что вы об этом думаете? Пишите в комментариях.
Цепочки методов
Методы можно объединять в цепочки: каждый вызов метода возвращает последовательность, к которой снова может быть применен метод.
Цепочки методов замечательны тем, что задача решается так как она формулируется - иногда слово в слово.
Рассмотрим задачу из замечательной презентации К. Полякова https://kpolyakov.spb.ru/download/surgut-ege2022.ppt, которую он представлял на мастер-классе учителям г. Сургута.
Задача. Вывести количество различных перестановок в слове АССАСИН
Решение вы видите на изображении: оно слово в слово повторяет постановку задачи в обратном порядке.
Визуализация сортировки
https://teletype.in/@pascalabcnet/SortVis
Рисуем рамку псевдографикой
Часто бывает нужно вставить текст в рамке. В текстовом режиме рамка может быть представлена лишь символами псевдографики.
Функция BorderedText принимает многострочный текст, разбитый на строки вертикальными линиями, и возвращает этот же текст, разбитый на строки, заключенные в рамку
Классические сортировки и их производительность
https://teletype.in/@pascalabcnet/Sort
Как растут списки
Список List - это динамический массив с возможностью расширения.
Чтобы обеспечить эффективное расширение, под список выделяется память, превосходящая размер списка. Она называется ёмкостью списка (Capacity).
Приведенная программа иллюстрирует, что всякий раз, когда количество элементов списка становится равным ёмкости списка, его ёмкость возрастает скачком в два раза. Первоначально ёмкость пустого списка равна 4.
Такая стратегия расширения списка проста и чрезвычайно эффективна.
