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

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

Открыть в Telegram

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

Больше
1 857
Подписчики
+124 часа
-127 дней
-2330 дней
Архив постов
Операция in для проверки попадания точки в область На скриншоте - программа, которая позволяет штатными средствами PascalABC.
Операция in для проверки попадания точки в область На скриншоте - программа, которая позволяет штатными средствами PascalABC.NET проверить попадание целочисленной точки в прямоугольник с целыми координатами вершин

Знаковое событие - встраивание Python в Excel По-существу Python давно выполняет многие задачи автоматизации лучше VBA. И вот теперь Mocrosoft приняла решение. Учитывая отличные библиотеки Python для визуализации графиков это - знаковое событие. https://www.ixbt.com/news/2023/08/22/microsoft-python-excel.html

One-Liners в PascalABC.NET One-Liners - это программы из одной строки, делающие что-то полезное. Термин введен популяризатора
One-Liners в PascalABC.NET One-Liners - это программы из одной строки, делающие что-то полезное. Термин введен популяризаторами Python чтобы подчеркнуть, какой Python замечательный и компактный язык. В курсе "Основы программирования" мы также идем по этой скользкой дорожке и демонстрируем некоторые One-Liners на языке PascalABC.NET Предлагаем читателям опубликовать свои интересные One-Liners

Корутины С помощью функций, генераторов последовательностей можно организовывать выполнение простых сопроцедур (корутин). На
Корутины С помощью функций, генераторов последовательностей можно организовывать выполнение простых сопроцедур (корутин). На скрине - корутина q и корутина p последовательно выполняют действия между операторами yield. В данном случае оператор yield играет роль паузы после выполнения Movenext, а его возвращаемое значение игнорируется.

Бесконечная последовательность чисел Фибоначчи Реализуем генератор бесконечной последовательности чисел Фибоначчи с помощью о
Бесконечная последовательность чисел Фибоначчи Реализуем генератор бесконечной последовательности чисел Фибоначчи с помощью оператора yield

Новая книга Валерия Рубанцева Валерий Рубанцев опубликовал свою новую замечательную книгу "Компьютерная графика на заниматель
Новая книга Валерия Рубанцева Валерий Рубанцев опубликовал свою новую замечательную книгу "Компьютерная графика на занимательных примерах": https://forum.mmcs.sfedu.ru/t/chere-puh-i-vse-vse-vse/4126/56 и сопроводил пост напутствием: "Кто качает, тот не подкачает!" Прямые ссылки: книга: https://disk.yandex.ru/i/nSzSBrLI1IsyIA тексты программ: https://disk.yandex.ru/d/V7lrWiabmOZ8Vw

Определяем все методы строки рефлексией Каждый тип имеет метод GetMethods, возвращающий все его методы. Чтобы выдать их в сти
Определяем все методы строки рефлексией Каждый тип имеет метод GetMethods, возвращающий все его методы. Чтобы выдать их в стиле Паскаля, приходится немного попреобразовывать параметры и воспользоваться стандартной функцией TypeToTypeName.

Astra Linux - недопущение новых возможностей PascalABC.NET Продолжаем обзор интернета с упоминанием PascalABC.NET Удивительно
Astra Linux - недопущение новых возможностей PascalABC.NET Продолжаем обзор интернета с упоминанием PascalABC.NET Удивительное описание современной версии PascalABC.NET находим на портале Easy Astra (см. скрин). Свежее, красивое, добротно сделанное. Удивительное потому что вообще не упоминается то, что было после Delphi. И код на скриншоте, сделанный очевидно специалистом, он как бы передает привет из далёких 70-х.

Полиморфные массивы и фильтрация по типу В следующем примере создается массив разнородных объектов. Чтобы эти объекты сосущес
Полиморфные массивы и фильтрация по типу В следующем примере создается массив разнородных объектов. Чтобы эти объекты сосуществовали в одном массиве, тип элементов массива должен быть object - предок всех типов. Затем можно отфильтровать по типу с помощью OfType и обрабатывать уже только элементы данного типа. Приятно, что после OfType мы получаем последовательность элементов ровно того типа, который указан в OfType. Поэтому отфильтрованные вещественные можно например просуммировать #PascalABC.NET

SelectMany как операция, обратная группировке Если произвести группировку по какому-то полю, то мы получим иерархический набо
SelectMany как операция, обратная группировке Если произвести группировку по какому-то полю, то мы получим иерархический набор данных, разбитых по группам. Чтобы вернуться назад к линейным данным - используем SelectMany. Этот метод сцепляет последовательности из каждой группы в единую плоскую последовательность. В результате после GroupBy и SelectMany получаем исходную последовательность с измененным порядком элементов.

Вырезание подматрицы из матрицы Срезы позволяют вырезать подматрицу из матрицы
Вырезание подматрицы из матрицы Срезы позволяют вырезать подматрицу из матрицы

ToArray для кортежей В выпуске 3.9.0.3338 появился метод расширения ToArray для кортежей элементов одного типа #новое
ToArray для кортежей В выпуске 3.9.0.3338 появился метод расширения ToArray для кортежей элементов одного типа #новое

Перемешиваем карты - Unicode-символы В данной программе будем представлять игральные карты Unicode-символами. Основная сложно
Перемешиваем карты - Unicode-символы В данной программе будем представлять игральные карты Unicode-символами. Основная сложность здесь - то, что игральная карта кодируется двумя Unicode-символами. Поэтому преобразуем ее вначале в последовательность байт, затем будем увеличивать нужный байт на 1 и назад потом преобразуем в строку. Из полученной последовательности выбросим некоторые Unicode-символы, не являющиеся изображениями карт. И потом перетасуем нашу колоду, вызвав процедуру Shuffle для списка!

Shuffle - перемешиваем колоду карт Данная программа иллюстрирует создание и перемешивание колоды карт. Для создания используе
Shuffle - перемешиваем колоду карт Данная программа иллюстрирует создание и перемешивание колоды карт. Для создания используется метод Cartesian, для перемешивания - внешняя функция Shuffle, которая пришла из стандартной библиотеки C++.

Обзор статей на youtube. Молодые старики За последний месяц на youtube появилось не так много появилось статей с тегом Pascal
Обзор статей на youtube. Молодые старики За последний месяц на youtube появилось не так много появилось статей с тегом PascalABC.NET. Вот одна характерная: https://www.youtube.com/watch?v=tF6H2zQx1ts Порекламируем канал молодого репетитора :) Но что мы видим? Показ программ в среде PascalABC.NET на дремучем Паскале 70-х годов. И - вывод - на скриншоте о том, что язык Паскаль - для людей за 40+. Вывод. Полностью отсутствует попытка разобраться, что такое PascalABC.NET.

Метод Numerate Метод Numerate позволяет к каждому элементу последовательности приписать его номер в последовательности. Он во
Метод Numerate Метод Numerate позволяет к каждому элементу последовательности приписать его номер в последовательности. Он возвращает последовательность пар (номер, элемент) Этот метод очень удобен в задачах, где требуется использовать именно номера элементов. Например, в задаче "Номера первых пяти простых чисел, содержащих цифру 5" решение может быть таким:
##
uses School;
Primes(500).Numerate.Where(p -> '5' in p[1].ToString).Take(5).Print
с выводом
(3,5) (16,53) (17,59) (36,151) (37,157)
Если пытаться решать эту задачу циклами, то вот первый набросок решения:
uses School;

begin
  var pp := Primes(500);
  for var i:=0 to pp.Count-1 do
    if '5' in pp[i].ToString then
      Println(pp[i],i+1)
end.
Вывод:
5 3 
53 16 
59 17 
151 36 
157 37 
251 54 
257 55 
353 71 
359 72 
457 88 
И - надо отобрать первые 5 строк. Кто предложит - как, не используя последовательности?

EasyAstra - Astra Linux становится ближе - Записки IT специалиста https://interface31.ru/tech_it/2023/08/easyastra-astra-linux-stanovitsya-blizhe.html

В статье помимо прочего рассказывается, как просто установить PascalABC.NET в Astra Linux

Гауссово (нормальное) распределение случайной величины Данная программа иллюстрирует гауссово распределение случайной величин
Гауссово (нормальное) распределение случайной величины Данная программа иллюстрирует гауссово распределение случайной величины
pascal
uses GraphWPF;

function Gauss(M,Sigma: real): real;
begin
  var u := 2*Random - 1;
  var v := 2*Random - 1;
  
  var sq1 := Sqrt(-2*ln(v))*Cos(2*Pi*u);
  Result := Sigma * sq1 + M
end;

begin
  Window.Title := 'Нормально распределенная случайная величина';
  SetMathematiccoords(-5,5);
  loop 100000 do
  begin
    var (x,y) := (Gauss(0,1),Gauss(0,1));
    FillCircle(x,y,0.02,RandomColor)
  end
end.

Новые стандартные функции ArrRandomReal и SeqRandomReal с параметром digits В последней версии появились стандартные функции
Новые стандартные функции ArrRandomReal и SeqRandomReal с параметром digits В последней версии появились стандартные функции ArrRandomReal и SeqRandomReal с необязательным параметром digits. Спасибо Александру Осипову за предложение! #новое