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

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

Відкрити в Telegram

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

Показати більше
1 858
Підписники
-224 години
-137 днів
-2430 днів
Архів дописів
Нужны ли программисту алгоритмы Извечная тема для холивара. Статья написана хорошим языком, с хорошим юмором.

Использование методов при решении задач на строки По итогам конкурса школьники единогласно выбрали наиболее понравившуюся зад
Использование методов при решении задач на строки По итогам конкурса школьники единогласно выбрали наиболее понравившуюся задачу. Она решается в одну строку и состоит из 6 методов.

Генерация первых n натуральных чисел Простой способ не ставить лишние скобки при генерации последовательности натуральных чис
Генерация первых n натуральных чисел Простой способ не ставить лишние скобки при генерации последовательности натуральных чисел от 1 до N - использовать метод расширения Range. Сравните.

Обработка слов в текстовом файле Демонстрируется решение задачи о количестве слов в файле на каждую букву. Слова в русском яз
Обработка слов в текстовом файле Демонстрируется решение задачи о количестве слов в файле на каждую букву. Слова в русском языке чаще всего начинаются с п, затем с с, а затем с к.

Прямая выборка записи произвольной структуры из бестипового файла по номеру записи type [Serializable] tR = record f1: array
Прямая выборка записи произвольной структуры из бестипового файла по номеру записи type [Serializable] tR = record f1: array of BigInteger; f2: List<real> end; tA = array of int64; begin var n := 12; // планируемое количество записей в файле var f := CreateBinary('example2.bin'); var a := new int64[n]; f.Serialize(a); var r: tR; for var i := 0 to n - 1 do begin a[i] := f.Position; var k := Random(5, 20); var p := Biginteger(Random(25, 131)); r.f1 := SeqGen(k, j -> p ** j).ToArray; r.f2 := r.f1.nWise(3).Select(t -> t.Average).ToList; f.Serialize(r); if i = 5 then Println(r); // контрольный вывод end; f.Position := 0; f.Serialize(a); f.Close; // -------------------------------- Println('*** Прямое чтение записи № 5 ***'); a := nil; f := OpenBinary('example2.bin'); f.Position := 0; a := tA(f.Deserialize); f.Position := a[5]; r := tR(f.Deserialize); Println(r) end.

Количество слов в строке на каждую букву Лекция по строкам. Разбиваем на слова, группируем по первой букве, каждую группу пре
Количество слов в строке на каждую букву Лекция по строкам. Разбиваем на слова, группируем по первой букве, каждую группу преобразуем в пару (буква, количество слов) и упорядочиваем по количеству слов

Заполнение лидирующими нулями при выводе При выводе целого в двоичной или десятичной форме иногда требуется заполнить число л
Заполнение лидирующими нулями при выводе При выводе целого в двоичной или десятичной форме иногда требуется заполнить число лидирующими нулями. Приводим способы, как это можно сделать

Контекстно-ключевое слово step Даже в PascalABC.NET есть тёмные пятна. Одно из них - слово step. Вы видите правильную програм
Контекстно-ключевое слово step Даже в PascalABC.NET есть тёмные пятна. Одно из них - слово step. Вы видите правильную программу на PascalABC.NET, которая правильно работает. Но счастья от этого нет. Даже система подсветки синтаксиса - в ужасе, она не знает, какое слово step подсвечивать как ключевое. И только компилятор знает всё.

Как эффективно формировать новую строку StringBuilder - тип, предназначенный для эффективного изменения и формирования строк
Как эффективно формировать новую строку StringBuilder - тип, предназначенный для эффективного изменения и формирования строк

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

Методы Numerate, Tabulate, Pairwise Методы последовательностей Numerate, Tabulate, Pairwise стандартной библиотеки PascalABC.
Методы Numerate, Tabulate, Pairwise Методы последовательностей Numerate, Tabulate, Pairwise стандартной библиотеки PascalABC.NET отсутствуют в стандартном C#

PascalABC.NET как неучебный язык программирования По ссылке - научная статья. Авторы - из университетов Барселоны и Харькова. Язык реализации - PascalABC.NET, что явно указано в тексте статьи https://www.researchgate.net/publication/360486648_Mathematical_Model_and_Optimization_Algorithm_By_Mass_of_Tracked_Load-CarrierPrime_Mover_MT-LB_Transmission

Использование баз данных в PascalABC.NET Проще всего установить пакет LiteDB бессерверной базы данных. Вначале программа созд
Использование баз данных в PascalABC.NET Проще всего установить пакет LiteDB бессерверной базы данных. Вначале программа создает базу данных с таблицей Persons и создаёт в ней несколько записей (закомментированный участок). Затем печатает содержимое таблицы из БД. Документацию можно почитать здесь: https://www.litedb.org/docs/getting-started/

Методы Zip, ZipTuple, UnZip Методы Zip, ZipTuple позволяют объединять две последовательности в одну, а UnZipTuple - разъединя
Методы Zip, ZipTuple, UnZip Методы Zip, ZipTuple позволяют объединять две последовательности в одну, а UnZipTuple - разъединять последовательность кортежей на две последовательности

тгпуе - это nuget?

Кластеризация цветков Ириса с использованием Accord.NET Стандартную задачу машинного обучения о кластеризации цветков Ирисов
Кластеризация цветков Ириса с использованием Accord.NET Стандартную задачу машинного обучения о кластеризации цветков Ирисов можно решить на PascalABC.NET& создав проект и подключив два тгпуе-пакета: Accord.MachineLearning и Accord.DataSets

Как перечислить все подкаталоги текущего каталога На скриншоте - программа, выводящая подкаталоги текущего каталога
Как перечислить все подкаталоги текущего каталога На скриншоте - программа, выводящая подкаталоги текущего каталога

Обработка строк и регулярные выражения Использование регулярных выражений может существенно облегчить решение задач с достаточно непростыми алгоритмами обработки строк. Рассмотрим следующую задачу:
Строка содержит текст, включающий пробелы, целые и вещественные числа, а также различные знаки. Числа могут иметь знак минус. Вещественные числа представлены в формате с фиксированной точкой. Откорректировать каждое число по следующему правилу: целые числа увеличить на единицу, вещественные - уменьшить на 5%.
Пример. Текст "Вчера температура на улице была -8 градусов, а сегодня она поднялась на 15.4%" после редактирования должен иметь вид "Вчера температура на улице была -7 градусов, а сегодня она поднялась на 14.63%".
РВ для выделения целых чисел можно записать в виде -?\d+. Для вещественных чисел с фиксированной точкой РВ может иметь вид -?\d+\.\d+. Замену подстрок будем производить с использованием метода PascalАВС.NЕТ .RegexReplace. Поскольку алгоритм замены зависит от найденного контекста, нужно будет написать лямбда-функцию и передать ее методу в качестве второго параметра.
##
var s := ReadlnString;
var Cnv: string -> string :=
    s -> (s.Contains('.') ? (s.ToReal * 0.95) : s.ToInteger + 1).ToString;
s.RegexReplace('-?\d+\.\d+|-?\d+', m -> Cnv(m.Value)).Print
{
Вчера температура на улице была -8 градусов, а сегодня она поднялась на 15.4%.
Вчера температура на улице была -7 градусов, а сегодня она поднялась на 14.63%. 
}
Обратите внимание, что в регулярном выражении нужно начинать поиск с шаблона вещественного числа, а не целого. В противном случае вместо подстрок (для приведенного примера) -8 и 15.4 будут найдены подстроки -8, 15 и 4.

Явное указание типа при описании Описание переменных с автовыведением типа - отличная возможность для начинающих. Однако есть
Явное указание типа при описании Описание переменных с автовыведением типа - отличная возможность для начинающих. Однако есть ситуации, в которых тип надо указывать явно. Одна из них - алгоритм вычисления минимума из двух чисел В комментариях приводите другие ситуации, где уместно использовать явное указание типа