Перенес примеры в 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