fa
Feedback
PascalABC.NET официальный канал

PascalABC.NET официальный канал

رفتن به کانال در Telegram

Официальный канал языка и системы программирования PascalABC.NET

نمایش بیشتر
1 857
مشترکین
-224 ساعت
-167 روز
-2430 روز
آرشیو پست ها
Наследование с ограничением В примере из предыдущего поста можно поступить наоборот - унаследовать окружность от эллипса. Так
Наследование с ограничением В примере из предыдущего поста можно поступить наоборот - унаследовать окружность от эллипса. Такое наследование называется наследованием с ограничениями и приводит к ряду проблем, которые надо учитывать. Одна из таких проблем здесь - метод обновления радиуса, который приходится переопределять в потомке: в круге необходимо менять оба радиуса эллипса. Однако такой вид наследования с некоторыми оговорками также используется. #студентам

Наследование классов Один класс может быть наследником другого. В этом случае он наследует все его поля и методы. Методы можн
Наследование классов Один класс может быть наследником другого. В этом случае он наследует все его поля и методы. Методы можно переопределять. На изображении - программа, в которой эллипс наследуется от круга, добавляя второй радиус и переопределяя метод Draw.

PascalABC.NET версии 3.9.0 beta Вышел PascalABC.NET версии 3.9.0 beta. Список изменений - здесь: https://pascalabcnet.github.
PascalABC.NET версии 3.9.0 beta Вышел PascalABC.NET версии 3.9.0 beta. Список изменений - здесь: https://pascalabcnet.github.io/mydoc_release_notes_3_9_0.html Основные изменения: ковариантные параметры обобщений, аргументы по умолчанию при вызове подпрограммы, модуль автоматической проверки LightPT.

Вывод вещественного массива Вывод элементов вещественного массива неудобен тем, что выводятся все значащие цифры вещественног
Вывод вещественного массива Вывод элементов вещественного массива неудобен тем, что выводятся все значащие цифры вещественного числа - их как правило 14-15. Чтобы сделать вывод более компактным можно выводить данные например с двумя знаками после точки. Сделать это можно двумя способами: 1. Преобразовать данные, используя Round(x,2) 2. Выводить данные по формату, используя формат x,4:f2 в форматной строке

Множество строк, независимое от регистра Как сделать множество строк, независимое от регистра? Передать в конструкторе множес
Множество строк, независимое от регистра Как сделать множество строк, независимое от регистра? Передать в конструкторе множества параметр System.StringComparer.OrdinalIgnoreCase. #студентам

Сортировка деревом На скрине вы видите одну из самых быстрых сортировок - сортировку с помощью бинарного дерева поиска. Её ас
Сортировка деревом На скрине вы видите одну из самых быстрых сортировок - сортировку с помощью бинарного дерева поиска. Её асимптотическая сложность в среднем - O(n log(n)) - такая же как и у быстрой сортировки Хоара. Просто добавляем элементы в дерево: если элемент меньше корня, то добавляем в левое поддерево, если больше значения в корне - добавляем в правое поддерево. И потом печатаем дерево - элементы в нем уже отсортированы.

Отражение Отражение - это механизм в .NET, который позволяет посмотреть содержимое любого типа. На скриншоте - все методы кла
Отражение Отражение - это механизм в .NET, который позволяет посмотреть содержимое любого типа. На скриншоте - все методы класса DateTime #NET

Решение всех задач демоварианта 2023 по информатике Алексей Богданов приводит решение всех задач демо ЕГЭ 2023 по информатике кодом на PascalABC.NET #школьнику #учителю

Случайная последовательность Последовательности ленивы - они генерируются в момент запроса. Это приводит к интересным эффекта
Случайная последовательность Последовательности ленивы - они генерируются в момент запроса. Это приводит к интересным эффектам. Если переменная q хранит случайную последовательность, то всякий раз при обращении к ней генерируется новая случайная последовательность. Если требуется использовать одну и ту же случайную последовательность - сохраните её в массиве.

Как узнать версию .NET, под которой запускается приложение #NET
Как узнать версию .NET, под которой запускается приложение #NET

Создание случайного бинарного дерева Для создания бинарного дерева, заполненного случайными числами, используется простой рек
Создание случайного бинарного дерева Для создания бинарного дерева, заполненного случайными числами, используется простой рекурсивный алгоритм. Печать всей структуры бинарного дерева осуществляется процедурой Print. #студентам

Генерация всех перестановок длины n Алгоритм - рекурсивный. Для каждого элемента переставляем его с последним, рекурсивно выз
Генерация всех перестановок длины n Алгоритм - рекурсивный. Для каждого элемента переставляем его с последним, рекурсивно вызываем функцию для всех элементов кроме последнего и затем снова переставляем текущий с последним. В итоге на последнем месте побывают все элементы. Всякий раз когда количество рассматриваемых элементов массива равно 1 - выводим весь массив. Мы не могли удержаться - использовали обобщенную функцию, генерирующую последовательность массивов, операторы yield и yield sequence. Поскольку всё равно ничего непонятно - а так хоть универсально будет :) #студентам

Простой текстовый редактор Простой текстовый редактор на 6 строк. Демонстрация событий, обработчиков, лямбд и условной операц
Простой текстовый редактор Простой текстовый редактор на 6 строк. Демонстрация событий, обработчиков, лямбд и условной операции #начинающим

Алгоритм быстрой сортировки Алгоритм быстрой сортировки - самый быстрый в среднем на произвольных данных. Суть алгоритма Quic
Алгоритм быстрой сортировки Алгоритм быстрой сортировки - самый быстрый в среднем на произвольных данных. Суть алгоритма QuickSort проста: в массиве a выбирается некоторый опорный элемент - обычно первый. После этого оставшиеся элементы массива делятся на две части: те, которые меньше или равны опорному и те, которые больше опорного. Данное действие реализуется функцией Partition, возвращающей индекс последнего элемента в первой части. Затем к каждой части рекурсивно применяется функция QuickSort и затем полученные части сливаются: отсортированные элементы <= опорного опорный отсортированные элементы > опорного #студентам

Модуль Sounds Модуль Sounds позволяет привязать проигрывание звука к какому-нибудь событию: uses Sounds,GraphWPF,Controls; be
Модуль Sounds Модуль Sounds позволяет привязать проигрывание звука к какому-нибудь событию:
uses Sounds,GraphWPF,Controls;

begin
  var ss: Sound; 
  var b1 := Button(10,10,'Play',100);
  var b2 := Button(10,50,'Stop',100);
  b1.Click := procedure -> begin
    if ss<>nil then 
      exit;
    ss := new Sound('d:\www.mp3');
    ss.Play;
  end;
  b2.Click += procedure -> begin
    if ss<>nil then
      ss.Stop;
    ss := nil
  end;
end.

Машинное обучение в PascalABC.NET Пакет Microsoft.ML реализует множество задач машинного обучения. В отличие от библиотек Pyt
Машинное обучение в PascalABC.NET Пакет Microsoft.ML реализует множество задач машинного обучения. В отличие от библиотек Python, мы получаем проверку ошибок во время компиляции и более эффективные алгоритмы. На скриншоте - проект, строящий модель KMeans по широко известному датасету цветков Ириса и затем предсказывающий вид конкретного цветка Ириса с использованием натренированной модели. #машинное обучение

Перегрузка операций как методов расширения Можно перегружать еще не определенные операции над типами. На скриншоте показана п
Перегрузка операций как методов расширения Можно перегружать еще не определенные операции над типами. На скриншоте показана перегрузка операции декартового произведения и декартовой степени для последовательностей как методов расширения #студентам

Модуль PlotWPF - визуализация данных Модуль PlotWPF позволяет легко визуализировать данные, заданные в виде набора точек. На
Модуль PlotWPF - визуализация данных Модуль PlotWPF позволяет легко визуализировать данные, заданные в виде набора точек. На скриншоте - два способа: точечный график и линейный график. Некую сложность представляет задание массивов точек: первый элемент надо делать вещественным чтобы массив-константа интерпретировался как вещественный.

Метод расширения Cast Cast - метод расширения последовательностей для приведения всех элементов к заданному типу. Если привед
Метод расширения Cast Cast - метод расширения последовательностей для приведения всех элементов к заданному типу. Если приведение невозможно, кидается исключение. Поэтому в данном примере вначале в списке объектов фильтруются целые и потом выполняется Cast для всех отфильтрованных элементов