Добавлены примеры в Whats New
This commit is contained in:
parent
8682125251
commit
69e057c576
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "8";
|
||||
public const string Build = "3";
|
||||
public const string Revision = "3104";
|
||||
public const string Revision = "3105";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=3
|
||||
%REVISION%=3104
|
||||
%MINOR%=8
|
||||
%REVISION%=3105
|
||||
%COREVERSION%=3
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ type
|
|||
const fname = 'a.dat';
|
||||
|
||||
begin
|
||||
var m := new Node(5,new Node(3,new Node(4,nil)));
|
||||
var m := new Node(5,new Node(3,new Node(4,nil))); // Связный список
|
||||
Serialize(fname,m); // Сериализуем объект в файл
|
||||
var m1 := Deserialize(fname) as Node; // Десериализуем из файла
|
||||
Print(m1);
|
||||
|
|
|
|||
|
|
@ -1,20 +1,12 @@
|
|||
Uses Timers;
|
||||
uses Timers;
|
||||
|
||||
var t1, t2: Timer;
|
||||
procedure OnTimer1 := Write('!');
|
||||
|
||||
procedure OnTimer1;
|
||||
begin
|
||||
Write('!');
|
||||
end;
|
||||
|
||||
procedure OnTimer2;
|
||||
begin
|
||||
Write('?');
|
||||
end;
|
||||
procedure OnTimer2 := Write('?');
|
||||
|
||||
begin
|
||||
t1 := new Timer(200, OnTimer1);
|
||||
t2 := new Timer(300, OnTimer2);
|
||||
var t1 := new Timer(200, OnTimer1);
|
||||
var t2 := new Timer(300, OnTimer2);
|
||||
t1.Start;
|
||||
t2.Start;
|
||||
Sleep(10000);
|
||||
|
|
|
|||
|
|
@ -1,59 +1,37 @@
|
|||
// "Собачка". Иллюстрация использования таймера.
|
||||
uses GraphABC, Timers;
|
||||
// "Собачка". Иллюстрация использования таймера.
|
||||
uses GraphWPF, Timers;
|
||||
|
||||
var
|
||||
t: Timer;
|
||||
xx,yy,px,py: integer;
|
||||
xx,yy,px,py: real;
|
||||
|
||||
procedure Draw;
|
||||
begin
|
||||
FillCircle(xx,yy,11);
|
||||
end;
|
||||
|
||||
procedure Show;
|
||||
begin
|
||||
Brush.Color := clBlack;
|
||||
Draw;
|
||||
end;
|
||||
|
||||
procedure Hide;
|
||||
begin
|
||||
Brush.Color := clWhite;
|
||||
Draw;
|
||||
end;
|
||||
|
||||
procedure Move(x,y: integer);
|
||||
begin
|
||||
Hide;
|
||||
xx := x;
|
||||
yy := y;
|
||||
show;
|
||||
end;
|
||||
|
||||
procedure Timer1;
|
||||
procedure TimerProc;
|
||||
begin
|
||||
if (xx<>px) or (yy<>py) then
|
||||
begin
|
||||
var t := 1/10;
|
||||
var newx := round((1-t)*xx+t*px);
|
||||
var newy := round((1-t)*yy+t*py);
|
||||
Move(newx,newy);
|
||||
(xx,yy) := (newx,newy);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure MouseMove(x,y,mb: integer);
|
||||
begin
|
||||
px := x; py := y;
|
||||
end;
|
||||
Window.Title := '"Собачка"';
|
||||
Brush.Color := Colors.Black;
|
||||
|
||||
begin
|
||||
SetWindowCaption('"Собачка"');
|
||||
SetSmoothingOff;
|
||||
OnMouseMove:=MouseMove;
|
||||
xx := 100; yy := 100;
|
||||
px := xx; py := yy;
|
||||
Show;
|
||||
Timer1;
|
||||
t := new Timer(20,Timer1);
|
||||
|
||||
OnMouseMove := procedure(x,y,mb) -> (px,py) := (x,y);
|
||||
|
||||
OnDrawFrame := dt -> begin
|
||||
FillCircle(xx,yy,11);
|
||||
end;
|
||||
|
||||
var t := new Timer(20,TimerProc);
|
||||
t.Start;
|
||||
end.
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ begin
|
|||
end;
|
||||
|
||||
begin
|
||||
Init4;
|
||||
Init1;
|
||||
ToPoint(x0,y0);
|
||||
SetWidth(0.5);
|
||||
//SetColor(Colors.Red);
|
||||
|
|
|
|||
7
InstallerSamples/WhatsNew/3_7_2/AllDelimiters.pas
Normal file
7
InstallerSamples/WhatsNew/3_7_2/AllDelimiters.pas
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
// Разделитель AllDelimiters содержит все основные символы,
|
||||
// которые могут служить разделителями между словами
|
||||
begin
|
||||
var s := '123@!45 @#$678\/|?90~;';
|
||||
s.ToWords(AllDelimiters).Println;
|
||||
end.
|
||||
|
||||
5
InstallerSamples/WhatsNew/3_7_2/BigIntSumProd.pas
Normal file
5
InstallerSamples/WhatsNew/3_7_2/BigIntSumProd.pas
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
// Методы .Sum, .Average и .Product для последовательности BigInteger
|
||||
begin
|
||||
var s := SeqGen(10,i->BigInteger(i)**i);
|
||||
Print(s.Sum,s.Product,s.Average);
|
||||
end.
|
||||
5
InstallerSamples/WhatsNew/3_7_2/CountOf.pas
Normal file
5
InstallerSamples/WhatsNew/3_7_2/CountOf.pas
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
// Стандартный метод последовательности CountOf
|
||||
begin
|
||||
var a := Arr(1,3,5,7,1,2,1,3,1,5);
|
||||
a.CountOf(1).Print;
|
||||
end.
|
||||
12
InstallerSamples/WhatsNew/3_7_2/IsIntegerReal.pas
Normal file
12
InstallerSamples/WhatsNew/3_7_2/IsIntegerReal.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// Методы строк .IsInteger и .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.
|
||||
|
||||
14
InstallerSamples/WhatsNew/3_7_2/PermCombCart.pas
Normal file
14
InstallerSamples/WhatsNew/3_7_2/PermCombCart.pas
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// Все виды использования Permutations, Combinations, Cartesian
|
||||
##
|
||||
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;
|
||||
|
||||
6
InstallerSamples/WhatsNew/3_7_2/ToWordsStrDelim.pas
Normal file
6
InstallerSamples/WhatsNew/3_7_2/ToWordsStrDelim.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Метод строк .ToWords со строкой, содержащей разделители
|
||||
begin
|
||||
var s := '123.4, 6.6; 67';
|
||||
s.ToWords(' ,;').PrintLines
|
||||
end.
|
||||
|
||||
9
InstallerSamples/WhatsNew/3_7_2/bi.pas
Normal file
9
InstallerSamples/WhatsNew/3_7_2/bi.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// Литералы BigInteger
|
||||
begin
|
||||
Println(25bi ** 25 + 17bi ** 17);
|
||||
|
||||
var p := 1bi;
|
||||
for var i:=2 to 50 do
|
||||
p *= i;
|
||||
Println($'50! = {p}');
|
||||
end.
|
||||
10
InstallerSamples/WhatsNew/3_7_2/ext_foreach.pas
Normal file
10
InstallerSamples/WhatsNew/3_7_2/ext_foreach.pas
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
// Расширенный 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.
|
||||
4
InstallerSamples/WhatsNew/3_7_2/usesInShortPrograms.pas
Normal file
4
InstallerSamples/WhatsNew/3_7_2/usesInShortPrograms.pas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
// В коротких подпрограммах можно использовать подключение модулей
|
||||
##
|
||||
uses Graph3D;
|
||||
Sphere(Origin,1);
|
||||
14
InstallerSamples/WhatsNew/3_8_0/MultidimensionalSlices.pas
Normal file
14
InstallerSamples/WhatsNew/3_8_0/MultidimensionalSlices.pas
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// Срезы многомерных массивов
|
||||
begin
|
||||
var m := MatrByRow(||1,2,3,4|,|5,6,7,8|,|9,10,11,12||);
|
||||
Println(m[:,:]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
|
||||
Println(m[::1,::1]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
|
||||
Println(m[1:3,1:4]); // [[6,7,8],[10,11,12]]
|
||||
Println(m[::2,::3]); // [[1,4],[9,12]]
|
||||
Println(m[::-2,::-1]); // [[12,11,10,9],[4,3,2,1]]
|
||||
Println(m[^2::-1,^2::-1]); // [[7,6,5],[3,2,1]]
|
||||
Println(m[:^1,:^1]); // [[1,2,3],[5,6,7]]
|
||||
Println(m[1,:]); // Одномерный массив [5,6,7,8]
|
||||
Println(m[^1,:]); // Одномерный массив [9,10,11,12]
|
||||
Println(m[:,^1]); // Одномерный массив [4,8,12]
|
||||
end.
|
||||
9
InstallerSamples/WhatsNew/3_8_0/UnpackLambdaParams.pas
Normal file
9
InstallerSamples/WhatsNew/3_8_0/UnpackLambdaParams.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// Распаковка составного параметра лямбда-выражения в переменные
|
||||
begin
|
||||
var s := Seq(('Умнова',16),('Иванов',23),
|
||||
('Попова',17),('Козлов',24));
|
||||
Println('Совершеннолетние:');
|
||||
s.Where(\(name,age) -> age >= 18).Println;
|
||||
Println('Сортировка по фамилии:');
|
||||
s.OrderBy(\(name,age) -> name).Println;
|
||||
end.
|
||||
|
|
@ -1 +1 @@
|
|||
3.8.3.3104
|
||||
3.8.3.3105
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.8.3.3104'
|
||||
!define VERSION '3.8.3.3105'
|
||||
|
|
|
|||
Loading…
Reference in a new issue