PascalABC.NET официальный канал
رفتن به کانال در Telegram
Официальный канал языка и системы программирования PascalABC.NET
نمایش بیشتر1 857
مشترکین
+124 ساعت
-127 روز
-2330 روز
آرشیو پست ها
Черепашья графика на занимательных примерах
Валерий Рубанцев опубликовал новую замечательную книгу по Черепашьей графике в PascalABC.NET: https://disk.yandex.ru/i/2bIr-nEYGWLoLw
В ней - огромное количество примеров.
На скриншоте - один из них.
ЕГЭ по информатике - реальное задание 27
В этом году на ЕГЭ по информатике - новее задание 27.
Кто решит?
Вот примерная формулировка:
Астрономическая станция ведёт наблюдение за излучением солнца. Показания записываются каждую минуту в течении N минут. Определяется тройка измерений, между которыми прошло не менее K минут. Найдите максимальную сумму показаний среди таких троек.
Входные данные
Даны два входных файла (A и B), каждый из которых в первой строке содержит число N - количество измерений, во второй строке K - минимальное количество минут между искомыми измерениями. В каждой из следующих N строк находится число: интенсивность излучения солнца.
В ответе укажите два числа: сначала значение искомой величины для файла A, затем - для файла B.
Типовой пример организации данных во входном файле
7 2 18 48 49 102 95 15 68При таких исходных данных ответом будет 48 + 102 + 68 = 218
Можно ли типизировать Питон?
Глубокая статья-перевод на Хабре о том, можно ли хоть как-то типизировать Питон и в результате получить ускорение?
Анализируются все известные решения и - делается вывод...
Спойлер - нельзя. Полностью нельзя будет никогда. Слишком много там наворотили динамичного. Так что Питон всегда так и останется медленным.
https://habr.com/ru/companies/piter/articles/743538/
Пишем интерпретатор на PascalABC.NET. Синтаксический анализатор. Часть 2. Абстрактное синтаксическое дерево (AST)
В данной статье мы описываем все узлы синтаксического дерева, используемые в нашем языке.
https://teletype.in/@pascalabcnet/Parse3
Метод f.Lines текстового файла
Один из способов выполнить цикл по строкам текстового файла - воспользоваться методом f.Lines, который возвращает последовательность строк
19 июня - ЕГЭ по информатике
Сегодня 19 июня десятки тысяч школьников по всей России сдают ЕГЭ по информатике. Цель - получить как можно более высокий балл и поступить в ВУЗ своей мечты.
Для решения задач можно использовать самые разные языки, но многие школьники выбирают в качестве языка программирования именно PascalABC.NET - российскую систему программирования, разработанную для обучения современному программированию и вошедшую в репозитории российских операционных систем.
Именно грамотное использование PascalABC.NET позволяет написать компактный и понятный код, дает школьнику на ЕГЭ хорошие конкурентные преимущества, обеспечивает получение наивысших баллов и порой ставит в тупик присутствующих на экзамене "специалистов".
Дерзайте! Разработчики PascalABC.NET с вами в этот день!
Чего в массиве больше - четверок или пятерок
Здесь три возможности - четверок больше, пятерок больше или одинаково. Используем CompareTo, возвращающую целое
И снова перед ЕГЭ
var count, cnt: array['A'..'Z'] of integer;
begin
Assign(input, '24.txt');
while not eof do
begin
var s := ReadlnString;
for var i := 2 to s.Length do
if s[i - 1] = 'A' then
cnt[s[i]] += 1;
var max := cnt.Max;
for var c := 'A' to 'Z' do
if cnt[c] = m then
count[c] += 1;
end;
Print(count.Max);
end.Перед ЕГЭ
function F(a, limit, sm, pr: integer): integer;
begin
if (a = limit) and (sm <= 1) and (pr <=1) then
Result := 1
else if (a > limit) or(sm > 1) or (pr > 1) then
Result := 0
else
Result := F(a+1, limit, sm+1, 0) + F(a+2, limit, sm+1, 0) +
F(a*2, limit, 0, pr+1) + F(a*3, limit, 0, pr+1)
end;
begin
Print(F(1, 22, 0, 0));
end.Игра Быки и коровы
Перед вами - реализация игры Быки и Коровы. Один игрок загадывает четырехзначное число, в котором все цифры разные. Второй - отгадывает его, предлагая вариант ответа. Первый должен ответить, сколько в сказанном числе верных цифр не на своих местах (коров) и сколько верных на своих местах (быков).
Вот результат одного запуска программы:
Загадано: 8170 1. Ход=1846 Коров: 2 Быков: 0 ОсталосьВариантов: 1155 2014 2018 2061 2064 2068 2081 2084 2104 2108 2134 2138 2154 2158 2160 2163 2165 2167 2169 2174 2178 2. Ход=6780 Коров: 2 Быков: 1 ОсталосьВариантов: 53 2687 2768 3687 3768 4087 4670 4708 5687 5768 6017 6028 6038 6058 6071 6074 6098 6107 6208 6278 6308 3. Ход=8765 Коров: 1 Быков: 1 ОсталосьВариантов: 8 4708 7160 7460 8170 8470 8620 8630 8690 4. Ход=8620 Коров: 0 Быков: 2 ОсталосьВариантов: 2 8170 8470 5. Ход=8170 Коров: 0 Быков: 4 ОсталосьВариантов: 1 8170 Решение = 8170 Ходов: 5
Дубль запуска основной программы
На скриншоте продемонстрирована важная техника - как запустить код основной программы повторно в этой же программе.
Для этого используется рефлексия. Соответствующие действия выполняются в подключаемом модуле RunUnit. Здесь в секции инициализации еще до запуска основной программы вызывается метод $Main основной программы и потом прорабатывает сама программа.
Данный прием активно используется при тестировании. В частности, подобную технику активно использует задачник PT4 и легковесный задачник LightPT.
Пишем интерпретатор на PascalABC.NET. Синтаксический анализатор. Часть 2. Реализуем конкретный язык Simple
В данной статье мы наконец реализуем парсер конкретного языка с циклами, условным оператором и оператором вывода.
https://teletype.in/@pascalabcnet/Parse2
Тип Object
Переменной типа Object можно присвоить объект любого типа. На скриншоте приведен пример, в котором переменной типа object присваивается целое, вещественное и массив.
Интерфейсы
Интерфейс - это набор требований, которым должен удовлетворять класс. Этот набор требований задается в интерфейсе в виде заголовков методов.
Класс, реализующий интерфейс, должен реализовывать все его методы в секции public.
Интерфейсы позволяют объединять разнородные объекты в полиморфные списки.
#студентам
Пишем интерпретатор на PascalABC.NET. Синтаксический анализатор. Часть 1. Базовый класс ParserBase
https://teletype.in/@pascalabcnet/Parse1
Как вернуть информацию о дисках
Программа ниже возвращает информацию о логических дисках, установленных в системе
Ошибка в индексации
Исправлена ошибка, при которой компиляция программы
begin var x := Arr(1..10); Print(x[1:^1][5]); end.приводила к падению среды программирования. #исправлениеошибок
Вот - первые снимки с выпускного собрания Компьютерной школы мехмата ЮФУ. Вы видите около 200 выпускников 1года программирования и их родителей
Компьютерная школа мехмата ЮФУ - самая большая очная школа Ростовской области. Каждый год ее заканчивают около 700 школьников. Первый и основной язык программирования у нас - PascalABC.NET, который разрабатывался как язык обучения современному программированию.
Сегодня в нашей компьютерной школе - выпускное собрание. В течение всего учебного года ученики решали огромное количество заданий по программированию и набирали рейтинг в нашей уникальной системе автоматической проверки. Итог - более 20 учеников превысили порог 1000 баллов рейтинга.
