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

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

Открыть в Telegram

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

Больше
1 857
Подписчики
Нет данных24 часа
-147 дней
-2330 дней
Архив постов
Здоровье кода Код должен быть здоровым - все с этим согласятся. Только здоровье кода каждый понимает по-своему. В PascalABC.N
Здоровье кода Код должен быть здоровым - все с этим согласятся. Только здоровье кода каждый понимает по-своему. В PascalABC.NET код считается больным, если в нем используются устаревшие в PascalABC.NET конструкции стандартного Паскаля. К их числу относятся: * заголовок program * переменные описанные вне основного блока begin-end * процедура Read вместо функций ReadInteger и проч. * устаревшие статические массивы * устаревшие размерные строки * использование Write вместо Print с разделителями-пробелами * и - самое ужасное - описание переменной цикла for вне заголовка цикла. За все такие ужасы программа штрафуется и её здоровье тает на глазах. При попытке компиляции такой программы - в правом нижнем углу отображается маленький темный прямоугольник с процентами оставшегося здоровья кода. Тем темнее, чем меньше здоровье

Рисуем фрактальную снежинку Хочется больше снега. Нарисуем фрактальную снежинку - авось поможет. Воспользуемся модулем Turtle
Рисуем фрактальную снежинку Хочется больше снега. Нарисуем фрактальную снежинку - авось поможет. Воспользуемся модулем Turtle.
uses Turtle,GraphWPF;

const scale = 2.85;

procedure SnowFlake(a: real);
begin
  if a < 1 then exit;
  SnowFlake(a/scale);
  loop 6 do
  begin
    Down;
    Forw(a);
    SnowFlake(a/scale);
    Up;
    Turn(180);
    Forw(a);
    Turn(180);
    Turn(60);
  end;
end;

begin
  Window.Title := 'Снежинка';
  Pen.Color := Colors.Blue;
  SnowFlake(200);
end.

Хешировнаие и хеш-таблицы https://teletype.in/@pascalabcnet/Hash

С наступившим 2023 годом! Всех подписчиков нашего канала - поздравляем с наступившим 2023 годом. 2023 год будет непростым - э
С наступившим 2023 годом! Всех подписчиков нашего канала - поздравляем с наступившим 2023 годом. 2023 год будет непростым - это демонстрирует приведенная на скриншоте программа. Зато в его сомножителях - аж два простых числа 17!

Всех с наступающим 2023 годом!
Всех с наступающим 2023 годом!

С наступающим Новым годом! Занятия со школьниками - всегда небольшой экспромт. Последняя тема перед Новым годом - циклы while и repeat, создание бесконечного цикла. Вместо скучных сумм и арифметических прогрессий - рисуем новогоднюю ёлку! Ветки рисуем секторами Pie, украшения - дугами Arc. А лампочки в гирлянде мерцают в бесконечном цикле repeat .. until False.
begin
  Window.Title := 'С Новым годом!';
  Pie(400, 300, 250, -45, -135, Colors.Green);
  Pie(400, 200, 200, -45, -135, Colors.Green);
  Pie(400, 100, 150, -45, -135, Colors.Green);
  
  repeat
    Circle(300, 450, 25, RandomColor);
    Circle(450, 350, 20, RandomColor);
    Circle(360, 290, 25, RandomColor);
    Circle(480, 480, 25, RandomColor);
    Circle(350, 200, 20, RandomColor);
    Rectangle(350,400,50,30, Colors.LightSeaGreen);
    Arc(400,240,250,-55,-125,Colors.Yellow);
    Sleep(200);
  until False;
end.
Вот и закрепили тему! Спасибо Пучкину Максиму Валентиновичу за идею! Всех - с наступающим Новым годом!

Ввод целых и языки программирования Казалось бы - простая вещь - прочитать 2 целых значения из потока ввода и ничего более. Однако сделать это просто можно не во всех языках программирования. PascalABC.NET Здесь всё просто. Можно в любом Паскале:
var a,b: integer;
Read(a,b);
И в PascalABC.NET:
var (a,b) := ReadInteger2;
Python Нельзя. То есть, предлагается конечно:
a,b = map(int,input().split())
Но во-первых, объяснять начинающим, что такое split(), int и особенно map на первом занятии - убить влечение к программированию. Во-вторых, ввод трех целых или одного целого приводит к ошибке. В третьих, код неэквивалентный - считывается строка целиком, а задача требует считать ровно два целых и более ничего. C# Никак. То есть, так же как и в Python:
var ss = Console.ReadLine().Split();
var a = int.Parse(ss[0]);
var b = int.Parse(ss[1]);
со всемы вытекающими проблемами - ввод одного целого в строке роняет программу и это не решает поставленную задачу C++
int i,j;
cin >> i >> j;
Всё отлично. Java
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
Всё неплохо.

Стек и очередь. Стрим Александра Богданова https://www.youtube.com/watch?v=BBdMoZ_mpLc

Условная операция Условная операция if then else аналогична условному оператору, но может использоваться в выражении. Это поз
Условная операция Условная операция if then else аналогична условному оператору, но может использоваться в выражении. Это позволяет сократить запись для простых вычислений до одной строки. В программе вы видите классический алгоритм поиска минимума двух чисел a и b, записанный с использованием условного оператора. Он требует предварительного описания переменной min с указанием её типа. Для сравнения тот же алгоритм, записанный с помощью условной операции, требует всего одну строку кода и позволяет в этой строке описать переменную и не указывать её тип - он автоматически выводится.

Управление объектом с помощью клавиатуры Данный пример иллюстрирует заготовку для 2D-игр с видом сверху и игровым объектом, у
Управление объектом с помощью клавиатуры Данный пример иллюстрирует заготовку для 2D-игр с видом сверху и игровым объектом, управляемым с помощью клавиатуры. Используется наиболее плавный вид анимации - анимация на основе кадра. Графический модуль WPFObjects реализует векторные двумерные объекты с большим количеством свойств и методов. Основной используемый метод здесь - c.MoveTime(dt) - перемещает 2D-объект в направлении Direction c единичной скоростью за время dt.`

Метод Indices для матриц С помощью метода Indices для матриц можно найти индексы всех ее элементов, удовлетворяющих некотором
Метод Indices для матриц С помощью метода Indices для матриц можно найти индексы всех ее элементов, удовлетворяющих некоторому условию, и вернуть их в виде последовательности. После этого в цикле можно изменить элементы по указанным индексам.

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

Параметрическое уравнение отрезка в Graph3D В Graph3D удобно визуализировать кривые, заданные параметрически. Одной из просте
Параметрическое уравнение отрезка в Graph3D В Graph3D удобно визуализировать кривые, заданные параметрически. Одной из простейших таких кривых является отрезок между точками p1 и p2 - его параметрическое уравнение имеет вид:
t * p1 + (1-t) * p2
где t пробегает значения от 0 до 1. Визуализируем этот отрезок функцией Segment3D и заставим бесконечно осциллировать между его концами сферу. Для этого к анимации сферы добавим модификаторы AutoReverse и Forever. Результирующая программа изображена на скриншоте.

✅ На нашем канале - 500 подписчиков!

Решето Эратосфкна Решето Эратосфкна - классический алгоритм, позволяющий находить все простые числа, меньшие некоторого числа
Решето Эратосфкна Решето Эратосфкна - классический алгоритм, позволяющий находить все простые числа, меньшие некоторого числа. Для реализации используется множество HashSet, которое вначале заполняется всеми кандидатами 2..n. После чего вначале вычеркиваются все кандидаты, кратные 2 (кроме 2), затем кратные 3 (кроме 3), и т.д. Всё что осталось после вычеркивания чисел вплоть до Sqrt(n), - простые

Метод Pairwise Метод Pairwise для последовательности возвращает последовательность пар рядом стоящих элементов. Количество па
Метод Pairwise Метод Pairwise для последовательности возвращает последовательность пар рядом стоящих элементов. Количество пар будет естественно на 1 меньше количества элементов. Зачем такой метод может понадобиться? Например, чтобы сравнить соседние и выделить среди них один по какому-нибудь признаку. На слайде решается задача о том, сколько в массиве элементов, меньших своего правого соседа. Вначале вызывается Pairwise, затем пары фильтруются по условию "левый меньше правого" и затем считается количество таких пар. Что интересно - с помощью Println можно выводить в цепочку все промежуточные последовательности и конечный результат

Сумма вещественных в строке Как выделить в строке только вещественные и вычислить их сумму? Эффективнее всего воспользоваться
Сумма вещественных в строке Как выделить в строке только вещественные и вычислить их сумму? Эффективнее всего воспользоваться статическим методом TryParse типа real. На скриншоте - пример использования. спецификация типа переменной w необязательна, но улучшает восприятие алгоритма