PascalABC.NET официальный канал
1.86K subscribers
536 photos
1 video
9 files
376 links
Официальный канал языка и системы программирования PascalABC.NET
Download Telegram
Вычисление выражения в польской инверсной записи

Польская инверсная бесскобочная запись выражения использует знаки операций после операндов и не использует скобки

Для вычисления выражения в ПОЛИЗ используется стек операндов. Алгоритм прост: если во входном потоке число, мы кладем его на стек, а если знак операции - мы снимаем со стека два операнда, совершаем над ними эту операцию и результат кладем на стек

В итоге на стеке - результат
👍7
IV Конференция "Использование системы программирования
PascalABC.NET в обучении программированию". Доклады (день 1)

29-30 марта 2023 г. мехмат ЮФУ провел четвертую конференцию "Использование системы программирования
PascalABC.NET в обучении программированию". Конференция проходила онлайн и транслировалась одновременно в Zoom и Youtгbe.

Мы начинаем публикацию видео первых докладов.

Михалкович С.С. PascalABC.NET 2023 – российский Паскаль.
https://www.youtube.com/watch?v=Zx_t5KScEK0

Приветственное слово директора института математики, механики и компьютерных наук Карякина Михаила Игорьевича
https://www.youtube.com/watch?v=5ky17-4UPDE&t=42s

Статистика конференции:
Зарегистрировалось около 1000 участников по всей России: школьные учителя, преподаватели, методисты
Конференция проходила в 2 дня, каждый день - по 8 докладов.
В 1 день в пике в Zoom было 123 входа, в Youtube - 160
Во 2 день в пике в Zoom было 80 входов, в Youtube - 71
Многие досматривали трансляцию позже
👏6👍3
Массовая рассылка сертификатов участникам конференции

Рассылка сертификатов участникам конференции осуществлялась с помощью скрипта, написанного на PascalABC.NET (автор М.В.Пучкин).

Основное содержимое скрипта - на скриншоте. Более 450 сертификатов участников было заготовлено заранее.

#конференция
👍10
Создание связного списка на PascalABC.NET

Создать и вывести связный список на PascalABC.NET - проще простого. Всего - 11 строк.

#студентам
Операции с односвязным списком: добавление в начало и проход по списку

В PascalABC.NET за счёт ссылочной объектной модели легко реализовывать динамические структуры данных.

На скриншоте иллюстрируется процедура добавления в начало односвязного списка и метод расширения для прохода по списку с выполнением некоторой операции над элементами

#студентам
4👍3
Arrow

В PascalABC.NET версии 3.8.3.3256 в модуле GraphWPF появился графический примитив Arrow.

#новое
👍7
Использование таймера в графических приложениях

Таймер - это способ через равные интервалы времени генерировать событие, на которое можно повесить пользовательский обработчик.

На скриншоте - простая программа, иллюстрирующая использование таймера. 10 раз в секунду возникает событие OnTimer, в обработчике которого рисуется случайный круг

#графика
👍4
TextOut - новые перегрузки

Теперь можно вывести строку в графическом режиме, указывая в качестве параметров точку и произвольный объект. Перед выводом он преобразуется к строковому представлению - .ToString

На скриншоте продемонстрировано рисование треугольника по точкам и вывод координат этих точек в соответствующих вершинах.

#новое
#графика
#начинающим
👍6💊1
Проект PascalABC.NET - статистика кода

В структуре проекта PascalABC.NET есть маленький файл LinesCount, написанный на PascalABC.NET, который считает количество строк кода проекта, написанных на C# и самом PascalABC.NET.

Запустив его, можно убедиться, что проект PascalABC.NET содержит более миллиона строк кода на языке C# и порядка 180 тысяч строк кода на самом PascalABC.NET.
👍6💩2
Задача о ханойских башнях

Задача
о ханойских башнях - пример, показывающий мощность и краткость использования рекурсии.

Постановка задачи - на слайде. Чтобы переложить пирамиду из n дисков с 1 стержня на 3, перекладываем вначале рекурсивно пирамиду из n-1 диска с 1 стержня на 2, затем перекладываем самый большой диск с 1 на 3 и наконец перекладываем пирамиду их n-1 диска со 2 стержня на 3. Бинго!

Обожаю эту задачу! Мои коллеги из Бостона, зная это, привезли мне в подарок эту головоломку - решаю её прямо сейчас!
6👍5🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Фигуры Лиссажу

Вот такая программа

##
uses GraphWPF;

function Pos(t: real) :=
Pnt(350*cos(4*t)+400, 250*cos(2.9*t + 2*Pi/3)+300);

Window.Title := 'Фигуры Лиссажу';
var t := 0.0;
var v := 0.2;
OnDrawFrame := dt -> begin
t += dt * v;
Circle(Pos(t),50,Colors.Green);
end;

реализует движение по траектории, называемой фигурой Лиссажу. Здесь используется анимация на основе кадра. Функция Pos задает параметрическое уравнение кривой Лиссажу

#графика
👍9
Метод расширения Cast

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

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

Некую сложность представляет задание массивов точек: первый элемент надо делать вещественным чтобы массив-константа интерпретировался как вещественный.

#графика
👍10
Перегрузка операций как методов расширения

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

#студентам
👍7
Машинное обучение в PascalABC.NET

Пакет Microsoft.ML реализует множество задач машинного обучения. В отличие от библиотек Python, мы получаем проверку ошибок во время компиляции и более эффективные алгоритмы.

На скриншоте - проект, строящий модель KMeans по широко известному датасету цветков Ириса и затем предсказывающий вид конкретного цветка Ириса с использованием натренированной модели.

#машинное обучение
#студентам
👍102