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

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

前往频道在 Telegram

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

显示更多
1 859
订阅者
-124 小时
-117 天
-2630 天
帖子存档
🤖 Алгоритм кластеризации K-means, написанный ChatGPT! Мир программирования не стоит на месте, и сегодня мы хотим рассказать вам об одном из самых популярных алгоритмов машинного обучения — K-means! Этот алгоритм помогает автоматически разделять данные на кластеры, что очень полезно в задачах анализа данных, сегментации пользователей, обработки изображений и многого другого. Но самое интересное — алгоритм K-means был написан с помощью ChatGPT и теперь доступен для изучения и использования! 🎉 Мы подготовили специальный материал, который объяснит основные принципы работы этого алгоритма и покажет, как его можно реализовать на PascalABC.NET. 🔗 Полный код и объяснение по ссылке: https://teletype.in/@pascalabcnet/FLq12dPr2bW 💡 Чем полезен K-means? ✦ Простота реализации и высокая скорость работы. ✦ Эффективен при обработке больших объемов данных. ✦ Идеален для визуализации и анализа многомерных данных. Если вы хотите разобраться в алгоритмах машинного обучения и применить их в своих проектах на PascalABC.NET, то K-means — отличный выбор для старта! 🚀 #МашинноеОбучение #Kmeans #Алгоритмы

Новый стандартный метод массивов IndexMinBy В PascalABC.NET у массивов появился новый стандартный метод, который позволяет в
Новый стандартный метод массивов IndexMinBy В PascalABC.NET у массивов появился новый стандартный метод, который позволяет в массиве найти индекс минимального элемента после проекции на ключ. На скриншоте - пример использования в массиве кортежей.

🆕 Новый метод Window.SaveToClipboard В GraphWPF появился метод Window.SaveToClipboard сохранения содержимого окна в буфер обмена. Теперь можно легко сохранять содержимое окна или его часть прямо в буфер обмена всего одной строкой кода! Это отличное решение для быстрого обмена информацией, создания скриншотов или копирования данных для дальнейшего использования. 🔧 Пример использования:
uses GraphWPF;

begin
  Circle(200,200,100,Colors.LightBlue);
  Window.SaveToClipboard;
end.
✨ Что это дает? ✦ Удобство в разработке: быстрое сохранение визуальных данных. ✦ Интеграция с другими приложениями: копируйте данные напрямую и вставляйте в любые другие программы. ✦ Экономия времени: больше не нужно использовать сторонние инструменты для захвата экранов. Пробуйте новый метод и делитесь своими впечатлениями! 🚀 #новое

🚀 Генерация кластеров точек на плоскости uses Coords; function GenerateCluster(X, Y, spread: real; count: integer): array of
🚀 Генерация кластеров точек на плоскости
uses Coords;

function GenerateCluster(X, Y, spread: real; count: integer): array of Point;
begin
  Result := ArrGen(count, i -> new Point(
    RandomReal(X - spread / 2, X + spread / 2),
    RandomReal(Y - spread / 2, Y + spread / 2)
  ));
end;

begin
  Window.Title := 'Генерация кластеров';
  var cluster1 := GenerateCluster(5, 3, 5, 90);
  var cluster2 := GenerateCluster(7, -6, 4, 105);
  var cluster3 := GenerateCluster(-7, 2, 6, 44);
  
  DrawPoints(cluster1,3);
  DrawPoints(cluster2,3);
  DrawPoints(cluster3,PointRadius := 3);
end.
Здесь показано, как генерировать три кластера точек, используя: ✦ Автоклассы для создания типов данных ✦ Функцию ArrGen для генерации массивов ✦ Модуль Coords и функцию DrawPoints для визуализации массивов точек ✦ Функцию RandomReal(a, b) для получения случайных вещественных Программа демонстрирует основные современные возможности языка, позволяющие писать компактный и выразительный код. #ЕГЭ #Графика #Кластеры #ГенерацияТочек

Русские имена в программах В PascalABC.NET в качестве идентификаторов можно использовать русские имена. Это затрудняет написа
Русские имена в программах В PascalABC.NET в качестве идентификаторов можно использовать русские имена. Это затрудняет написание программы, но повышает её читаемость. В стандартных примерах PascalABC.NET имеется папка Русские исполнители - здесь приводится одна из программ. Все имена в программе - русские. Даже параметры лямбд. В подсказках также - исключительно русский язык. На наш взгляд, для примеров это - идеальный способ донести идею до начинающих. #методика #русский

Мы начинаем повторные публикации некоторых старых постов нашего канала. Некоторые из них - очень удачные, и повторно хочется что то обсудить. Другие подойдут вновь подключившимся участникам. Одна из них - про русский язык в программах. Источник многих споров. И - интересно - когда мы делали пакет для Alt Linux, я получил массу вопросов именно по модулю Исполнители, где имена на русском.

🌐 Работа с сетевыми библиотеками .NET в PascalABC.NET 🌐 PascalABC.NET позволяет использовать мощные сетевые библиотеки .NET для создания приложений, которые могут взаимодействовать с веб-сервисами и сетевыми ресурсами. Сегодня рассмотрим, как с помощью класса System.Net.WebClient можно легко загружать данные из интернета. 📡 Пример: Загрузка веб-страницы с помощью .NET
uses System.Net;

begin
  var url := 'https://yandex.ru';
  var client := new WebClient;
  try
    var content := client.DownloadString(url);
    Println(content[:1000]);
  except
    on e: Exception do
      Println('Ошибка при загрузке данных:', e.Message);
  end;
end.
⚙️ В этом примере мы используем класс WebClient для получения данных с веб-страницы. С помощью методов этой библиотеки можно загружать как строки, так и файлы, а также отправлять запросы к API. 📡 Применение: Этот пример можно использовать для парсинга данных с веб-сайтов или создания простого сетевого клиента. Откройте для себя возможности сетевых приложений с PascalABC.NET и библиотеками .NET! #PascalABC #dotNET #Сети #Программирование #Pascal #Web

Новый модуль Coords Модуль Coords предназначен для отображения графических элементов с масштабированием. Он позволяет отображ
Новый модуль Coords Модуль Coords предназначен для отображения графических элементов с масштабированием. Он позволяет отображать различные графические примитивы без анимации - при масштабировании мышью все примитивы заново "проигрываются" с новым масштабом. Необходимо скачать новую версию.
uses Coords;

function RandomPoint: Point := Pnt(Random(-13,13),Random(-10,10));

begin
  DrawPoints(ArrGen(10,i -> RandomPoint),PointRadius := 4);
  DrawPoints(ArrGen(10,i -> RandomPoint),PointRadius := 6);
  DrawPoint(2,3,Colors.Red);
  DrawCircle(1,1,1,Colors.LightBlue);
  DrawRectangle(3,2,2,1);
  DrawText(3,2,'Hello');
  DrawTextUnscaled(0,0,'Текст не масштабируется', Size := 20, Color := Colors.Red);
  DrawText(-4,7,'Текст масштабируется', FontName := 'Courier New', Size := 34);
end.
На основе модуля Coords написан модуль Turtle. #новое

Новый модуль Coords

Автоклассы и их предки В PascalABC.NET стало возможно наследовать автоклассы от классов без полей. Это можно использовать в р
Автоклассы и их предки В PascalABC.NET стало возможно наследовать автоклассы от классов без полей. Это можно использовать в ряде сценариев. #новое

Воскресная компьютерная школа мехмата ЮФУ и PascalABC.NET Система программирования PascalABC.NET обязана своим развитием детс
+3
Воскресная компьютерная школа мехмата ЮФУ и PascalABC.NET Система программирования PascalABC.NET обязана своим развитием детской компьютерной школе мехмата ЮФУ (сайт компьютернаяшкола.рф). Именно здесь обкатываются все последние методики, развиваются новые библиотеки и сервисы. Каждый год в Компьютерной школе мехмата ЮФУ обучается более 400 юных программистов. На снимках - примерно половина этих школьников, пришедших вместе с родителями в прошлое воскресенье. Первый и основной язык программирования - PascalABC.NET. Он ставит базу, а на втором году обучения изучается Python как второй язык. Школьники проходят его быстро потому что не допускают тех ошибок, которые делают начинающие с языка Python. На фото - примерно половина этих школьников, пришедших на собрания в два последних воскресенья вместе с родителями.

Табулирование функции Для табулирования функции Sin(x) воспользуемся генератором последовательности точек Range, возвращающим
Табулирование функции Для табулирования функции Sin(x) воспользуемся генератором последовательности точек Range, возвращающим точки разбиения отрезка [a,b] с шагом h.

ChatGPT - решение задачи о принадлежности точки треугольнику function triangleArea(x1, y1, x2, y2, x3, y3: real): real; begin
ChatGPT - решение задачи о принадлежности точки треугольнику
function triangleArea(x1, y1, x2, y2, x3, y3: real): real;
begin
  Result := abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
end;

function IsPointInTriangle(px, py, x1, y1, x2, y2, x3, y3: real): boolean;
begin
  var areaOriginal := triangleArea(x1, y1, x2, y2, x3, y3);
  
  var area1 := triangleArea(px, py, x2, y2, x3, y3);
  var area2 := triangleArea(x1, y1, px, py, x3, y3);
  var area3 := triangleArea(x1, y1, x2, y2, px, py);
  
  // Если сумма площадей равна исходной площади, точка принадлежит треугольнику
  Result := abs(areaOriginal - (area1 + area2 + area3)) < 1e-9;
end;

begin
  var (x1, y1) := (0.0, 0.0);  
  var (x2, y2) := (5.0, 0.0);  
  var (x3, y3) := (0.0, 5.0);  
  var (px, py) := (2.0, 2.0);  

  if IsPointInTriangle(px, py, x1, y1, x2, y2, x3, y3) then
    Println('Точка принадлежит треугольнику')
  else
    Println('Точка не принадлежит треугольнику');
end.

Переходим с Python на PascalABC.NET Перед вами - шпаргалка соответствия конструкций Python и PascalABC.NET. Некоторые конструкции PascalABC.NET отсутствуют в Python - например, цикл loop или цикл repeat-until.

Первая программа на PascalABC.NET для студентов Мы начинаем с языка программирования со статической типизацией компиляционног
Первая программа на PascalABC.NET для студентов Мы начинаем с языка программирования со статической типизацией компиляционного типа. Это позволяет не только лучше понять, как данные хранятся в памяти, но и гораздо лучше почувствовать эффективность программ, а также получить правильное представление о типах данных. С первым занятием по программированию - всех читателей канала! Кто-то ученик, кто-то преподаватель, а кто-то - разработчик. Но все мы занимаемся одним делом - программируем.

Библиотека MathNet.Numerics.dll Библиотека математических вычислений MathNet.Numerics.dll интегрирована в инсталлятор PascalA
Библиотека MathNet.Numerics.dll Библиотека математических вычислений MathNet.Numerics.dll интегрирована в инсталлятор PascalABC.NET. На скриншоте - генерация набора чисел, подчиненного нормальному распределению #новое

Регулярные выражения для школьников в День Знаний Администрация канала поздравляет всех читателей с Днем Знаний! В День Знаний мы публикуем презентацию и выступление Ипатова Юрия Аркадьевича об использовании регулярных выражений при решении задач ЕГЭ (Съезд учителей информатики, 27.08.24). Это был лучший доклад в секции ЕГЭ. И - ссылка на сам доклад https://youtu.be/ySMsZm0ZUNY

Беседа с ChatGPT о новом востребованном языке программирования. И - новый язык школьного программирования будущего - EduFlex! Обращаем внимание, что во всех вариантах ChatGPT предлагал язык со статической типизацией. И с цепочкой методов с лямбдами в качестве параметров. https://teletype.in/@pascalabcnet/sH6iujQmEtL

PascalABC.NET версии 3.10.0 Вышел PascalABC.NET версии 3.10.0 Список изменений - здесь: https://pascalabcnet.github.io/mydoc_
PascalABC.NET версии 3.10.0 Вышел PascalABC.NET версии 3.10.0 Список изменений - здесь: https://pascalabcnet.github.io/mydoc_release_notes_3_10_0.html Основные изменения: многострочные строковые литералы, операция to, новые модули WPF и Turtle, отладчик в Linux-версии.

Визуализация массива точек в Turtle В модуле Turtle появилась функция визуализации массива точек DrawPoints. В качестве парам
Визуализация массива точек в Turtle В модуле Turtle появилась функция визуализации массива точек DrawPoints. В качестве параметров можно передавать либо массив точек, либо массивы абсцисс и ординат точек. Вот программа, визуализирующая первый тестовый набор точек с двумя кластерами. На скриншоте видно, что к сожалению границы кластера не целочисленные.
uses Turtle;

begin
  Window.Title := 'Кластеризация';
  var a := ReadLines('demo_2025_27_А.txt').Skip(1).JoinToString.ToReals(',').ToArray;
  var xx := a[::2];
  var yy := a[1::2];
  DrawPoints(xx,yy);
end.
#новое #ЕГЭ