Удален PT4Linq
This commit is contained in:
parent
4bcb93cbad
commit
0bdfe3d027
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "0";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "1043";
|
||||
public const string Revision = "1050";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=0
|
||||
%REVISION%=1043
|
||||
%REVISION%=1050
|
||||
%MAJOR%=3
|
||||
%COREVERSION%=0
|
||||
|
|
|
|||
|
|
@ -6935,12 +6935,12 @@ namespace PascalABCCompiler.NETGenerator
|
|||
bool tmp_dot = is_dot_expr;
|
||||
is_dot_expr = true;
|
||||
//DarkStar Fixed: type t:=i.gettype();
|
||||
bool _box = (value.obj.type.is_value_type || value.obj.type.is_generic_parameter) && !value.compiled_method.method_info.DeclaringType.IsValueType;
|
||||
bool _box = value.obj.type.is_value_type && !value.compiled_method.method_info.DeclaringType.IsValueType;
|
||||
if (_box)
|
||||
is_dot_expr = false;
|
||||
value.obj.visit(this);
|
||||
//DarkStar Fixed: type t:=i.gettype();
|
||||
if (_box)
|
||||
if ((value.obj.type.is_value_type) && !value.compiled_method.method_info.DeclaringType.IsValueType)
|
||||
{
|
||||
il.Emit(OpCodes.Box, helper.GetTypeReference(value.obj.type).tp);
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -40,7 +40,7 @@ begin
|
|||
.TakeWhile(e ->not char.IsDigit(e[e.Length])).Show('C');
|
||||
b.Intersect(c).Show('D')
|
||||
.OrderBy(e -> e.Length).ThenBy(e -> e)
|
||||
.Write;
|
||||
.WriteAll;
|
||||
end.
|
||||
[43]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
|
|
@ -54,7 +54,7 @@ begin
|
|||
.SelectMany((e, n) ->
|
||||
e.Where((c, i) -> i mod 2 = (n < k ? 0 : 1)).Show())
|
||||
.Reverse
|
||||
.Write;
|
||||
.WriteAll;
|
||||
end.
|
||||
[52]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
|
|
@ -70,7 +70,7 @@ begin
|
|||
a.SelectMany(e1 -> b.Select(e2 -> e1 + '=' + e2))
|
||||
.OrderBy(e -> e.Split('=')[0])
|
||||
.ThenByDescending(e -> e.Split('=')[1])
|
||||
.Write;
|
||||
.WriteAll;
|
||||
end.
|
||||
[54]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
|
|
@ -84,7 +84,7 @@ begin
|
|||
(e1, ee2) -> ee2.DefaultIfEmpty('')
|
||||
.Select(e -> e1 + '.' + e))
|
||||
.SelectMany(e -> e).OrderBy(e -> e).Show()
|
||||
.Write;
|
||||
.WriteAll;
|
||||
end.
|
||||
[60]
|
||||
// Àáðàìÿí Ì.Ý. ÒÅÕÍÎËÎÃÈß LINQ ÍÀ ÏÐÈÌÅÐÀÕ. Ì.: ÄÌÊ-Ïðåññ, 2014.
|
||||
|
|
@ -96,7 +96,7 @@ begin
|
|||
ReadSeqString().GroupBy(e -> e[1])
|
||||
.OrderByDescending(e -> e.Sum(s -> s.Length)).ThenBy(e -> e.Key)
|
||||
.Select(e -> e.Sum(s -> s.Length) + '-' + e.Key)
|
||||
.Write;
|
||||
.WriteAll;
|
||||
end.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
uses PT4;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqBegin доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
При решении задач группы LinqBegin рекомендуется
|
||||
использовать следующие вспомогательные методы:
|
||||
|
||||
ReadSeqInteger() - ввод числовой последовательности;
|
||||
ReadSeqString() - ввод строковой последовательности;
|
||||
Write() (метод расширения) - вывод последовательности;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
ReadSeqInteger - ввод числовой последовательности;
|
||||
ReadSeqString - ввод строковой последовательности;
|
||||
WriteAll (метод расширения) - вывод размера и всех
|
||||
элементов последовательности;
|
||||
Show (метод расширения) - отладочная печать
|
||||
последовательности.
|
||||
|
||||
Метод Show возвращает исходную последовательность,
|
||||
поэтому его можно использовать в середине цепочек запросов.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +1,15 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
uses PT4, PT4Linq;
|
||||
uses PT4;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqObj доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
При решении задач группы LinqObj рекомендуется
|
||||
использовать следующие вспомогательные методы:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
WriteAllLines(name, seq) - процедура, которая записывает в текстовый файл
|
||||
с именем name последотвальеность строк seq;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
ReadLines - чтение данных из текстового файла
|
||||
в строковую последовательность;
|
||||
WriteLines - запись данных из строковой
|
||||
последовательности в текстовый файл.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,9 @@
|
|||
[=PascalABC]
|
||||
[0]
|
||||
{$reference System.Xml.Linq.dll}
|
||||
uses PT4, PT4Linq, System, System.Xml.Linq;
|
||||
uses PT4, System.Xml.Linq;
|
||||
|
||||
(*
|
||||
При решении задач группы LinqXml доступны следующие
|
||||
дополнительные методы, определенные в модуле PT4Linq:
|
||||
|
||||
ReadAllLines(name) - функция, которая возвращает последовательность строк,
|
||||
содержащихся в текстовом файле с имененм name;
|
||||
Show() и Show(cmt) (методы расширения) - отладочная печать
|
||||
последовательности, cmt - строковый комментарий;
|
||||
Show(e -> str) и Show(cmt, e -> str) (методы расширения) -
|
||||
отладочная печать строковых значений str, полученных
|
||||
из элементов e последовательности, cmt - строковый комментарий.
|
||||
*)
|
||||
[1-999]
|
||||
|
||||
begin
|
||||
Task('%{task}');
|
||||
|
||||
|
|
|
|||
|
|
@ -19,4 +19,5 @@ P.ptCommentContinue{text-align:justify;}
|
|||
P.ptFooter{text-align:right;font-size:10pt;font-style:italic;margin-right:0px;}
|
||||
SPAN.ptSpecial{font-family:"Arial";}
|
||||
PRE{font-family:"Courier New";text-align:left;font-size:10pt;text-indent:0px;margin-top:5px; margin-right:10px; margin-bottom:0px; margin-left:60px;}
|
||||
CODE{font-size:10pt;}
|
||||
P.ptPicture{font-family:Arial, sans-serif;margin-top: 5px;margin-bottom: 5px;margin-left: 60px;font-size: small;color: #000080;text-indent: 0pt;text-align: justify}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.0.0.1043'
|
||||
!define VERSION '3.0.0.1050'
|
||||
|
|
@ -4,7 +4,7 @@ uses
|
|||
DrawManField, Events, FilesOperations, GOLDParserEngine, GraphABC,
|
||||
GraphABCHelper, IniFile, PointerTools, PointRect, PT4, Robot, RobotField,
|
||||
RobotTaskMaker, RobotZadan, Sockets, Utils, VCL, Timers, PT4Exam, PT4TaskMakerNET, RBDMUtils,
|
||||
Collections, Arrays, Core, FormsABC, MPI, PT4Linq;
|
||||
Collections, Arrays, Core, FormsABC, MPI;
|
||||
|
||||
begin
|
||||
writeln(cos(pi));
|
||||
|
|
|
|||
|
|
@ -91,7 +91,6 @@
|
|||
File ..\bin\Lib\Utils.pcu
|
||||
File ..\bin\Lib\VCL.pcu
|
||||
File ..\bin\Lib\PT4Exam.pcu
|
||||
File ..\bin\Lib\PT4Linq.pcu
|
||||
File ..\bin\Lib\PT4TaskMakerNET.pcu
|
||||
File ..\bin\Lib\RBDMUtils.pcu
|
||||
File ..\bin\Lib\Collections.pcu
|
||||
|
|
@ -136,7 +135,6 @@
|
|||
${AddFile} "VCL.pcu"
|
||||
${AddFile} "PT4TaskMakerNET.pcu"
|
||||
${AddFile} "PT4Exam.pcu"
|
||||
${AddFile} "PT4Linq.pcu"
|
||||
${AddFile} "RBDMUtils.pcu"
|
||||
${AddFile} "Collections.pcu"
|
||||
${AddFile} "Core.pcu"
|
||||
|
|
@ -174,7 +172,6 @@
|
|||
File ..\bin\Lib\PointRect.pas
|
||||
File ..\bin\Lib\PT4.pas
|
||||
File ..\bin\Lib\PT4Exam.pas
|
||||
File ..\bin\Lib\PT4Linq.pas
|
||||
File ..\bin\Lib\Robot.pas
|
||||
File ..\bin\Lib\RobotField.pas
|
||||
File ..\bin\Lib\RobotTaskMaker.pas
|
||||
|
|
@ -219,7 +216,6 @@
|
|||
${AddFile} "PointRect.pas"
|
||||
${AddFile} "PT4.pas"
|
||||
${AddFile} "PT4Exam.pas"
|
||||
${AddFile} "PT4Linq.pas"
|
||||
${AddFile} "Robot.pas"
|
||||
${AddFile} "RobotField.pas"
|
||||
${AddFile} "RobotTaskMaker.pas"
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ unit PT4;
|
|||
// Copyright (c) 2006-2008 DarkStar, SSM
|
||||
// Copyright (c) 2010 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 1.3
|
||||
// Copyright (c) 2014-2015 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 4.13
|
||||
// Copyright (c) 2015 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 4.14
|
||||
// Ýëåêòðîííûé çàäà÷íèê Programming Taskbook Copyright (c)Ì.Ý.Àáðàìÿí, 1998-2015
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -131,21 +132,6 @@ function ReadlnPNode: PNode;
|
|||
/// Âîçâðàùàåò ââåäåííîå çíà÷åíèå òèïà Node
|
||||
function ReadlnNode: Node;
|
||||
|
||||
/// Âîçâðàùàåò ìàññèâ èç n öåëûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
/// Âîçâðàùàåò ìàññèâ èç n âåùåñòâåííûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
/// Âîçâðàùàåò ìàññèâ èç n ñòðîê, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n öåëûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n âåùåñòâåííûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n ñòðîê, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
|
||||
|
||||
procedure GetR(var param: real);
|
||||
procedure GetN(var param: integer);
|
||||
procedure GetC(var param: char);
|
||||
|
|
@ -316,6 +302,57 @@ procedure HideTask;
|
|||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 1.3 ==
|
||||
|
||||
// == Âåðñèÿ 4.14. Äîïîëíåíèÿ ==
|
||||
|
||||
/// Ââîäèò n öåëûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ìàññèâà
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
|
||||
/// Ââîäèò n âåùåñòâåííûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ìàññèâà
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
|
||||
/// Ââîäèò n ñòðîê
|
||||
/// è âîçâðàùàåò ââåäåííûå ñòðîêè â âèäå ìàññèâà
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Ââîäèò n öåëûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqInteger(n: integer): System.Collections.Generic.IEnumerable<integer>;
|
||||
|
||||
/// Ââîäèò n âåùåñòâåííûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqReal(n: integer): System.Collections.Generic.IEnumerable<real>;
|
||||
|
||||
/// Ââîäèò n ñòðîê
|
||||
/// è âîçâðàùàåò ââåäåííûå ñòðîêè â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqString(n: integer): System.Collections.Generic.IEnumerable<string>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà öåëûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqInteger(): System.Collections.Generic.IEnumerable<integer>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà âåùåñòâåííûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqReal(): System.Collections.Generic.IEnumerable<real>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà ñòðîê è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqString(): System.Collections.Generic.IEnumerable<string>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà öåëûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrInteger(): array of integer;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà âåùåñòâåííûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrReal(): array of real;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà ñòðîê è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrString(): array of string;
|
||||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 4.14 ==
|
||||
|
||||
|
||||
implementation
|
||||
|
|
@ -934,42 +971,6 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
begin
|
||||
Result := new integer[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadInteger;
|
||||
end;
|
||||
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
begin
|
||||
Result := new real[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadReal;
|
||||
end;
|
||||
|
||||
function ReadArrString(n: integer): array of string;
|
||||
begin
|
||||
Result := new string[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadString;
|
||||
end;
|
||||
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadInteger());
|
||||
end;
|
||||
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadReal());
|
||||
end;
|
||||
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadString());
|
||||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Ïðîöåäóðû Put
|
||||
// -----------------------------------------------------
|
||||
|
|
@ -1274,9 +1275,9 @@ procedure Show(S: string; A: Real; W: Integer);
|
|||
var s0: string;
|
||||
begin
|
||||
if D > 0 then
|
||||
Str(A:W:D, s0)
|
||||
s0 := string.Format('{0,'+W+':f'+D+'}', A).Replace(',','.')
|
||||
else
|
||||
Str(A:W, s0);
|
||||
s0 := string.Format('{0,'+W+':e}', A).Replace(',','.');
|
||||
Show(S + s0);
|
||||
end;
|
||||
|
||||
|
|
@ -1380,6 +1381,144 @@ end;
|
|||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 1.3 ==
|
||||
|
||||
// == Âåðñèÿ 4.14. Äîïîëíåíèÿ ==
|
||||
|
||||
function ReadSeqInteger(): System.Collections.Generic.IEnumerable<integer>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqReal(): System.Collections.Generic.IEnumerable<real>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqString(): System.Collections.Generic.IEnumerable<string>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqInteger(n: integer): System.Collections.Generic.IEnumerable<integer>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqReal(n: integer): System.Collections.Generic.IEnumerable<real>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqString(n: integer): System.Collections.Generic.IEnumerable<string>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrInteger(): array of integer;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrReal(): array of real;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrString(): array of string;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrString(n: integer): array of string;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
|
||||
/// Âûâîäèò ðàçìåð è ýëåìåíòû ïîñëåäîâàòåëüíîñòè
|
||||
procedure System.Collections.Generic.IEnumerable<T>.WriteAll();
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
PT4.Put(b.Length);
|
||||
foreach e : T in b do
|
||||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò ýëåìåíòû ïîñëåäîâàòåëüíîñòè
|
||||
procedure System.Collections.Generic.IEnumerable<T>.Write();
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
foreach e : T in b do
|
||||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ,
|
||||
/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè
|
||||
/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(cmt: string; selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
var b := self.Select(selector).ToArray();
|
||||
PT4.Show(cmt);
|
||||
PT4.Show((b.Length + ':').PadLeft(3));
|
||||
foreach var e in b do
|
||||
PT4.Show(e);
|
||||
PT4.ShowLine();
|
||||
result := self;
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ,
|
||||
/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè
|
||||
/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('', selector);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show(cmt: string):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self;
|
||||
var a := self.ToArray;
|
||||
var s := '';
|
||||
var t := '';
|
||||
if a.Length > 0 then
|
||||
t := a[0].GetType.Name;
|
||||
if t = 'Double' then
|
||||
if D > 0 then
|
||||
s := '{0,0:f' + D + '}'
|
||||
else
|
||||
s := '{0,0:e}';
|
||||
a.Show(cmt, e -> s = '' ? e.ToString() :
|
||||
string.Format(s, e).Replace(',', '.'));
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû.
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show():
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('');
|
||||
end;
|
||||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 4.14 ==
|
||||
|
||||
initialization
|
||||
__InitModule;
|
||||
finalization
|
||||
|
|
|
|||
Binary file not shown.
245
bin/Lib/PT4.pas
245
bin/Lib/PT4.pas
|
|
@ -7,6 +7,7 @@ unit PT4;
|
|||
// Copyright (c) 2006-2008 DarkStar, SSM
|
||||
// Copyright (c) 2010 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 1.3
|
||||
// Copyright (c) 2014-2015 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 4.13
|
||||
// Copyright (c) 2015 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 4.14
|
||||
// Ýëåêòðîííûé çàäà÷íèê Programming Taskbook Copyright (c)Ì.Ý.Àáðàìÿí, 1998-2015
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -131,21 +132,6 @@ function ReadlnPNode: PNode;
|
|||
/// Âîçâðàùàåò ââåäåííîå çíà÷åíèå òèïà Node
|
||||
function ReadlnNode: Node;
|
||||
|
||||
/// Âîçâðàùàåò ìàññèâ èç n öåëûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
/// Âîçâðàùàåò ìàññèâ èç n âåùåñòâåííûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
/// Âîçâðàùàåò ìàññèâ èç n ñòðîê, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n öåëûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n âåùåñòâåííûõ, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
/// Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü èç n ñòðîê, ââåäåííûõ ñ êëàâèàòóðû
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
|
||||
|
||||
procedure GetR(var param: real);
|
||||
procedure GetN(var param: integer);
|
||||
procedure GetC(var param: char);
|
||||
|
|
@ -316,6 +302,57 @@ procedure HideTask;
|
|||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 1.3 ==
|
||||
|
||||
// == Âåðñèÿ 4.14. Äîïîëíåíèÿ ==
|
||||
|
||||
/// Ââîäèò n öåëûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ìàññèâà
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
|
||||
/// Ââîäèò n âåùåñòâåííûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ìàññèâà
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
|
||||
/// Ââîäèò n ñòðîê
|
||||
/// è âîçâðàùàåò ââåäåííûå ñòðîêè â âèäå ìàññèâà
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Ââîäèò n öåëûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqInteger(n: integer): System.Collections.Generic.IEnumerable<integer>;
|
||||
|
||||
/// Ââîäèò n âåùåñòâåííûõ ÷èñåë
|
||||
/// è âîçâðàùàåò ââåäåííûå ÷èñëà â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqReal(n: integer): System.Collections.Generic.IEnumerable<real>;
|
||||
|
||||
/// Ââîäèò n ñòðîê
|
||||
/// è âîçâðàùàåò ââåäåííûå ñòðîêè â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqString(n: integer): System.Collections.Generic.IEnumerable<string>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà öåëûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqInteger(): System.Collections.Generic.IEnumerable<integer>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà âåùåñòâåííûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqReal(): System.Collections.Generic.IEnumerable<real>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà ñòðîê è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ïîñëåäîâàòåëüíîñòè
|
||||
function ReadSeqString(): System.Collections.Generic.IEnumerable<string>;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà öåëûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrInteger(): array of integer;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà âåùåñòâåííûõ ÷èñåë è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrReal(): array of real;
|
||||
|
||||
/// Ââîäèò ðàçìåð íàáîðà ñòðîê è åãî ýëåìåíòû
|
||||
/// è âîçâðàùàåò ââåäåííûé íàáîð â âèäå ìàññèâà
|
||||
function ReadArrString(): array of string;
|
||||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 4.14 ==
|
||||
|
||||
|
||||
implementation
|
||||
|
|
@ -934,42 +971,6 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
begin
|
||||
Result := new integer[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadInteger;
|
||||
end;
|
||||
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
begin
|
||||
Result := new real[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadReal;
|
||||
end;
|
||||
|
||||
function ReadArrString(n: integer): array of string;
|
||||
begin
|
||||
Result := new string[n];
|
||||
for var i:=0 to Result.Length-1 do
|
||||
Result[i] := ReadString;
|
||||
end;
|
||||
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadInteger());
|
||||
end;
|
||||
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadReal());
|
||||
end;
|
||||
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
begin
|
||||
Result := Range(1,n).Select(i->ReadString());
|
||||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Ïðîöåäóðû Put
|
||||
// -----------------------------------------------------
|
||||
|
|
@ -1274,9 +1275,9 @@ procedure Show(S: string; A: Real; W: Integer);
|
|||
var s0: string;
|
||||
begin
|
||||
if D > 0 then
|
||||
Str(A:W:D, s0)
|
||||
s0 := string.Format('{0,'+W+':f'+D+'}', A).Replace(',','.')
|
||||
else
|
||||
Str(A:W, s0);
|
||||
s0 := string.Format('{0,'+W+':e}', A).Replace(',','.');
|
||||
Show(S + s0);
|
||||
end;
|
||||
|
||||
|
|
@ -1380,6 +1381,144 @@ end;
|
|||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 1.3 ==
|
||||
|
||||
// == Âåðñèÿ 4.14. Äîïîëíåíèÿ ==
|
||||
|
||||
function ReadSeqInteger(): System.Collections.Generic.IEnumerable<integer>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqReal(): System.Collections.Generic.IEnumerable<real>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqString(): System.Collections.Generic.IEnumerable<string>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqInteger(n: integer): System.Collections.Generic.IEnumerable<integer>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqReal(n: integer): System.Collections.Generic.IEnumerable<real>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqString(n: integer): System.Collections.Generic.IEnumerable<string>;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrInteger(): array of integer;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrReal(): array of real;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrString(): array of string;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetReal()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadArrString(n: integer): array of string;
|
||||
begin
|
||||
result := Range(1, n).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
|
||||
/// Âûâîäèò ðàçìåð è ýëåìåíòû ïîñëåäîâàòåëüíîñòè
|
||||
procedure System.Collections.Generic.IEnumerable<T>.WriteAll();
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
PT4.Put(b.Length);
|
||||
foreach e : T in b do
|
||||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò ýëåìåíòû ïîñëåäîâàòåëüíîñòè
|
||||
procedure System.Collections.Generic.IEnumerable<T>.Write();
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
foreach e : T in b do
|
||||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ,
|
||||
/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè
|
||||
/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(cmt: string; selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
var b := self.Select(selector).ToArray();
|
||||
PT4.Show(cmt);
|
||||
PT4.Show((b.Length + ':').PadLeft(3));
|
||||
foreach var e in b do
|
||||
PT4.Show(e);
|
||||
PT4.ShowLine();
|
||||
result := self;
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ,
|
||||
/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè
|
||||
/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('', selector);
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show(cmt: string):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self;
|
||||
var a := self.ToArray;
|
||||
var s := '';
|
||||
var t := '';
|
||||
if a.Length > 0 then
|
||||
t := a[0].GetType.Name;
|
||||
if t = 'Double' then
|
||||
if D > 0 then
|
||||
s := '{0,0:f' + D + '}'
|
||||
else
|
||||
s := '{0,0:e}';
|
||||
a.Show(cmt, e -> s = '' ? e.ToString() :
|
||||
string.Format(s, e).Replace(',', '.'));
|
||||
end;
|
||||
|
||||
/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà
|
||||
/// ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû.
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show():
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('');
|
||||
end;
|
||||
|
||||
// == Êîíåö äîïîëíåíèé ê âåðñèè 4.14 ==
|
||||
|
||||
initialization
|
||||
__InitModule;
|
||||
finalization
|
||||
|
|
|
|||
|
|
@ -1,67 +0,0 @@
|
|||
unit PT4Linq;
|
||||
|
||||
uses PT4;
|
||||
|
||||
function ReadSeqInteger(): IEnumerable<integer>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetInteger()).ToArray();
|
||||
end;
|
||||
|
||||
function ReadSeqString(): IEnumerable<string>;
|
||||
begin
|
||||
result := Range(1, GetInteger()).Select(e -> GetString()).ToArray();
|
||||
end;
|
||||
|
||||
procedure System.Collections.Generic.IEnumerable<T>.Write();
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
PT4.Put(b.Length);
|
||||
foreach e : T in b do
|
||||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(cmt: string; selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
var b := self.Select(selector).ToArray();
|
||||
PT4.Show(cmt);
|
||||
PT4.Show((b.Length + ':').PadLeft(3));
|
||||
foreach var e in b do
|
||||
PT4.Show(e);
|
||||
PT4.ShowLine();
|
||||
result := self;
|
||||
end;
|
||||
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show
|
||||
(selector: System.Func<TSource, string>):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('', selector);
|
||||
end;
|
||||
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show(cmt: string):
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show(cmt, e -> e.ToString());
|
||||
end;
|
||||
|
||||
function System.Collections.Generic.IEnumerable<TSource>.Show():
|
||||
System.Collections.Generic.IEnumerable<TSource>;
|
||||
begin
|
||||
result := self.Show('');
|
||||
end;
|
||||
|
||||
function ReadAllLines(name: string):
|
||||
System.Collections.Generic.IEnumerable<string>;
|
||||
begin
|
||||
result := System.IO.File.ReadAllLines(name, Encoding.Default);
|
||||
end;
|
||||
|
||||
procedure WriteAllLines(name: string; seq:
|
||||
System.Collections.Generic.IEnumerable<string>);
|
||||
begin
|
||||
System.IO.File.WriteAllLines(name, seq.ToArray, Encoding.Default);
|
||||
end;
|
||||
|
||||
end.
|
||||
Loading…
Reference in a new issue