From 6a6c3553c2d35f8aa07765775b256780d21ec433 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Mon, 4 Aug 2025 13:59:32 +0300 Subject: [PATCH] =?UTF-8?q?LightPT=20-=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 +- Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- TestSuite/CompilationSamples/Tasks1Loops.pas | 78 +++++++++++++++++++- bin/Lib/Tasks1Loops.pas | 78 +++++++++++++++++++- 6 files changed, 157 insertions(+), 9 deletions(-) diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index da21279c0..c060fec16 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "11"; public const string Build = "0"; - public const string Revision = "3649"; + public const string Revision = "3650"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 0e1523336..ae5706a36 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=11 -%REVISION%=3649 %COREVERSION%=0 +%REVISION%=3650 +%MINOR%=11 %MAJOR%=3 diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index f0e446692..1fb2dae72 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.11.0.3649 +3.11.0.3650 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index e6f2ef968..3de007136 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.11.0.3649' +!define VERSION '3.11.0.3650' diff --git a/TestSuite/CompilationSamples/Tasks1Loops.pas b/TestSuite/CompilationSamples/Tasks1Loops.pas index 4689da079..3ed97b803 100644 --- a/TestSuite/CompilationSamples/Tasks1Loops.pas +++ b/TestSuite/CompilationSamples/Tasks1Loops.pas @@ -837,7 +837,79 @@ begin Lst.AddRange(|d1,d2,d3,a|); end; CheckOutput(lst); - end; + end; + 'Product': begin + CheckData(Empty); + var lst := ObjectList.New; + for var c := 'a' to 'z' do + for var i := 0 to 9 do + begin + lst.Add(c); + lst.Add(i); + end; + CheckOutput(lst); + end; + 'Перебор вариантов': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + CheckOutput(4,6,12,3); + end; + 'ProductPartial': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + var lst := ObjectList.New; + for var i:=1 to 4 do + for var j:=1 to 4 do + for var k:=1 to 4 do + if (j < k) and (j < i) then + lst.AddRange(|i,j,k|); + CheckOutput(lst); + end; + 'Combinations1': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + var lst := ObjectList.New; + for var i := 1 to 5 do + for var j := i+1 to 5 do + for var k := j+1 to 5 do + lst.AddRange(|i,j,k|); + CheckOutput(lst); + end; + 'Permutations1': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + var lst := ObjectList.New; + for var i := 1 to 3 do + for var j := 1 to 3 do + for var k := 1 to 3 do + if (i<>j) and (j<>k) and (i<>k) then + lst.AddRange(|i,j,k|); + CheckOutput(lst); + end; + 'Permutations2': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + var lst := ObjectList.New; + for var i := 1 to 4 do + for var j := 1 to 4 do + for var k := 1 to 4 do + for var m := 1 to 4 do + if (i<>j) and (i<>k) and (i<>m) and (j<>k) and (j<>m) and (k<>m) + then + lst.AddRange(|i,j,k,m|); + CheckOutput(lst); + end; + 'ПрямоугольныеТреугольники': begin + FilterOnlyNumbers; + CheckData(Empty); + var lst := ObjectList.New; + for var a:=1 to 20 do + for var b:=1 to 20 do + for var c:=1 to 20 do + if (a*a + b*b = c*c) and (aj) and (j<>k) and (i<>k) then + lst.AddRange(|i,j,k|); + CheckOutput(lst); + end; + 'Permutations2': begin + FilterOnlyNumbersAndBools; + CheckData(Empty); + var lst := ObjectList.New; + for var i := 1 to 4 do + for var j := 1 to 4 do + for var k := 1 to 4 do + for var m := 1 to 4 do + if (i<>j) and (i<>k) and (i<>m) and (j<>k) and (j<>m) and (k<>m) + then + lst.AddRange(|i,j,k,m|); + CheckOutput(lst); + end; + 'ПрямоугольныеТреугольники': begin + FilterOnlyNumbers; + CheckData(Empty); + var lst := ObjectList.New; + for var a:=1 to 20 do + for var b:=1 to 20 do + for var c:=1 to 20 do + if (a*a + b*b = c*c) and (a