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

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

前往频道在 Telegram

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

显示更多
1 858
订阅者
-224 小时
-137 天
-2430 天
帖子存档
Файлы в объектно-ориентированном стиле Файловая переменная - объект класса Text, который имеет множество методов: чтения, зап
Файлы в объектно-ориентированном стиле Файловая переменная - объект класса Text, который имеет множество методов: чтения, записи, закрытия файла и другие. Для открытия текстового файла используется функция OpenRead, которая открываает файл по умолчанию в кодировке Windows. Но видимо давно надо переходить на UTF-8.

Экзамен по Основам программирования Экзамен по Основам программирования - нешуточное дело. Сегодня его пишут студенты группы
Экзамен по Основам программирования Экзамен по Основам программирования - нешуточное дело. Сегодня его пишут студенты группы 1.3 направления Фундаментальная информатика мехмата ЮФУ. Основной язык в первом семестре - PascalABC.NET. Последовательности, лямбды, кортежи, срезы, автоклассы, цепочки методов и всё что мы любим ) Программа курса прилагается.

Program1Sem2023.pdf2.18 KB

Экзамен по Основам программирования Экзамен по Основам программирования - нешуточное дело. Сегодня его пишут студенты группы 1.3 направления Фундаментальная информатика мехмата ЮФУ. Основной язык в первом семестре - PascalABC.NET. Последовательности, лямбды, кортежи, срезы, автоклассы, цепочки методов и всё что мы любим ) Программа курса прилагается.

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

Удаление символов в строке Символы в строке можно удалить несколькими разными способами. Можно воспользоваться срезами, остав
Удаление символов в строке Символы в строке можно удалить несколькими разными способами. Можно воспользоваться срезами, оставив только нужные символы. Можно воспользоваться классической процедурой Delete, пришедшей из Delphi. Она хороша тем, что не вызывает исключение если мы укажем аргументы, выходящие за пределы строки. Но она индексирует строку только с 1. Наконец, можно воспользоваться методом s.Remove, который индексирует строку с 0 и к сожалению вызывает исключение при выходе за границы строки.

Машинное эпсилон Машинное эпсилон - это наименьшее положительное значение, для которого 1+ε > 1. Как видно из программы, оно
Машинное эпсилон Машинное эпсилон - это наименьшее положительное значение, для которого 1+ε > 1. Как видно из программы, оно примерно равно 2.2*e-16

Язык C# - язык года по версии TIOBE TIOBE объявила язык программирования C# языком прошедшего 2023 года. https://www.tiobe.com/tiobe-index/ C# устойчиво удерживает пятую позицию в рейтинге и показал за 2023 год впечатляющий рост - 1,43%. Многие конструкции PascalABC.NET были введены под влиянием именно C# как наиболее динамично развивающегося и богатого языковыми конструкциями языка программирования современности. Из других важных изменений: "Fortran и Kotlin вошли в топ-20 игроков, заменив старых фаворитов R и Perl".

Модуль School - перевод из одной системы счисления в другую
Модуль School - перевод из одной системы счисления в другую

Range для вещественных Реализована стандартная функция Range с шагом для вещественных. Несмотря на ошибки округления, если пр
Range для вещественных Реализована стандартная функция Range с шагом для вещественных. Несмотря на ошибки округления, если программист указывает длину отрезка, кратную шагу, то обе границы всегда входят в последовательность. #новое

Описание переменной внутри выражения В PascalABC.NET появилась возможность описывать переменные внутри выражения. Это удобно
Описание переменной внутри выражения В PascalABC.NET появилась возможность описывать переменные внутри выражения. Это удобно в ряде сценариев #новое

Уважаемые читатели канала PascalABC.NET! Поздравляем всех с наступающим 2024 годом! Год будет непростой, но интересный! И кус
Уважаемые читатели канала PascalABC.NET! Поздравляем всех с наступающим 2024 годом! Год будет непростой, но интересный! И кусочек старого года в виде множителя 23 в новом году - останется!

Множество Мандельброта в текстовом формате Множество Мандельброта можно нарисовать даже в текстовом режиме ## function Mandel
Множество Мандельброта в текстовом формате Множество Мандельброта можно нарисовать даже в текстовом режиме
##
function Mandelbrot(a: Complex): Complex;
begin
  var z := Cplx(0,0);
  for var i:=0 to 50 do
    z := z * z + a;
  Result := z;
end;

foreach var y in PartitionPoints(1,-1,40) do
begin
  foreach var x in PartitionPoints(-2,0.5,80) do
    if Abs(Mandelbrot(cplx(x,y))) < 2 then
      Write('*')
    else Write(' ');
    Writeln
end;

Визуализация решета Эратосфена uses WPFObjects; var (n,w,m) := (300,40,20); begin Window.Title := 'Алгоритм решета Эратосфена
Визуализация решета Эратосфена
uses WPFObjects;

var (n,w,m) := (300,40,20); 

begin
  Window.Title := 'Алгоритм решета Эратосфена';
  var aa: array of SquareWPF := ArrGen(n+1,i->
    SquareWPF.Create((i mod m)*w,(i div m) * w,w-2,Colors.White).SetBorder);
  aa.ForEach(procedure (s,i) -> s.Number := i);
  aa[0].Visible := False;
  aa[1].Visible := False;
  Sleep(2000);
  
  var primes := HSet(2..n);
  for var i:=2 to Round(Sqrt(n)) do
  begin
    if i not in primes then
      continue;

    aa[i].Color := Colors.Yellow; 
    aa[i].BorderWidth := 3;
    var c := RandomColor; c.ScA := 128;

    var x := i*i;
    while x<=n do
    begin
      Sleep(50);
      aa[x].Color := c;
      primes -= x;
      x += i;
    end;
  end;
  primes.Println;
  Sleep(1000);

  aa.ForEach(procedure (s,i) -> if i not in primes then s.Visible := False);
  var bb := aa.Where(ob -> ob.Visible).ToArray;
  bb.ForEach(procedure (ob,i) -> ob.AnimMoveTo((i mod m)*w,(i div m) * w));
end.

Формулировка задания неточная. "Дано неотрицательное целое ..."

Анализ двоичной записи целого Задача, которая хорошо решается алгоритмом и плохо методами Linq
Анализ двоичной записи целого Задача, которая хорошо решается алгоритмом и плохо методами Linq

Ускорена реализация s.Replace Реализация s.Replace с тремя параметрами ускорена примерно в 4 раза begin for var x := 1 to 50
Ускорена реализация s.Replace Реализация s.Replace с тремя параметрами ускорена примерно в 4 раза
begin
  for var x := 1 to 50 do
    for var y := 1 to 50 do
      for var z := 1 to 50 do
      begin
        var s := '0' + x*'1' + y*'2' + z*'3';
        
        while ('01' in s) or ('02' in s) or ('03' in s) do
                s := s.Replace('01', '30', 1).Replace('02', '101', 1).Replace('03', '202', 1);
        
        if (s.CountOf('1') = 15) and (s.CountOf('2') = 10) and (s.CountOf('3') = 60) then
                Println(x)
      end;
  Println('Программа завершена за', MillisecondsDelta/1000, 'секунд');
end.

Война и мир Десять самых часто встречающихся слов в "Войне и мире"
Война и мир Десять самых часто встречающихся слов в "Войне и мире"

Операции с множествами Для множеств в PascalABC.NET определены операции объединения, пересечения, разности, вложения, а также
Операции с множествами Для множеств в PascalABC.NET определены операции объединения, пересечения, разности, вложения, а также принадлежности элемента множеству.
begin
  var s1: HashSet<string> := HSet('red','green','blue');
  var s2: HashSet<string> := HSet('yellow','magenta','green');
  Println(s1 + s2);
  Println(s1 * s2);
  Println(s1 - s2);
  Println(s1 < s2);
  Println('yellow' in s2);
end.