Перенес примеры в WhatsNew 3.11
This commit is contained in:
parent
ae8a005b6a
commit
357048de07
9
InstallerSamples/WhatsNew/3_11_0/ArrInitWithEmpty.pas
Normal file
9
InstallerSamples/WhatsNew/3_11_0/ArrInitWithEmpty.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// Уточнение инициализации элемента массива пустой коллекцией
|
||||
begin
|
||||
var a: array of array of integer := [[],[],[1]];
|
||||
Println(a,TypeName(a));
|
||||
var b := [[],[1],[]];
|
||||
Println(b,TypeName(b));
|
||||
var aa: array of array of array of integer := [[[],[2]],[]];
|
||||
Print(aa,TypeName(aa));
|
||||
end.
|
||||
12
InstallerSamples/WhatsNew/3_11_0/InRange.pas
Normal file
12
InstallerSamples/WhatsNew/3_11_0/InRange.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
begin
|
||||
// Поведение изменено!! Теперь диапазон [6,2] считается пустым
|
||||
5.InRange(6,2).Println;
|
||||
|
||||
// Универсальная InRange. Должен поддерживаться интерфейс IComparable<T>
|
||||
InRange(5,2,6).Println;
|
||||
|
||||
var dt1 := DateTime.Create(2025,04,16);
|
||||
var dt2 := DateTime.Create(2025,04,29);
|
||||
var dt3 := DateTime.Now;
|
||||
InRange(dt2,dt1,dt3).Println;
|
||||
end.
|
||||
23
InstallerSamples/WhatsNew/3_11_0/IsOrdered1.pas
Normal file
23
InstallerSamples/WhatsNew/3_11_0/IsOrdered1.pas
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
type
|
||||
Player = auto class
|
||||
Name: string; Points: integer;
|
||||
end;
|
||||
|
||||
function GetPlayers := [
|
||||
new Player('Alice', 120),
|
||||
new Player('Bob', 95),
|
||||
new Player('Charlie', 130),
|
||||
new Player('Diana', 110)
|
||||
];
|
||||
|
||||
begin
|
||||
var leaderboard := GetPlayers;
|
||||
Println(leaderboard);
|
||||
if not leaderboard.IsOrderedByDescending(p -> p.Points) then
|
||||
Println('Рейтинг составлен неверно!');
|
||||
|
||||
leaderboard := leaderboard.OrderByDescending(p -> p.Points).ToArray;
|
||||
Println(leaderboard);
|
||||
if leaderboard.IsOrderedByDescending(p -> p.Points) then
|
||||
Println('Теперь рейтинг составлен верно!');
|
||||
end.
|
||||
7
InstallerSamples/WhatsNew/3_11_0/UnpackKeyValuePair.pas
Normal file
7
InstallerSamples/WhatsNew/3_11_0/UnpackKeyValuePair.pas
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
begin
|
||||
var t := 2 to 3.5;
|
||||
var (a,b) := t;
|
||||
Println(a,b);
|
||||
foreach var (a1,b1) in Dict(1 to 7, 22 to 555) do
|
||||
Println(a1,b1);
|
||||
end.
|
||||
8
InstallerSamples/WhatsNew/3_11_0/exit_param1.pas
Normal file
8
InstallerSamples/WhatsNew/3_11_0/exit_param1.pas
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
function fff: integer;
|
||||
begin
|
||||
exit(3)
|
||||
end;
|
||||
|
||||
begin
|
||||
Print(fff());
|
||||
end.
|
||||
13
InstallerSamples/WhatsNew/3_11_0/exit_param2.pas
Normal file
13
InstallerSamples/WhatsNew/3_11_0/exit_param2.pas
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
function IsPrime(n: integer): boolean;
|
||||
begin
|
||||
if n < 2 then exit(False);
|
||||
for var i:=2 to n.Sqrt.Trunc do
|
||||
if n.Divs(i) then
|
||||
exit(False);
|
||||
exit(True);
|
||||
end;
|
||||
|
||||
begin
|
||||
IsPrime(17).Print;
|
||||
IsPrime(1).Print;
|
||||
end.
|
||||
12
InstallerSamples/WhatsNew/3_11_0/exit_param3.pas
Normal file
12
InstallerSamples/WhatsNew/3_11_0/exit_param3.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
begin
|
||||
var IsPrime: integer → boolean := n → begin
|
||||
if n < 2 then exit(False);
|
||||
for var i:=2 to n.Sqrt.Trunc do
|
||||
if n.Divs(i) then
|
||||
exit(False);
|
||||
exit(True);
|
||||
end;
|
||||
|
||||
IsPrime(17).Print;
|
||||
IsPrime(1).Print;
|
||||
end.
|
||||
15
InstallerSamples/WhatsNew/3_11_0/exit_param4.pas
Normal file
15
InstallerSamples/WhatsNew/3_11_0/exit_param4.pas
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
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
|
||||
if n < 0 then exit(1 / FastPower(a, -n)); // отрицательная степень
|
||||
|
||||
var half := FastPower(a, n div 2);
|
||||
if n mod 2 = 0 then exit(half * half); // чётная степень
|
||||
exit(half * half * a); // нечётная
|
||||
end;
|
||||
|
||||
begin
|
||||
Writeln('2^10 = ', FastPower(2, 10)); // 1024
|
||||
Writeln('3^-2 = ', FastPower(3, -2)); // 0.111...
|
||||
end.
|
||||
Loading…
Reference in a new issue