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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
1 859
Obunachilar
+124 soatlar
-127 kun
-2330 kun
Postlar arxiv
Обучение школьников классам Классы - это способ объединить несколько переменных в единое целое. Классы - это просто, их может
Обучение школьников классам Классы - это способ объединить несколько переменных в единое целое. Классы - это просто, их может понять любой школьник. На скрине - пример класса Ученик и создание двух учеников в программе. Эта тематика всегда была неотъемлемой частью обучения программированию - начиная с ранних 70 х в книгах мы видим множество примеров.. Она - простая, позволяет моделировать в коде объекты реального мира и манипулировать ими в алгоритмах. Но именно этому не учат в школе, это не используют на олимпиадах по программированию и это не нужно на ЕГЭ. Огромная часть, связанная с абстракцией данных, необходимая в реальных задачах, проходит мимо школьного образования.

Новая перегрузка функции TrueTable в модуле School Начиная с версии 3.9.0.3379 от 04.11.2023 в библиотеку School добавлена ещ
Новая перегрузка функции TrueTable в модуле School Начиная с версии 3.9.0.3379 от 04.11.2023 в библиотеку School добавлена еще одна перегрузка для функции TrueTable, позволяющая строить таблицы истинности для n переменных. При ее вызове первым параметром указывается количество переменных, а вторым задается логическая функция, для которой строится таблица истинности. Если n < 6, можно по-прежнему пользоваться старыми функциями.

Скобки в типе лямбд Стало возможно писать скобки в типе лямбд для одного параметра. Это необходимо для конструкции (array of
Скобки в типе лямбд Стало возможно писать скобки в типе лямбд для одного параметра. Это необходимо для конструкции (array of integer) -> integer. Пример иллюстрирует применение к каждой строке матрицы функции, преобразующей строку в скаляр #новое

PascalABC.NET- система невидимой автоматической проверки заданий LightPT В PascalABC.NET встроена система автоматической проверки LightPT, которая позволяет легко составлять автоматически проверяемые задания. Данная система имеет ряд уникальных свойств, о которых рассказывается в настоящей статье. https://teletype.in/@pascalabcnet/LightPT_First

Цепочки методов, заканчивающиеся вычислением одного значения На скриншоте - программа для начинающих, иллюстрирующая основные
Цепочки методов, заканчивающиеся вычислением одного значения На скриншоте - программа для начинающих, иллюстрирующая основные методы с массивами, объединенные в цепочки #начинающим

Подключаем Math.NET за две минуты В PascalABC.NET можно создать проект и подключить к нему пакет NuGet. Для этого щелкаем пра
Подключаем Math.NET за две минуты В PascalABC.NET можно создать проект и подключить к нему пакет NuGet. Для этого щелкаем правой мышью на проекте и выбираем Добавить сборку/Пакет NuGet. На скриншоте - программа с использованием библиотеки матричной алгебры Math.NET с сайта этого проекта

Неизбежный вред некоторых конструкций Когда язык достаточно богатый, многие конструкции схожи, и начинающие допускают ряд характерных устойчивых ошибок. Это неизбежно. Плохо то, что объяснять, почему это не работает или работает не так, - сложно. Проще сказать - не пиши так, а пиши так. Только за один день - перлы учеников. 1. var a := ReadInteger путают с var a: integer; Говорят, что ReadInteger - это тип. 2. Массив из одного элемента - это [elem|. После этого все поголовно пишут |a|, делая массив элементом массива. 3. Прибавление элемента к массиву возможно, т.к. массив - это последовательность. Тем не менее пишут a := a[0] + a { a[^1] потому что так понятнее - и это не компилируется. Но самые умные ломом доворачивают: a := Arr(a[0] + a { a[^1]) И работает, но - это ужасно

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

Обзор нововведений в C# 12 https://habr.com/ru/companies/pvs-studio/articles/768802/ На хабре опубликована статья с нововведениями в предстоящем C# 12. Полноценные синонимы типов в Паскале были всегда, а вот в C# только появились. Сокращенный синтаксис конструкторов в классах интересен. Инициализация массивов и списков выражениями в [] - заманчивая перспектива. В PascalABC.NET тоже можно отказаться от синтаксиса || в пользу [ ], пересмотрев поддержку встроенных множеств. Поскольку PascalABC.NET всегда равняется на передовые языки, в комментариях ждем идеи для нововведений

PascalABC.NET: операции с массивами В PascalABC.NET определены операции с массивами: сложение массивов и умножение массива на
PascalABC.NET: операции с массивами В PascalABC.NET определены операции с массивами: сложение массивов и умножение массива на целое n (сложение n копий). Это - эффективный способ создания и заполнения массивов. Другой эффективный способ заполнения - с помощью функции Arr и диапазона также показан на слайде. К массиву также можно прибавить элемент, но получится последовательность. Не делайте так. Необходимо в этом случае к массиву добавлять одноэлементный массив

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

PascalABC.NET: принцип локальности при объявлении переменных Принцип локальности гласит: переменную нужно описывать как можно
PascalABC.NET: принцип локальности при объявлении переменных Принцип локальности гласит: переменную нужно описывать как можно ближе к месту своего первого использования - лучше совмещать описание и инициализацию. Это позволяет писать понятный код, не листая его вверх и вниз в поисках описаний. Такой код затем легко оформляется в виде функций. В старом Паскале, который как известно умер, переменные описывались в куче до блока основной программы (код 1). Это резко портило стиль написания кода начинающих - никогда потом в других языках они не будут с этим сталкиваться. Код 4 иллюстрирует создание функции по коду, в котором полностью соблюден принцип локальности.

Метод последовательностей ToDictionary в PascalABC.NET Метод последовательностей ToDictionary позволяет делать из последовате
Метод последовательностей ToDictionary в PascalABC.NET Метод последовательностей ToDictionary позволяет делать из последовательности словарь. На скриншоте приведены три ситуации использования: в первой последовательность выступает в роли ключей словаря, во второй - в роли значений и в третьей - разбивается на ключи и значения

Методика обучения массивам на PascalABC.NET В Компьютерной школе мехмата (сайт sunschool.mmcs.sfedu.ru) принята следующая последовательность подтем по теме массивы 1. Описание, выделение памяти, ввод-вывод, простейшее заполнение (функция Arr) 2. Циклы 3. Ошибки с массивами 4. Алгоритмы нахождения суммы, подсчета количества, поиск по условию с break, максимумы-минимумы и их индексы, 5. Простейшие методы a.Sum, a.Average, a.Min, a.Max, a.IndexMin/IndexMax 6. Индексы элементов по условию - a.IndexOf и a.LastIndexOf 7. Понятие лямбда-функции. Заполнение с помощью ArrGen, в т.ч. формулой для i-того элемента и по предыдущему (арифм и геом прогрессии). Суммы в заполненных массивах 8. Преобразование элементов - алгоритмом и методом Transform с лямбдой. 9. Реверс массива и его части 10. Количество и поиск по условию, заданному лямбдой: a.Count, a.CountOf, a.FindIndex 11. Фильтрация a.Where и действия над отфильтрованными элементами (сумма, мин-макс). Цепочки методов: a.Where(x -> x.IsOdd).Sum.Print. Сравнение со старым стилем 12. Операции + и * над массивами 13. Срезы, индексация с конца. 14. Списки List как расширяемые массивы, добавление, вставка и удаление элементов 15. Сортировка Sort(a) и a.Order

Методика обучения массивам на PascalABC.NET В Компьютерной школе мехмата (сайт sunschool.mmcs.sfedu.ru) принята следующая последовательность подтем по теме массивы 1. Описание, выделение памяти, ввод-вывод 2. Циклы 3. Ошибки с массивами 4. Алгоритмы нахождения суммы, подсчета количества, поиск по условию с break, максимумы-минимумы и их индексы, 5 6. Индексы элементов по условию - a.IndexOf и a.LastIndexOf 7.

Методика обучения массивам на PascalABC.NET В Компьютерной школе мехмата (сайт sunschool.mmcs.sfedu.ru) принята следующая последовательность подтем по теме массивы 1. Описание, выделение памяти, ввод-вывод 2. Циклы 3. Алгоритмы нахождения суммы, подсчета количества, поиск по условию с break, максимумы-минимумы и их индексы. 4.

PascalABC.NET - новый стандартный метод последовательностей Flatten В стандартном модуле PascalABC.NET появился метод Flatten
PascalABC.NET - новый стандартный метод последовательностей Flatten В стандартном модуле PascalABC.NET появился метод Flatten, вытягивающий последовательность последовательностей в плоскую последовательность #новое

PascalABC.NET: расстановка ферзей на шахматной доске мышью Простая программа, позволяющая демонстрировать размещение восьми ф
PascalABC.NET: расстановка ферзей на шахматной доске мышью Простая программа, позволяющая демонстрировать размещение восьми ферзей на шахматной доске. Ферзей можно передвигать мышью. #графика

PascalABC.NET: параметры по умолчанию и именованные аргументы Параметры, имеющие значения по умолчанию, должны располагаться
PascalABC.NET: параметры по умолчанию и именованные аргументы Параметры, имеющие значения по умолчанию, должны располагаться в конце списка параметров. Подпрограмму можно вызывать, опуская параметры по умолчанию. Кроме того, при вызове для параметров по умолчанию можно использовать именованные аргументы и писать их в любом порядке

Модульное тестирование в PascalABC.NET Чтобы протестировать разрабатываемые функции, в PascalABC.NET используется широко изве
Модульное тестирование в PascalABC.NET Чтобы протестировать разрабатываемые функции, в PascalABC.NET используется широко известная в мире .NET библиотека NUnit. Напишите тестируемые функции в модуле, подключите модуль к тестирующей программе, напишите тестирующие процедуры, пометьте их атрибутами [Test] или [TestCase] и запустите автоматические тесты, нажав Ctrl-Shift-T.