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

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

Ir al canal en Telegram

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

Mostrar más
1 857
Suscriptores
-224 horas
-167 días
-2430 días
Archivo de publicaciones
Доклад о сравнении PascalABC.NET и Python Доклад о сравнении PascalABC.NET и Python с III конференции «Использование системы программирования PascalABC.NET в обучении программированию» #конференция

Операции ?. и ?? Исключение использования нулевой ссылки встречается очень часто. Операции ?. и ?? позволяют не выбрасывать и
Операции ?. и ?? Исключение использования нулевой ссылки встречается очень часто. Операции ?. и ?? позволяют не выбрасывать исключение. В примере на слайде если p = nil, то p.Name сгенерирует исключение, а p?.Name вернет nil. p?.Age также вернет nil, но операция ?? позволяет задать значение по умолчанию. Итог: для нулевой персоны имя тодже нулевое, а возраст - 17 лет.

Операции ?. и ??

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

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

Свойства в PascalABC.NET Свойства в PascalABC.NET заимствованы из Delphi. Свойства - это "умные" поля, которые при чтении и з
Свойства в PascalABC.NET Свойства в PascalABC.NET заимствованы из Delphi. Свойства - это "умные" поля, которые при чтении и записи могут делать дополнительные действия, а также ограничивать доступ (например, только на чтение. На скриншоте - класс Person со свойством Name только на чтение и со свойством Age, не позволяющим присвоить отрицательный возраст #ООП

Скрипт статистики зарегистрированных участников конференции На PascalABC.NET в одну строчку легко пишутся скрипты для анализа
Скрипт статистики зарегистрированных участников конференции На PascalABC.NET в одну строчку легко пишутся скрипты для анализа csv-файлов. На скриншоте - скрипт анализа зарегистрированных участников конференции по городам. Живые данные на 15.03

Свободный софт - он такой свободный! https://www.cnews.ru/news/top/2023-03-16_razrabotchiki_linux_nachali_goneniya

OneLiner для вывода таблицы умножения OneLinerы - это программы, состоящие из одной строки, решающие какую-то задачу. OneLine
OneLiner для вывода таблицы умножения OneLinerы - это программы, состоящие из одной строки, решающие какую-то задачу. OneLinerы распространились на языке Python, поскольку он позволял коротко записывать решения задач PascalABC.NET активно подключился к этому спорту. На скриншоте - программа, выводящая таблицу умножения. Обращает на себя внимание техническая часть: для моделирования вложенных циклов используется Cartesian, а чтобы вывод сделать построчным, используется Batch с последующим превращением каждой подпоследовательности в строку

Замена с помощью регулярного выражения С помощью регулярных выражений можно заменять в строках одни подстроки на другие. Дела
Замена с помощью регулярного выражения С помощью регулярных выражений можно заменять в строках одни подстроки на другие. Делается это либо с помощью подстановки вида $0, либо с помощью лямбды, преобразующей захваченный Match в подстроку. #регулярные_выражения

Новая модификация метода Each В PascalABC.NET 3.8.3.3253 появилась модификация метода Each, позволяющая создавать словари по
Новая модификация метода Each В PascalABC.NET 3.8.3.3253 появилась модификация метода Each, позволяющая создавать словари по последовательности ключей, инициализируя их указанными значениями. Таким способом удобно заводить словари счётчиков, инициализированные нулями. На скриншоте - создание словаря счетчиков с ключами, являющимися латинскими буквами, и словаря счетчиков, связанных с набором строк. #новое

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

Немного про кеширование Современные процессоры упреждающе считывают в кеш процессора следующие данные. Кеш - более быстрый че
Немного про кеширование Современные процессоры упреждающе считывают в кеш процессора следующие данные. Кеш - более быстрый чем оперативная память. Этим можно пользоваться для небольшого ускорения программ. На скриншоте - две процедуры. Вторая на каждой итерации цикла пользуется двумя соседними элементами массива. Это позволяет немного ускорить вычисления

Видели ли вы когда-нибудь ковёр Серпинского в 3D? А он есть! Вот он - на скрине. И программа: uses Graph3D; var SColor := Arr
Видели ли вы когда-нибудь ковёр Серпинского в 3D? А он есть! Вот он - на скрине. И программа:
uses Graph3D;

var SColor := Arr(Colors.Yellow,Colors.Blue,Colors.Red,Colors.Black,Colors.Purple);

procedure Serpinsky(x,y,z,w: real; n: integer);
begin
  if n = 0 then exit;
  w := w/3;
  Box(x,y,z,w,w,w,n=1 ? RandomColor: SColor[n]);
  for var i:=-1 to 1 do
  for var j:=-1 to 1 do
  for var k:=-1 to 1 do
    Serpinsky(x+i*w,y+j*w,z+k*w,w,n-1);
end;

begin
  View3D.HideAll;
  Serpinsky(0,0,0,10,3);
end.
#3D #графика

Упрощённая структура модуля в PascalABC.NET Почему начинающие не пишут модули в старом Паскале? Потому что они сложные. В Pas
Упрощённая структура модуля в PascalABC.NET Почему начинающие не пишут модули в старом Паскале? Потому что они сложные. В PascalABC.NET имеются модули упрощенной структуры. Это просто коллекция процедур, функций, типов. Сделать такой модуль легко, пользоваться еще легче #начинающим #PascalABC

Сравнение производительности программ на Python, PascalABC.NET и C++ при полном переборе В официальном youtube-канале PascalABC.NET опубликовано сравнение производительности программ, решающих некоторую задачу полного перебора, на языках Python? PascalABC.NET и C++. Используются все средства ускорения программ. https://www.youtube.com/watch?v=7eU1lFKEZvc

Ищем повторы с помощью регулярных выражений В текстах часто допускаются ошибки повтора одного слова дважды - обычно при копир
Ищем повторы с помощью регулярных выражений В текстах часто допускаются ошибки повтора одного слова дважды - обычно при копировании. Такие ошибки легко распознать с помощью регулярных выражений. На скриншоте - регулярное выражение, распознающее такие дубликаты: (\w+)\s+(\1)

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

Множество массивов кортежей и прочие звери Как описать и заполнить множество массивов кортежей? Это просто: var d := HSet(|(1
Множество массивов кортежей и прочие звери Как описать и заполнить множество массивов кортежей? Это просто:
var d := HSet(|(1,'hi'),(3,'oh')|,
  |(5,'wulf'),(7,'dog')|,
  |(9,'bad'),(10,'light')|
);
Не надо указывать тип - он автоматически выводится компилятором. На всякий случай - тип такой:
d: HashSet<array of (integer,integer)>
Видно, что компилятор проделывает большую работу. В построении такой структуры данных нам помогают синтаксические конструкции для построения литеральных кортежей и массивов, а также создающая функция HSet. Второй вопрос - а как вывести такую структуру? Ответ еще более прост:
Print(d);
Функция Print - умная - и умеет выводит все структурированные типы. Обратите внимание, что множества выводятся в {} массивы и списки выводятся в [] кортежи выводятся в ()

Квайн на PascalABC.NET Квайн (quine) - это программа, печатающая свой текст. При этом запрещено использовать технические приё
Квайн на PascalABC.NET Квайн (quine) - это программа, печатающая свой текст. При этом запрещено использовать технические приёмы (например, считывание из файла) или специфические хакерские приемы конкретного языка программирования. Ниже приводится квайн на PascalABC.NET.
## var q:='''';var s:='## var q:=;var s:=;Print(s[:11]+q+q+q+q+s[11:19]+q+s+q+s[19:])';Print(s[:11]+q+q+q+q+s[11:19]+q+s+q+s[19:])
На скриншоте видно, что программа печатает свой код.