Выпуск среды разработки PascalABC.NET 3.7.2

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Янв-2021 15:30

Доступен выпуск системы программирования PascalABC.NET 3.7.2, предлагающей редакцию языка программирования Паскаль с поддержкой генерации кода для платформы .NET, возможностью использования библиотек .NET и дополнительными возможностями, такими как обобщённые классы, интерфейсы, перегрузка операций, λ-выражения, исключения, сборка мусора, методы расширения, безымянные классы и автоклассы. Проект главным образом ориентирован на применение в сфере образования и научных исследований. Пакет также включает среду разработки с подсказками по коду, автоформатированием, отладчиком, дизайнером форм и образцами кода для начинающих. Код проекта распространяется под лицензией LGPLv3. Возможна сборка в Linux (на базе Mono) и Windows.
Изменения в новом выпуске:
  • Расширенный foreach с распаковкой значений в несколько переменных. Значения должны быть кортежами или последовательностями:
    begin
      var a := Arr((1,2),(3,4),(5,6));
      foreach var (x,y) in a do
        Print(x,y);
      Println;
      var b := Arr(|1,2,3|,|4,5|,|6,7,8,9|);
      foreach var (x,y) in b do
        Print(x,y);
    end.
  • Литералы для BigInteger, имеющие окончание bi: 1bi, 874658734265762345bi
    Пример 1
    begin
      var n := ReadInteger;
      var p := 1bi;
      for var i:=2 to n do
        p *= i;
      Print(p);
    end.
    Пример 2
    ##
    Print(25bi ** 25 + 17bi ** 17)
  • Использование uses в коротких программах
    Пример 1
    ##
    uses Graph3D;
    Sphere(Origin,1);
    Пример 2
    ###
    uses School;
    Pr(Bin(123));
  • Стандартная библиотека.
    • Размещения и размещения с повторениями. В дополнение к методам a.Permutations и a.Combinations(m) для массивов реализованы:
      a.Cartesian(n) - возвращает n-тую декартову степень множества, элементов a.Permutations(m) - возвращает все частичные перестановки из n элементов по m.
      Кроме того, все указанные методы определены также над последовательностями
      ###
      var a := Arr(1,3,5,7);
      a.Permutations.Println;
      a.Cartesian(2).Println;
      a.Permutations(2).Println;
      a.Combinations(2).Println;
      Println;
      var s := Seq(1,3,5,7);
      s.Permutations.Println;
      s.Cartesian(2).Println;
      s.Permutations(2).Println;
      s.Combinations(2).Println;
      s.CountOf(x) для последовательностей
      ###
      var a := Arr(1,3,5,7,1,2,1,3,1,5);
      a.CountOf(1).Print
    • Sum, Average, Product для последовательностей BigInteger
      begin
        var s := SeqGen(100,i->BigInteger(i)**i);
        Print(s.Sum,s.Product);
      end.
    • Методы расширения строк s.IsInteger и s.IsReal:
      begin
        var s := '123.4 3 5 6.6 a v 67';
        var (si,sr) := (0,0.0);
        foreach var w in s.ToWords do
          if w.IsInteger then
            si += w.ToInteger
          else if w.IsReal then
            sr += w.Toreal;
        Print(si,sr);
      end.
    • s.ToWords(delims) с разделителями в виде строки.
      Разделители в s.ToWords теперь можно задавать в виде строки
      begin
        var s := '123.4, 6.6, 67';
        s.ToWords(' ,').PrintLines
      end.
    • Определена константа AllDelimiters, содержащая все разделители слов в текстах
      begin
        ...
        s.ToWords(AllDelimiters).Println
      end.
    • В Graph3D реализована сериализация и десериализация компонентов Object3D
      Сериализация
      uses Graph3D;
      begin
        var s := Sphere(0,0,0,1);
        s.AddChild(Cube(0,0,1,0.5));
        s.AddChild(Cube(1,0,0,0.5));
        s.AddChild(Cube(-1,0,0,0.5));
        s.Serialize('c.dat');
      end.
      Десериализация
      uses Graph3D;
      begin
        var s := Object3D.DeSerialize('c.dat') as SphereT;
        var c1 := s[0] as CubeT;
        var c2 := s[1] as CubeT;
        var c3 := s[2] as CubeT;
      end.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_pascal
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 25-Ноя 08:04
Часовой пояс: UTC + 5