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

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

前往频道在 Telegram

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

显示更多
1 857
订阅者
-224 小时
-167 天
-2430 天
帖子存档
Способы инвертирования массива На скриншоте - 5 способов инвертирования массива. Они отличаются по времени, по памяти, по кра
Способы инвертирования массива На скриншоте - 5 способов инвертирования массива. Они отличаются по времени, по памяти, по краткости записи. Три первых способа - это алгоритмы, четвертый - стандартная процедура, пятый использует конструкцию языка - срезы. Какой способ выбрать - зависит от методики. #начинающим #методика

Жадная и ленивая квантификация в регулярных выражениях Задача. Найти в строке Привет, Мир все выражения, заключенные в "". Ре
Жадная и ленивая квантификация в регулярных выражениях Задача. Найти в строке <a href="helloworld.htm" title="Привет, Мир">Привет, Мир</a> все выражения, заключенные в "". Решение 1 (неправильное). В качестве паттерна поиска используется регулярное выражение ".*" (двойная кавычка, последовательность любых символов, двойная кавычка) Результат: "helloworld.htm" title="Привет, Мир" По умолчанию квантификатор * в регулярном выражении - жадный - захватывает всё до последнего символа " Вывод. Жадным быть плохо. Решение 2 (правильное и ленивое). В качестве паттерна поиска используется регулярное выражение ".*?" Результат: "helloworld.htm" "Привет, Мир" При добавлении ? после квантификатора * используется ленивый захват - он заканчивается как только как только найден первый закрывающий символ ". Вывод. Быть ленивым - полезно и правильно. На скриншоте - полная программа

Спецсимволы при выводе строк В Object Pascal при выводе строк можно использовать так называемые управляющие Ascii символы. К
Спецсимволы при выводе строк В Object Pascal при выводе строк можно использовать так называемые управляющие Ascii символы. К их числу относится символ #10 перевода строки и символ #9, осуществляющий переход к следующей позиции табуляции. На скриншоте показан пример вывода строки с двумя переходами на новую строку и тремя символами табуляции. Хорошо видно, что в консольном режиме позиции табуляции отстоят на 8 позиций. #PascalABC

Демо ЕГЭ по информатике 2023 задание 5 Спокойное решение задания 5 демо ЕГЭ 2023. Использование функций Bin и Dec модуля Scho
Демо ЕГЭ по информатике 2023 задание 5 Спокойное решение задания 5 демо ЕГЭ 2023. Использование функций Bin и Dec модуля School. Ощущение, что если решать задачу кодом, то она ориентирована на Питон. #школьникам

Функция ReadLexem В PascalABC.NET имеется функция считывания следующей лексемы. Лексемы отделены пробелами или переходами на
Функция ReadLexem В PascalABC.NET имеется функция считывания следующей лексемы. Лексемы отделены пробелами или переходами на новую строку. Этот код нельзя просто повторить на языке Python или C#, поскольку в них отсутствуют стандартные средства разбиения входного потока на лексемы

Предлагаем пять бесплатных курсов по PascalАВС.NЕТ на платформе Stepik. 1. PascalABC.NET: современный код Желающим с нуля научиться писать современный код, а также желающим углубить свои знания современных языков программирования. Рекомендуется школьникам, студентам, учителям, преподавателям. Может сильно удивить лиц, до сих пор считающих Turbo Pascal/Free Pascal венцом современных технологий программирования. Курс достаточно СЛОЖНЫЙ и невысокие заявленные требования к знаниям вовсе не означают, что любой семиклассник сможет САМОСТОЯТЕЛЬНО его пройти. Но попытайтесь узнать, чего на самом деле стоят ваши знания! 2. PascalABC.NET: от предков к потомку Прохождение курса позволит вам повысить свою квалификацию в вопросах современного программирования, откроет путь к пониманию. концепций .NET-языков. Вы сможете, наконец, отвязаться от непроизводительного программирования в стиле прошлого века, предполагающего написание блок-схем и осмысливания задачи в терминах блоков "следование, ветвление, цикл". Вы получите возможность использовать средства декларативной парадигмы программирования взамен или в сочетании с императивной. Вы сможете указывать в программе ЧТО нужно сделать вместо утомительных и однообразных описаний того, КАК это надо делать. Вы сможете писать (и главное, учить писать) программы, которые будут понятнее, чем в ныне модном языке Python и в то же время, работающие в десятки и сотни раз быстрее. И при этом, ваши программы будут такими же компактными, как в Python. 3. PascalABC.NET: 220 задач к ЕГЭ с сайта К.Ю.Полякова Предлагаются варианты решения заданий для подготовки к ЕГЭ с сайта К.Полякова. Достаточно большое количество вариантов и везде, где возможно, дается два решения - длинное в парадигме структурного программирования и короткое с использованием элементов функционального программирования. Все решения снабжены необходимыми пояснениями. 4. PascalABC.NET: если в школе надоел Python Изучение языка программирования PascalАВС.NЕТ для тех, кто уже умеет программировать на языке Python. Где возможно, подача материала ведется путем сравнения этих двух языков. Подробно рассматриваются преимущества и недостатки каждого из языков в контекстах различных задач. 5. PascalАВС.NЕТ: спасибо, КуМир, но нужно сдавать ЕГЭ Если вы уже знаете КуМир и собираетесь освоить "настоящий" язык программирования из тех, что будут присутствовать на станциях для сдачи ЕГЭ по информатике, этот курс для вас. Вы освоите методику перевода программ с языка КуМир на современный универсальный язык программирования PascalАВС.NЕТ, имеющий удобную интегрированную среду разработки и отладки. Встроенный в среду очень быстрый компилятор создает исполняемые exe-файлы, обладающие скоростью выполнения, схожей со скоростью программ, написанных на C#. Ошибки компиляции фиксируются очень четко, а сообщения компилятора всегда понятны и выдаются на русском языке. Вы сможете сразу писать код в PascalАВС.NЕТ и постепенно надобность в среде программирования КуМир отпадет. А приобретенные навыки алгоритмизации останутся и будут развиваться дальше. Вы, если захотите, сможете более глубоко изучить PascalАВС.NЕТ с тем, чтобы быстро писать и отлаживать короткий, но эффективный и понятный код.

Соседние элементы в массиве При решении задач на массивы начинающим особенно сложно освоиться с задачами, в которых участвуют
Соседние элементы в массиве При решении задач на массивы начинающим особенно сложно освоиться с задачами, в которых участвуют пары соседних элементов. Здесь часто можно запутаться в индексах и выйти за границы. На скриншоте показаны два способа решения задачи с соседними элементами: первый использует сравнение текущего a[i] с предыдущим a[i-1], а второй - с последующим a[i+1]. Самое важное - правильно указать границы изменения индексов.

Свойства - умные поля Свойства классов можно назвать умными полями. Они ведут себя как поля, но могут выполнять дополнительны
Свойства - умные поля Свойства классов можно назвать умными полями. Они ведут себя как поля, но могут выполнять дополнительные действия. Со свойствами обычно связано поле. В отличие от свойств, поля делаются приватными. Например, можно перед присваиванием свойству значения проверять его на допустимость. В примере на скриншоте демонстрируется попытка присвоить свойству Age (Возраст) отрицательное значение.

Оператор try - finally Оператор try - finally предназначен для выполнения действий, которые вызываются независимо от того, пр
Оператор try - finally Оператор try - finally предназначен для выполнения действий, которые вызываются независимо от того, произошло исключение или нет. Он не обрабатывает исключение - для его обработки требуется оператор try-except Оператор try - finally часто используется для закрытия файла в коде где может произойти исключение.

Четыре способа поиска элемента в массиве На скриншоте представлены четыре способа решения задачи поиска элемента в массиве. Д
Четыре способа поиска элемента в массиве На скриншоте представлены четыре способа решения задачи поиска элемента в массиве. Два из них - алгоритмом с циклом, использующим break. Третий - с использованием метода Contains. И наконец четвёртый - с использованием операции in.

Определение идентификатора процессора Как подучить уникальную характеристику данного компьютера? Один из способов - получить
Определение идентификатора процессора Как подучить уникальную характеристику данного компьютера? Один из способов - получить идентификатор процессора. Вот код, который это делает:
{$reference System.Management.dll}
uses System.Management;

function ProcessorId: string;
begin
  var mbs := new ManagementObjectSearcher('Select ProcessorId From Win32_processor');
  var mbsList := mbs.Get();
  Result := '';
  foreach var mo: ManagementObject in mbsList do
  begin
    Result := mo['ProcessorId'].ToString();
    break;
  end;
end;

begin
  Print(ProcessorId);
end.
И то же на скриншоте.

Автоматические отступы и автодополнения в процессе набора При наборе кода управляющих конструкций после нажатия Enter отступ в редакторе делается автоматически. Обратите внимание, что в примере на видео отступ делается автоматически после строки с loop и строки с if. А при наборе begin после loop он автодополняется парным end и весь блок снова сдвигается вправо, выравниваясь по слову loop. В данном примере все отступы делаются правильно автоматически, что приучает начинающих к хорошим структурированным текстам

Директивы нулевой длины или ищем котов В регулярном выражении директива нулевой длины \b означает "на границе слова". На скри
Директивы нулевой длины или ищем котов В регулярном выражении директива нулевой длины \b означает "на границе слова". На скриншоте - пример строки с котами. Паттерн, в котором \b присутствует в начале, ищет кота в начале слова, \b в конце - в конце слова. Если же \b присутствует в начале и в конце слова, то ищется просто слово "кот".

Простая задача для начинающих на массивы Очень простая задача для школьников, изучающих массивы. Дан случайный массив оценок.
Простая задача для начинающих на массивы Очень простая задача для школьников, изучающих массивы. Дан случайный массив оценок. Посчитать количество двоек, троек, четверок и пятерок. На скрине - решение. К решению подходили постепенно: вначале заводили 4 счетчика, потом выяснилось, что можно завести массив счетчиков. Конечно, неудобство в том, что массив счетчиков индексируется с нуля, и первые два счётчика - фиктивные

s.Words или s.Matches Пример на скриншоте показывает преимущество метода строк s.Matches, использующего регулярные выражения,
s.Words или s.Matches Пример на скриншоте показывает преимущество метода строк s.Matches, использующего регулярные выражения, перед s.ToWords. s.Matches может не только разбивать на слова, но и указывать позицию каждого вхождения паттерна в строку. #сравнение

Разбиение строки на слова и слияние в строку на C# и на PascalABC.NET В одном слайде видно отличие - методы ToWords и JoinToS
Разбиение строки на слова и слияние в строку на C# и на PascalABC.NET В одном слайде видно отличие - методы ToWords и JoinToString введены чтобы драматически уменьшить объём кода в данной задаче. Название метода JoinToString пришло из стандартной библиотеки Kotlin. #PascalABC #сравнение

Преобразование строка &lt;-&gt; вещественное на C# и на PascalABC.NET в одном слайде В C# по умолчанию в представлении вещест
Преобразование строка <-> вещественное на C# и на PascalABC.NET в одном слайде В C# по умолчанию в представлении вещественного учитываются региональные стандарты. И это играет злую шутку при преобразовании в строку - в русской Windows разделителем между целым и вещественным выступает запятая. Чтобы не произошло исключения при преобразовании, в C# надо отдельным параметром передавать инвариантную культуру. В PascalABC.NET это происходит автоматически. Целая часть от дробной всегда отделяется точкой.

Новые короткие функции для создания специализированных коллекций В стандартной библиотеке PascalABC.NET появились новые корот
Новые короткие функции для создания специализированных коллекций В стандартной библиотеке PascalABC.NET появились новые короткие функции для создания специализированных коллекций:
DictStr, DictInt, DictStrInt, LstLin, LstStr, HSetInt, HSetStr, SSetInt, SSetStr
На скриншоте - примеры использования В частности, это позволяет писать более короткий код когда надо создать пустую коллекцию указанного типа:
var d := DictInt;
вместо
var d := new Dictionary<string,integer>;

Оператор try - except обработки исключений В процессе выполнения программы могут возникать исключения. Если исключение не обр
Оператор try - except обработки исключений В процессе выполнения программы могут возникать исключения. Если исключение не обработать, то программа завершится с ошибкой. Например, такая программа
begin
  var n := ReadInteger;
end.
завершится исключением System.FormatException: Входная строка имела неверный формат. Для обработки исключения во время выполнения программы используется оператор try - except. На скриншоте - пример программы ввода целого. Пока не введено целое, возникает исключение в блоке try и исключение передается в блок except, где оно обрабатывается. В данном случае специальный флаг InputError получает значение True. Ввод осуществляется до тех пор пока InputError не станет равным False.

Отличия PascalABC.NET от стандартного Паскаля Всего один слайд. Все эти нововведения сделаны в разное время. Но направлены он
Отличия PascalABC.NET от стандартного Паскаля Всего один слайд. Все эти нововведения сделаны в разное время. Но направлены они на написание удобного кода, легко воспринимаемого в начале обучения. Это: - описание переменных внутри блока - автовывод типа - функции-ввода, позволяющие совмещать ввод с описанием - процедура Print, разделяющая данные пробелами - встроенные длинные целые - описание переменной цикла в заголовке цикла for - операция in - диапазоны a..b - операции += и *= Всё вместе - это стандарт современного кода на PascalABC.NET от разработчиков. #начинающим #методика