Удален PT4Linq

This commit is contained in:
miks1965 2015-10-05 22:50:08 +03:00
parent 4bcb93cbad
commit 0bdfe3d027
17 changed files with 416 additions and 225 deletions

View file

@ -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;

View file

@ -1,4 +1,4 @@
%MINOR%=0
%REVISION%=1043
%REVISION%=1050
%MAJOR%=3
%COREVERSION%=0

View file

@ -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);
}

View file

@ -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.

View file

@ -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]

View file

@ -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]

View file

@ -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}');

View file

@ -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.

View file

@ -1 +1 @@
!define VERSION '3.0.0.1043'
!define VERSION '3.0.0.1050'

View file

@ -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));

View file

@ -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"

View file

@ -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.

View file

@ -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

View file

@ -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.