Примеры 3.11

This commit is contained in:
Mikhalkovich Stanislav 2026-02-03 11:53:30 +03:00
parent 357048de07
commit 76c6ef8e6c
12 changed files with 51 additions and 9 deletions

View file

@ -0,0 +1,22 @@
// 3.11 - AdjacentGroupBy
type
Player = auto class
Name: string; Score: integer;
end;
function GetPlayers := [
new Player('Alice', 95),
new Player('Bob', 95),
new Player('Charlie', 110),
new Player('Diana', 110),
new Player('Karina', 120)
];
begin
var leaderboard := GetPlayers;
foreach var group in leaderboard.AdjacentGroupBy(p -> p.Score) do
begin
Println(group.Key);
group.Println;
end;
end.

View file

@ -1,4 +1,4 @@
// Уточнение инициализации элемента массива пустой коллекцией
// 3.11. Уточнение инициализации элемента массива пустой коллекцией
begin
var a: array of array of integer := [[],[],[1]];
Println(a,TypeName(a));

View file

@ -0,0 +1,11 @@
// 3.11. Внешняя Beetween
begin
Between(6,2,6).Print;
Between(6,2,6,inclusive := False).Println;
// Универсальная Between. Должен поддерживаться интерфейс IComparable<T>
var dt1 := DateTime.Create(2025,04,16);
var dt3 := DateTime.Now;
Between(DateTime.Now,dt1,dt3).Print;
Between(DateTime.Now,dt1,dt3,inclusive := False).Println;
end.

View file

@ -1,4 +1,5 @@
uses Graph3D;
// 3.11. Cloth - анимируемый объект из ткани
uses Graph3D;
begin
Window.Caption := 'Развевающийся флаг';

View file

@ -1,4 +1,5 @@
begin
// 3.11. Внешняя InRange
begin
// Поведение изменено!! Теперь диапазон [6,2] считается пустым
5.InRange(6,2).Println;

View file

@ -1,4 +1,5 @@
type
// 3.11 - IsOrdered
type
Player = auto class
Name: string; Points: integer;
end;

View file

@ -1,4 +1,5 @@
uses Graph3D;
// 3.11. ParticleSystem
uses Graph3D;
begin
View3D.BackgroundColor := Colors.Black;

View file

@ -0,0 +1 @@
print('Привет! Это SPython!')

View file

@ -1,4 +1,5 @@
function fff: integer;
// 3.11 - exit(param)
function fff: integer;
begin
exit(3)
end;

View file

@ -1,4 +1,5 @@
function IsPrime(n: integer): boolean;
// 3.11 - exit(param)
function IsPrime(n: integer): boolean;
begin
if n < 2 then exit(False);
for var i:=2 to n.Sqrt.Trunc do

View file

@ -1,4 +1,5 @@
begin
// 3.11 - exit(param)
begin
var IsPrime: integer boolean := n begin
if n < 2 then exit(False);
for var i:=2 to n.Sqrt.Trunc do

View file

@ -1,4 +1,5 @@
function FastPower(a: real; n: integer): real;
// 3.11 - exit(param)
function FastPower(a: real; n: integer): real;
begin
if n = 0 then exit(1); // a^0 = 1
if n = 1 then exit(a); // a^1 = a