work
This commit is contained in:
parent
c7d2fac674
commit
a8ee800840
|
|
@ -5,7 +5,7 @@ using System.Runtime.CompilerServices;
|
|||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("PascalABC.NET Compiler")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2005-2017 by Ivan Bondarev, Stanislav Mihalkovich")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2005-2016 by Ivan Bondarev, Stanislav Mihalkovich")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: AssemblyVersion(RevisionClass.FullVersion)]
|
||||
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "2";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "1386";
|
||||
public const string Revision = "1398";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=2
|
||||
%REVISION%=1386
|
||||
%REVISION%=1398
|
||||
%COREVERSION%=0
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// This CSharp output file generated by Gardens Point LEX
|
||||
// Version: 1.1.3.301
|
||||
// Machine: DESKTOP-8EAQPI9
|
||||
// DateTime: 11.02.2017 17:44:25
|
||||
// DateTime: 26.02.2017 19:20:17
|
||||
// UserName: ?????????
|
||||
// GPLEX input file <ABCPascal.lex>
|
||||
// GPLEX frame file <embedded resource>
|
||||
|
|
|
|||
|
|
@ -1938,6 +1938,14 @@ proc_func_decl_noclass
|
|||
{
|
||||
$$ = SyntaxTreeBuilder.BuildShortFuncDefinition($3 as formal_parameters, $4 as procedure_attributes_list, $2 as method_name, null, $6, @1.Merge(@3));
|
||||
}
|
||||
| tkFunction func_name fp_list tkColon fptype optional_method_modificators1 tkAssign func_decl_lambda tkSemiColon
|
||||
{
|
||||
$$ = SyntaxTreeBuilder.BuildShortFuncDefinition($3 as formal_parameters, $6 as procedure_attributes_list, $2 as method_name, $5 as type_definition, $8, @1.Merge(@5));
|
||||
}
|
||||
| tkFunction func_name fp_list optional_method_modificators1 tkAssign func_decl_lambda tkSemiColon
|
||||
{
|
||||
$$ = SyntaxTreeBuilder.BuildShortFuncDefinition($3 as formal_parameters, $4 as procedure_attributes_list, $2 as method_name, null, $6, @1.Merge(@3));
|
||||
}
|
||||
| tkProcedure proc_name fp_list optional_method_modificators1 tkAssign unlabelled_stmt tkSemiColon
|
||||
{
|
||||
if ($6 is empty_statement)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -160,5 +160,6 @@ script=
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.2.0.1386'
|
||||
!define VERSION '3.2.0.1398'
|
||||
|
|
|
|||
|
|
@ -912,6 +912,8 @@ begin
|
|||
if oldBounds.IntersectsWith(newBounds) then
|
||||
begin
|
||||
r := GRectangle.Union(oldBounds,newBounds);
|
||||
//TextOut(0,0,r.ToString);
|
||||
//r.Width := r.Width + 5;
|
||||
drawRect(r);
|
||||
end
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1217,25 +1217,6 @@ function Odd(i: uint64): boolean;
|
|||
function Cplx(re,im: real): Complex;
|
||||
/// Конструирует комплексное число по полярным координатам
|
||||
function CplxFromPolar(magnitude,phase: real) : Complex;
|
||||
/// Возвращает квадратный корень из комплексного числа
|
||||
function Sqrt(c: Complex): Complex;
|
||||
/// Возвращает модуль комплексного числа
|
||||
function Abs(c: Complex): Complex;
|
||||
/// Возвращает комплексно сопряженное число
|
||||
function Conjugate(c: Complex): Complex;
|
||||
/// Возвращает косинус комплексного числа
|
||||
function Cos(c: Complex): Complex;
|
||||
/// Возвращает экспоненту комплексного числа
|
||||
function Exp(c: Complex): Complex;
|
||||
/// Возвращает натуральный логарифм комплексного числа
|
||||
function Log(c: Complex): Complex;
|
||||
/// Возвращает десятичный логарифм комплексного числа
|
||||
function Log10(c: Complex): Complex;
|
||||
/// Возвращает степень комплексного числа
|
||||
function Power(c,power: Complex): Complex;
|
||||
/// Возвращает синус комплексного числа
|
||||
function Sin(c: Complex): Complex;
|
||||
|
||||
|
||||
// -----------------------------------------------------
|
||||
//>> Процедуры для работы со стандартными множествами # Subroutines for set of T
|
||||
|
|
@ -1715,6 +1696,8 @@ function SSet<T>(params a: array of T): SortedSet<T>;
|
|||
function SSet<T>(a: sequence of T): SortedSet<T>;
|
||||
/// Возвращает словарь пар элементов (ключ, значение)
|
||||
function Dict<TKey, TVal>(params pairs: array of KeyValuePair<TKey, TVal>): Dictionary<TKey, TVal>;
|
||||
/// Возвращает словарь пар элементов (ключ, значение)
|
||||
function Dict<TKey, TVal>(params pairs: array of (TKey, TVal)): Dictionary<TKey, TVal>;
|
||||
/// Возвращает пару элементов (ключ, значение)
|
||||
function KV<TKey, TVal>(key: TKey; value: TVal): KeyValuePair<TKey, TVal>;
|
||||
|
||||
|
|
@ -4257,6 +4240,13 @@ begin
|
|||
Result.Add(pairs[i].Key, pairs[i].Value);
|
||||
end;
|
||||
|
||||
function Dict<TKey, TVal>(params pairs: array of (TKey, TVal)): Dictionary<TKey, TVal>;
|
||||
begin
|
||||
Result := new Dictionary<TKey, TVal>();
|
||||
for var i := 0 to pairs.Length - 1 do
|
||||
Result.Add(pairs[i][0], pairs[i][1]);
|
||||
end;
|
||||
|
||||
function KV<TKey, TVal>(key: TKey; value: TVal): KeyValuePair<TKey, TVal>;
|
||||
begin
|
||||
Result := new KeyValuePair<TKey, TVal>(key, value);
|
||||
|
|
@ -7069,24 +7059,6 @@ function Cplx(re,im: real) := new Complex(re,im);
|
|||
|
||||
function CplxFromPolar(magnitude,phase: real) := Complex.FromPolarCoordinates(magnitude,phase);
|
||||
|
||||
function Sqrt(c: Complex) := Complex.Sqrt(c);
|
||||
|
||||
function Abs(c: Complex) := Complex.Abs(c);
|
||||
|
||||
function Conjugate(c: Complex) := Complex.Conjugate(c);
|
||||
|
||||
function Cos(c: Complex) := Complex.Cos(c);
|
||||
|
||||
function Exp(c: Complex) := Complex.Exp(c);
|
||||
|
||||
function Log(c: Complex) := Complex.Log(c);
|
||||
|
||||
function Log10(c: Complex) := Complex.Log10(c);
|
||||
|
||||
function Power(c,power: Complex) := Complex.Pow(c,power);
|
||||
|
||||
function Sin(c: Complex) := Complex.Sin(c);
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Dynamic arrays: implementation
|
||||
// -----------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
/// Модуль электронного задачника Programming Taskbook 4
|
||||
/// Модуль электронного задачника Programming Taskbook 4
|
||||
unit PT4;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Модуль для подключения задачника Programming Taskbook
|
||||
// Версия 4.15
|
||||
// Модуль для подключения задачника Programming Taskbook
|
||||
// Версия 4.15
|
||||
// Copyright (c) 2006-2008 DarkStar, SSM
|
||||
// Copyright (c) 2010 М.Э.Абрамян, дополнения к версии 1.3
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян, дополнения к версии 4.13
|
||||
// Copyright (c) 2015 М.Э.Абрамян, дополнения к версии 4.14
|
||||
// Copyright (c) 2016 М.Э.Абрамян, дополнения к версии 4.15
|
||||
// Электронный задачник Programming Taskbook Copyright (c)М.Э.Абрамян, 1998-2016
|
||||
// Copyright (c) 2010 М.Э.Абрамян, дополнения к версии 1.3
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян, дополнения к версии 4.13
|
||||
// Copyright (c) 2015 М.Э.Абрамян, дополнения к версии 4.14
|
||||
// Copyright (c) 2016 М.Э.Абрамян, дополнения к версии 4.15
|
||||
// Электронный задачник Programming Taskbook Copyright (c)М.Э.Абрамян, 1998-2017
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
{$apptype windows}
|
||||
|
|
@ -21,9 +21,9 @@ uses System,
|
|||
System.Collections,
|
||||
System.Runtime.InteropServices;
|
||||
type
|
||||
/// Тип указателя на узел списка
|
||||
/// Тип указателя на узел списка
|
||||
PNode = ^TNode;
|
||||
/// Тип узла списка
|
||||
/// Тип узла списка
|
||||
TNode = record
|
||||
Data: integer;
|
||||
Next,Prev,Left,Right,Parent: PNode;
|
||||
|
|
@ -79,107 +79,107 @@ type
|
|||
property Data: integer read getData write SetData;
|
||||
end;
|
||||
|
||||
/// Вывести формулировку задания
|
||||
/// Вывести формулировку задания
|
||||
procedure Task(name: string);
|
||||
|
||||
/// Ввести и вернуть значение целого типа
|
||||
/// Ввести и вернуть значение целого типа
|
||||
function GetInt: integer;
|
||||
/// Ввести и вернуть значение целого типа
|
||||
/// Ввести и вернуть значение целого типа
|
||||
function GetInteger: integer;
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
function GetReal: real;
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
function GetDouble: real;
|
||||
/// Ввести и вернуть значение символьного типа
|
||||
/// Ввести и вернуть значение символьного типа
|
||||
function GetChar: char;
|
||||
/// Ввести и вернуть значение строкового типа
|
||||
/// Ввести и вернуть значение строкового типа
|
||||
function GetString: string;
|
||||
/// Ввести и вернуть значение логического типа
|
||||
/// Ввести и вернуть значение логического типа
|
||||
function GetBool: boolean;
|
||||
/// Ввести и вернуть значение логического типа
|
||||
/// Ввести и вернуть значение логического типа
|
||||
function GetBoolean: boolean;
|
||||
/// Ввести и вернуть значение типа Node
|
||||
/// Ввести и вернуть значение типа Node
|
||||
function GetNode: Node;
|
||||
/// Ввести и вернуть значение типа PNode
|
||||
/// Ввести и вернуть значение типа PNode
|
||||
function GetPNode: PNode;
|
||||
|
||||
/// Возвращает введенное значение типа integer
|
||||
/// Возвращает введенное значение типа integer
|
||||
function ReadInteger: integer;
|
||||
/// Возвращает введенное значение типа real
|
||||
/// Возвращает введенное значение типа real
|
||||
function ReadReal: real;
|
||||
/// Возвращает введенное значение типа char
|
||||
/// Возвращает введенное значение типа char
|
||||
function ReadChar: char;
|
||||
/// Возвращает введенное значение типа string
|
||||
/// Возвращает введенное значение типа string
|
||||
function ReadString: string;
|
||||
/// Возвращает введенное значение типа boolean
|
||||
/// Возвращает введенное значение типа boolean
|
||||
function ReadBoolean: boolean;
|
||||
/// Возвращает введенное значение типа PNode
|
||||
/// Возвращает введенное значение типа PNode
|
||||
function ReadPNode: PNode;
|
||||
/// Возвращает введенное значение типа Node
|
||||
/// Возвращает введенное значение типа Node
|
||||
function ReadNode: Node;
|
||||
|
||||
/// Возвращает введенное значение типа integer
|
||||
/// Возвращает введенное значение типа integer
|
||||
function ReadlnInteger: integer;
|
||||
/// Возвращает введенное значение типа real
|
||||
/// Возвращает введенное значение типа real
|
||||
function ReadlnReal: real;
|
||||
/// Возвращает введенное значение типа char
|
||||
/// Возвращает введенное значение типа char
|
||||
function ReadlnChar: char;
|
||||
/// Возвращает введенное значение типа string
|
||||
/// Возвращает введенное значение типа string
|
||||
function ReadlnString: string;
|
||||
/// Возвращает введенное значение типа boolean
|
||||
/// Возвращает введенное значение типа boolean
|
||||
function ReadlnBoolean: boolean;
|
||||
/// Возвращает введенное значение типа PNode
|
||||
/// Возвращает введенное значение типа PNode
|
||||
function ReadlnPNode: PNode;
|
||||
/// Возвращает введенное значение типа Node
|
||||
/// Возвращает введенное значение типа Node
|
||||
function ReadlnNode: Node;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadInteger(prompt: string): integer;
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadReal(prompt: string): real;
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadChar(prompt: string): char;
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadString(prompt: string): string;
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadBoolean(prompt: string): boolean;
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadPNode(prompt: string): PNode;
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadNode(prompt: string): Node;
|
||||
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnInteger(prompt: string): integer;
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnReal(prompt: string): real;
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnChar(prompt: string): char;
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnString(prompt: string): string;
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnBoolean(prompt: string): boolean;
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnPNode(prompt: string): PNode;
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnNode(prompt: string): Node;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
procedure GetR(var param: real);
|
||||
procedure GetN(var param: integer);
|
||||
|
|
@ -206,9 +206,9 @@ procedure Put(param: boolean);
|
|||
procedure Put(param: PNode);
|
||||
procedure Put(param: Node);
|
||||
|
||||
//Ввод этих данных не поддерживается
|
||||
//Ввод этих данных не поддерживается
|
||||
///- read(a,b,...)
|
||||
/// Вводит значения a,b,... из окна электронного задачника
|
||||
/// Вводит значения a,b,... из окна электронного задачника
|
||||
procedure read(var x: byte);
|
||||
///--
|
||||
procedure read(var x: shortint);
|
||||
|
|
@ -246,20 +246,20 @@ procedure Readln;
|
|||
procedure Print(params args: array of object);
|
||||
procedure Println(params args: array of object);
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
procedure Println(s: string);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
/// Освобождает память, выделенную динамически, на которую указывает p
|
||||
/// Освобождает память, выделенную динамически, на которую указывает p
|
||||
procedure Dispose(p: pointer);
|
||||
|
||||
// Фиктивная пустая процедура - для Intellisense
|
||||
// Нет, нельзя пользоваться - закрываются процедуры write системного модуля
|
||||
// Фиктивная пустая процедура - для Intellisense
|
||||
// Нет, нельзя пользоваться - закрываются процедуры write системного модуля
|
||||
///- write(a,b,...)
|
||||
/// Выводит значения a,b,... в окно электронного задачника
|
||||
/// Выводит значения a,b,... в окно электронного задачника
|
||||
//procedure write;
|
||||
|
||||
///--
|
||||
|
|
@ -267,162 +267,162 @@ procedure __InitModule__;
|
|||
///--
|
||||
procedure __FinalizeModule__;
|
||||
|
||||
// == Версия 1.3. Дополнения ==
|
||||
// == Версия 1.3. Дополнения ==
|
||||
|
||||
/// Выводит строку S в разделе отладки окна задачника
|
||||
/// Выводит строку S в разделе отладки окна задачника
|
||||
procedure Show(S: string);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
procedure Show(S: string; A: integer; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
procedure Show(S: string; A: real; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
procedure Show(S: string; A: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
procedure Show(S: string; A: real);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
procedure Show(A: integer; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
procedure Show(A: real; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
procedure Show(A: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
procedure Show(A: real);
|
||||
|
||||
/// Выполняет переход на новую экранную строку
|
||||
/// в разделе отладки окна задачника
|
||||
/// Выполняет переход на новую экранную строку
|
||||
/// в разделе отладки окна задачника
|
||||
procedure ShowLine;
|
||||
|
||||
/// Выводит строку S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит строку S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: integer; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: real; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: real);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: integer; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: real; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: real);
|
||||
|
||||
/// Настраивает формат вывода вещественных чисел в разделе отладки
|
||||
/// окна задачника. Если N > 0, то число выводится в формате
|
||||
/// с фиксированной точкой и N дробными знаками. Если N = 0,
|
||||
/// то число выводится в экспоненциальном формате, число дробных
|
||||
/// знаков определяется шириной поля вывода
|
||||
/// Настраивает формат вывода вещественных чисел в разделе отладки
|
||||
/// окна задачника. Если N > 0, то число выводится в формате
|
||||
/// с фиксированной точкой и N дробными знаками. Если N = 0,
|
||||
/// то число выводится в экспоненциальном формате, число дробных
|
||||
/// знаков определяется шириной поля вывода
|
||||
procedure SetPrecision(N: integer);
|
||||
|
||||
/// Обеспечивает автоматическое скрытие всех разделов
|
||||
/// окна задачника, кроме раздела отладки
|
||||
/// Обеспечивает автоматическое скрытие всех разделов
|
||||
/// окна задачника, кроме раздела отладки
|
||||
procedure HideTask;
|
||||
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
|
||||
// == Версия 4.14. Дополнения ==
|
||||
// == Версия 4.14. Дополнения ==
|
||||
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде массива
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде массива
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде последовательности
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде последовательности
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqInteger(): sequence of integer;
|
||||
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqReal(): sequence of real;
|
||||
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqString(): sequence of string;
|
||||
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrInteger(): array of integer;
|
||||
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrReal(): array of real;
|
||||
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrString(): array of string;
|
||||
|
||||
/// Вводит целую матрицу размера m на n по строкам
|
||||
/// Вводит целую матрицу размера m на n по строкам
|
||||
function ReadMatrInteger(m,n: integer): array [,] of integer;
|
||||
|
||||
/// Вводит размеры матрицы и затем целую матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем целую матрицу указанных размеров по строкам
|
||||
function ReadMatrInteger(): array [,] of integer;
|
||||
|
||||
/// Вводит вещественную матрицу размера m на n по строкам
|
||||
/// Вводит вещественную матрицу размера m на n по строкам
|
||||
function ReadMatrReal(m,n: integer): array [,] of real;
|
||||
|
||||
/// Вводит размеры матрицы и затем вещественную матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем вещественную матрицу указанных размеров по строкам
|
||||
function ReadMatrReal(): array [,] of real;
|
||||
|
||||
/// Вводит матрицу из строк размера m на n по строкам
|
||||
/// Вводит матрицу из строк размера m на n по строкам
|
||||
function ReadMatrString(m,n: integer): array [,] of string;
|
||||
|
||||
/// Вводит размеры матрицы и затем строковую матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем строковую матрицу указанных размеров по строкам
|
||||
function ReadMatrString(): array [,] of string;
|
||||
|
||||
procedure ReadMatr(var m, n: integer; var a: array [,] of integer);
|
||||
|
|
@ -467,7 +467,7 @@ procedure WriteMatr<T>(a: array of array of T);
|
|||
|
||||
procedure WriteMatr<T>(a: List<List<T>>);
|
||||
|
||||
// == Дополнения 2016.07
|
||||
// == Дополнения 2016.07
|
||||
|
||||
procedure PrintMatr<T>(a: array[,] of T);
|
||||
|
||||
|
|
@ -475,16 +475,16 @@ procedure PrintMatr<T>(a: array of array of T);
|
|||
|
||||
procedure PrintMatr<T>(a: List<List<T>>);
|
||||
|
||||
// == Конец дополнений 2016.07
|
||||
// == Конец дополнений 2016.07
|
||||
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
|
||||
implementation
|
||||
|
||||
const
|
||||
NotSupportedReadTypeMessage = 'Ввод данных типа {0} не поддерживается';
|
||||
NotSupportedWriteTypeMessage = 'Вывод данных типа {0} не поддерживается';
|
||||
eMessage = 'Попытка обращения к объекту Node после вызова его метода Dispose';
|
||||
NotSupportedReadTypeMessage = 'Ввод данных типа {0} не поддерживается';
|
||||
NotSupportedWriteTypeMessage = 'Вывод данных типа {0} не поддерживается';
|
||||
eMessage = 'Попытка обращения к объекту Node после вызова его метода Dispose';
|
||||
|
||||
var
|
||||
loadNodes: ArrayList;
|
||||
|
|
@ -922,7 +922,7 @@ begin
|
|||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Функции Get
|
||||
// Функции Get
|
||||
// -----------------------------------------------------
|
||||
function GetInt: integer;
|
||||
var val:integer;
|
||||
|
|
@ -958,7 +958,7 @@ end;
|
|||
function GetString: string;
|
||||
var val: System.Text.StringBuilder;
|
||||
begin
|
||||
val := new System.Text.StringBuilder(200);//TODO почему 200?
|
||||
val := new System.Text.StringBuilder(200);//TODO почему 200?
|
||||
_gets(val);
|
||||
result := val.ToString;
|
||||
end;
|
||||
|
|
@ -989,8 +989,8 @@ var
|
|||
p: IntPtr;
|
||||
sNode: InternalNode;
|
||||
begin
|
||||
//raise new NotSupportedException('Работа с динамическими структурами задачника PT4 не поддерживается в этой версии компилятора. Исправление ошибки планируется в следуйщей версии');
|
||||
//result := new PT4Node(sNode, p);// fixme здесь ошибка генерации кода!
|
||||
//raise new NotSupportedException('Работа с динамическими структурами задачника PT4 не поддерживается в этой версии компилятора. Исправление ошибки планируется в следуйщей версии');
|
||||
//result := new PT4Node(sNode, p);// fixme здесь ошибка генерации кода!
|
||||
p := IntPtr.Zero;
|
||||
sNode.Data := 0;
|
||||
sNode.Next := IntPtr.Zero;
|
||||
|
|
@ -1089,7 +1089,7 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
function ReadInteger(prompt: string): integer;
|
||||
begin
|
||||
|
|
@ -1161,10 +1161,10 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Процедуры Put
|
||||
// Процедуры Put
|
||||
// -----------------------------------------------------
|
||||
procedure PutInt(val: integer);
|
||||
begin
|
||||
|
|
@ -1213,7 +1213,7 @@ begin
|
|||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Генерация исключений
|
||||
// Генерация исключений
|
||||
// -----------------------------------------------------
|
||||
procedure RaisePTAndCheckPT(e: Exception);
|
||||
begin
|
||||
|
|
@ -1338,7 +1338,7 @@ begin
|
|||
Print(args);
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
begin
|
||||
|
|
@ -1350,7 +1350,7 @@ begin
|
|||
write(s);
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
{procedure write;
|
||||
begin
|
||||
|
|
@ -1423,7 +1423,7 @@ begin
|
|||
if InfoT=0 then
|
||||
Console.WriteLine(InfoS);
|
||||
FreePT;
|
||||
// == Начало дополнений к версии 4.13 ==
|
||||
// == Начало дополнений к версии 4.13 ==
|
||||
var fpt := FinishPT;
|
||||
if fpt = 1 then exit;
|
||||
var asm := System.Reflection.Assembly.GetExecutingAssembly;
|
||||
|
|
@ -1432,6 +1432,15 @@ begin
|
|||
var prg := asm.GetType(nm+'.Program');
|
||||
var solveproc := prg.GetMethod('$Main');
|
||||
var initproc := prg.GetMethod('$_InitVariables_');
|
||||
if (solveproc = nil) or (initproc = nil) then
|
||||
foreach var prg0 in asm.GetTypes() do
|
||||
begin
|
||||
prg := prg0;
|
||||
solveproc := prg0.GetMethod('$Main');
|
||||
initproc := prg0.GetMethod('$_InitVariables_');
|
||||
if (solveproc <> nil) and (initproc <> nil) then
|
||||
break;
|
||||
end;
|
||||
var examunit := asm.GetType('PT4Exam.PT4Exam');
|
||||
var finexamproc: System.Reflection.MethodInfo := nil;
|
||||
if examunit <> nil then
|
||||
|
|
@ -1441,7 +1450,7 @@ begin
|
|||
begin
|
||||
StartPT(512);
|
||||
try
|
||||
foreach var f in prg.GetFields do
|
||||
foreach var f in prg.GetFields() do
|
||||
if not f.Name.StartsWith('$') then
|
||||
try
|
||||
f.SetValue(nil, nil);
|
||||
|
|
@ -1452,11 +1461,7 @@ begin
|
|||
solveproc.Invoke(nil,nil);
|
||||
except
|
||||
on e: Exception do
|
||||
begin
|
||||
//if e.InnerException<>nil then
|
||||
RaisePT('HHH', 'ggg');
|
||||
//RaisePT(e.InnerException.GetType.ToString, e.InnerException.Message);
|
||||
end;
|
||||
RaisePT(e.InnerException.GetType.ToString, e.InnerException.Message);
|
||||
end;
|
||||
if finexamproc <> nil then
|
||||
finexamproc.Invoke(nil,nil);
|
||||
|
|
@ -1465,10 +1470,10 @@ begin
|
|||
inc(i);
|
||||
fpt := FinishPT;
|
||||
end;
|
||||
// == Конец дополнений к версии 4.13 ==
|
||||
// == Конец дополнений к версии 4.13 ==
|
||||
end;
|
||||
|
||||
// == Версия 1.3. Дополнения ==
|
||||
// == Версия 1.3. Дополнения ==
|
||||
|
||||
var
|
||||
D: integer := 2;
|
||||
|
|
@ -1590,9 +1595,9 @@ begin
|
|||
D := N;
|
||||
end;
|
||||
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
|
||||
// == Версия 4.14. Дополнения ==
|
||||
// == Версия 4.14. Дополнения ==
|
||||
|
||||
function ReadSeqInteger(): sequence of integer;
|
||||
begin
|
||||
|
|
@ -1864,7 +1869,7 @@ begin
|
|||
write(a[i][j]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы последовательности
|
||||
/// Выводит размер и элементы последовательности
|
||||
procedure WriteAll<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1873,7 +1878,7 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы последовательности
|
||||
/// Выводит элементы последовательности
|
||||
procedure Write<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1881,14 +1886,14 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы динамического массива
|
||||
/// Выводит элементы динамического массива
|
||||
procedure Write<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.Length-1 do
|
||||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы матрицы
|
||||
/// Выводит элементы матрицы
|
||||
procedure Write<T>(self: array [,] of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.GetLength(0)-1 do
|
||||
|
|
@ -1896,7 +1901,7 @@ begin
|
|||
PT4.Put(self[i,j]);
|
||||
end;
|
||||
|
||||
// == Дополнения 2016.07
|
||||
// == Дополнения 2016.07
|
||||
|
||||
procedure PrintMatr<T>(a: array[,] of T);
|
||||
begin
|
||||
|
|
@ -1919,7 +1924,7 @@ begin
|
|||
write(a[i][j]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы последовательности
|
||||
/// Выводит размер и элементы последовательности
|
||||
procedure PrintAll<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1928,7 +1933,7 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы динамического массива
|
||||
/// Выводит размер и элементы динамического массива
|
||||
procedure PrintAll<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
PT4.Put(self.Length);
|
||||
|
|
@ -1936,7 +1941,7 @@ begin
|
|||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы динамического массива
|
||||
/// Выводит размер и элементы динамического массива
|
||||
procedure WriteAll<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
PT4.Put(self.Length);
|
||||
|
|
@ -1944,7 +1949,7 @@ begin
|
|||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы последовательности
|
||||
/// Выводит элементы последовательности
|
||||
procedure Writeln<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1952,14 +1957,14 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы динамического массива
|
||||
/// Выводит элементы динамического массива
|
||||
procedure Writeln<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.Length-1 do
|
||||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы матрицы
|
||||
/// Выводит элементы матрицы
|
||||
procedure Writeln<T>(self: array [,] of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.GetLength(0)-1 do
|
||||
|
|
@ -1967,13 +1972,13 @@ begin
|
|||
PT4.Put(self[i,j]);
|
||||
end;
|
||||
|
||||
// == Конец дополнений 2016.07
|
||||
// == Конец дополнений 2016.07
|
||||
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
|
||||
function Show<TSource>(self: sequence of TSource; cmt: string; selector: System.Func<TSource, string>): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
|
|
@ -1986,17 +1991,17 @@ begin
|
|||
result := self;
|
||||
end;
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
function Show<TSource>(Self: sequence of TSource; selector: System.Func<TSource, string>): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self.Show('', selector);
|
||||
end;
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и ее элементы
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и ее элементы
|
||||
function Show<TSource>(Self: sequence of TSource; cmt: string): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self;
|
||||
|
|
@ -2015,14 +2020,14 @@ begin
|
|||
end;
|
||||
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и ее элементы.
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и ее элементы.
|
||||
function Show<TSource>(Self: sequence of TSource): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self.Show('');
|
||||
end;
|
||||
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
|
||||
initialization
|
||||
__InitModule;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/// Модуль электронного задачника PT for Exam
|
||||
/// Модуль электронного задачника PT for Exam
|
||||
unit PT4Exam;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Модуль для подключения задачника PT for Exam
|
||||
// Версия 1.1
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян
|
||||
// Версия 1.2
|
||||
// Copyright (c) 2014-2017 М.Э.Абрамян
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
@ -13,6 +13,30 @@ interface
|
|||
procedure Task(name: string);
|
||||
procedure FinExam;
|
||||
|
||||
//1.2
|
||||
procedure Show(S: string);
|
||||
procedure Show(S: string; A: Integer; W: Integer);
|
||||
procedure Show(S: string; A: Real; W: Integer);
|
||||
procedure Show(S: string; A: Integer);
|
||||
procedure Show(S: string; A: Real);
|
||||
procedure Show(A: Integer; W: Integer);
|
||||
procedure Show(A: Real; W: Integer);
|
||||
procedure Show(A: Integer);
|
||||
procedure Show(A: Real);
|
||||
procedure ShowLine;
|
||||
procedure ShowLine(S: string);
|
||||
procedure ShowLine(S: string; A: Integer; W: Integer);
|
||||
procedure ShowLine(S: string; A: Real; W: Integer);
|
||||
procedure ShowLine(S: string; A: Integer);
|
||||
procedure ShowLine(S: string; A: Real);
|
||||
procedure ShowLine(A: Integer; W: Integer);
|
||||
procedure ShowLine(A: Real; W: Integer);
|
||||
procedure ShowLine(A: Integer);
|
||||
procedure ShowLine(A: Real);
|
||||
procedure SetPrecision(N: integer);
|
||||
procedure HideTask;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
|
|
@ -72,6 +96,112 @@ begin
|
|||
NextTask := false;
|
||||
end;
|
||||
|
||||
procedure Show(S: string);
|
||||
begin
|
||||
PT4.Show(S);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.Show(S, A, W);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Real; W: Integer);
|
||||
begin
|
||||
PT4.Show(S, A, W);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Integer);
|
||||
begin
|
||||
PT4.Show(S, A);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Real);
|
||||
begin
|
||||
PT4.Show(S, A);
|
||||
end;
|
||||
|
||||
procedure Show(A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.Show(A, W);
|
||||
end;
|
||||
|
||||
procedure Show(A: Real; W: Integer);
|
||||
begin
|
||||
PT4.Show(A, W);
|
||||
end;
|
||||
|
||||
procedure Show(A: Integer);
|
||||
begin
|
||||
PT4.Show(A);
|
||||
end;
|
||||
|
||||
procedure Show(A: Real);
|
||||
begin
|
||||
PT4.Show(A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string);
|
||||
begin
|
||||
PT4.ShowLine(S);
|
||||
end;
|
||||
|
||||
procedure ShowLine;
|
||||
begin
|
||||
PT4.ShowLine;
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Real; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Real);
|
||||
begin
|
||||
PT4.ShowLine(S, A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Real; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Real);
|
||||
begin
|
||||
PT4.ShowLine(A);
|
||||
end;
|
||||
|
||||
procedure HideTask;
|
||||
begin
|
||||
PT4.HideTask;
|
||||
end;
|
||||
|
||||
procedure SetPrecision(N: Integer);
|
||||
begin
|
||||
PT4.SetPrecision(N);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
|
||||
finalization
|
||||
|
|
|
|||
8
TestSuite/CompilationSamples/ShortFunLambdaProc.pas
Normal file
8
TestSuite/CompilationSamples/ShortFunLambdaProc.pas
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
function f: procedure := ()->write(1);
|
||||
|
||||
function f1: integer->integer := x->x;
|
||||
|
||||
begin
|
||||
f()();
|
||||
Print(f1()(2));
|
||||
end.
|
||||
|
|
@ -912,6 +912,8 @@ begin
|
|||
if oldBounds.IntersectsWith(newBounds) then
|
||||
begin
|
||||
r := GRectangle.Union(oldBounds,newBounds);
|
||||
//TextOut(0,0,r.ToString);
|
||||
//r.Width := r.Width + 5;
|
||||
drawRect(r);
|
||||
end
|
||||
else
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1217,25 +1217,6 @@ function Odd(i: uint64): boolean;
|
|||
function Cplx(re,im: real): Complex;
|
||||
/// Конструирует комплексное число по полярным координатам
|
||||
function CplxFromPolar(magnitude,phase: real) : Complex;
|
||||
/// Возвращает квадратный корень из комплексного числа
|
||||
function Sqrt(c: Complex): Complex;
|
||||
/// Возвращает модуль комплексного числа
|
||||
function Abs(c: Complex): Complex;
|
||||
/// Возвращает комплексно сопряженное число
|
||||
function Conjugate(c: Complex): Complex;
|
||||
/// Возвращает косинус комплексного числа
|
||||
function Cos(c: Complex): Complex;
|
||||
/// Возвращает экспоненту комплексного числа
|
||||
function Exp(c: Complex): Complex;
|
||||
/// Возвращает натуральный логарифм комплексного числа
|
||||
function Log(c: Complex): Complex;
|
||||
/// Возвращает десятичный логарифм комплексного числа
|
||||
function Log10(c: Complex): Complex;
|
||||
/// Возвращает степень комплексного числа
|
||||
function Power(c,power: Complex): Complex;
|
||||
/// Возвращает синус комплексного числа
|
||||
function Sin(c: Complex): Complex;
|
||||
|
||||
|
||||
// -----------------------------------------------------
|
||||
//>> Процедуры для работы со стандартными множествами # Subroutines for set of T
|
||||
|
|
@ -1715,6 +1696,8 @@ function SSet<T>(params a: array of T): SortedSet<T>;
|
|||
function SSet<T>(a: sequence of T): SortedSet<T>;
|
||||
/// Возвращает словарь пар элементов (ключ, значение)
|
||||
function Dict<TKey, TVal>(params pairs: array of KeyValuePair<TKey, TVal>): Dictionary<TKey, TVal>;
|
||||
/// Возвращает словарь пар элементов (ключ, значение)
|
||||
function Dict<TKey, TVal>(params pairs: array of (TKey, TVal)): Dictionary<TKey, TVal>;
|
||||
/// Возвращает пару элементов (ключ, значение)
|
||||
function KV<TKey, TVal>(key: TKey; value: TVal): KeyValuePair<TKey, TVal>;
|
||||
|
||||
|
|
@ -4257,6 +4240,13 @@ begin
|
|||
Result.Add(pairs[i].Key, pairs[i].Value);
|
||||
end;
|
||||
|
||||
function Dict<TKey, TVal>(params pairs: array of (TKey, TVal)): Dictionary<TKey, TVal>;
|
||||
begin
|
||||
Result := new Dictionary<TKey, TVal>();
|
||||
for var i := 0 to pairs.Length - 1 do
|
||||
Result.Add(pairs[i][0], pairs[i][1]);
|
||||
end;
|
||||
|
||||
function KV<TKey, TVal>(key: TKey; value: TVal): KeyValuePair<TKey, TVal>;
|
||||
begin
|
||||
Result := new KeyValuePair<TKey, TVal>(key, value);
|
||||
|
|
@ -7069,24 +7059,6 @@ function Cplx(re,im: real) := new Complex(re,im);
|
|||
|
||||
function CplxFromPolar(magnitude,phase: real) := Complex.FromPolarCoordinates(magnitude,phase);
|
||||
|
||||
function Sqrt(c: Complex) := Complex.Sqrt(c);
|
||||
|
||||
function Abs(c: Complex) := Complex.Abs(c);
|
||||
|
||||
function Conjugate(c: Complex) := Complex.Conjugate(c);
|
||||
|
||||
function Cos(c: Complex) := Complex.Cos(c);
|
||||
|
||||
function Exp(c: Complex) := Complex.Exp(c);
|
||||
|
||||
function Log(c: Complex) := Complex.Log(c);
|
||||
|
||||
function Log10(c: Complex) := Complex.Log10(c);
|
||||
|
||||
function Power(c,power: Complex) := Complex.Pow(c,power);
|
||||
|
||||
function Sin(c: Complex) := Complex.Sin(c);
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Dynamic arrays: implementation
|
||||
// -----------------------------------------------------
|
||||
|
|
|
|||
409
bin/Lib/PT4.pas
409
bin/Lib/PT4.pas
|
|
@ -1,15 +1,15 @@
|
|||
/// Модуль электронного задачника Programming Taskbook 4
|
||||
/// Модуль электронного задачника Programming Taskbook 4
|
||||
unit PT4;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Модуль для подключения задачника Programming Taskbook
|
||||
// Версия 4.15
|
||||
// Модуль для подключения задачника Programming Taskbook
|
||||
// Версия 4.15
|
||||
// Copyright (c) 2006-2008 DarkStar, SSM
|
||||
// Copyright (c) 2010 М.Э.Абрамян, дополнения к версии 1.3
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян, дополнения к версии 4.13
|
||||
// Copyright (c) 2015 М.Э.Абрамян, дополнения к версии 4.14
|
||||
// Copyright (c) 2016 М.Э.Абрамян, дополнения к версии 4.15
|
||||
// Электронный задачник Programming Taskbook Copyright (c)М.Э.Абрамян, 1998-2016
|
||||
// Copyright (c) 2010 М.Э.Абрамян, дополнения к версии 1.3
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян, дополнения к версии 4.13
|
||||
// Copyright (c) 2015 М.Э.Абрамян, дополнения к версии 4.14
|
||||
// Copyright (c) 2016 М.Э.Абрамян, дополнения к версии 4.15
|
||||
// Электронный задачник Programming Taskbook Copyright (c)М.Э.Абрамян, 1998-2017
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
{$apptype windows}
|
||||
|
|
@ -21,9 +21,9 @@ uses System,
|
|||
System.Collections,
|
||||
System.Runtime.InteropServices;
|
||||
type
|
||||
/// Тип указателя на узел списка
|
||||
/// Тип указателя на узел списка
|
||||
PNode = ^TNode;
|
||||
/// Тип узла списка
|
||||
/// Тип узла списка
|
||||
TNode = record
|
||||
Data: integer;
|
||||
Next,Prev,Left,Right,Parent: PNode;
|
||||
|
|
@ -79,107 +79,107 @@ type
|
|||
property Data: integer read getData write SetData;
|
||||
end;
|
||||
|
||||
/// Вывести формулировку задания
|
||||
/// Вывести формулировку задания
|
||||
procedure Task(name: string);
|
||||
|
||||
/// Ввести и вернуть значение целого типа
|
||||
/// Ввести и вернуть значение целого типа
|
||||
function GetInt: integer;
|
||||
/// Ввести и вернуть значение целого типа
|
||||
/// Ввести и вернуть значение целого типа
|
||||
function GetInteger: integer;
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
function GetReal: real;
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
/// Ввести и вернуть значение вещественного типа
|
||||
function GetDouble: real;
|
||||
/// Ввести и вернуть значение символьного типа
|
||||
/// Ввести и вернуть значение символьного типа
|
||||
function GetChar: char;
|
||||
/// Ввести и вернуть значение строкового типа
|
||||
/// Ввести и вернуть значение строкового типа
|
||||
function GetString: string;
|
||||
/// Ввести и вернуть значение логического типа
|
||||
/// Ввести и вернуть значение логического типа
|
||||
function GetBool: boolean;
|
||||
/// Ввести и вернуть значение логического типа
|
||||
/// Ввести и вернуть значение логического типа
|
||||
function GetBoolean: boolean;
|
||||
/// Ввести и вернуть значение типа Node
|
||||
/// Ввести и вернуть значение типа Node
|
||||
function GetNode: Node;
|
||||
/// Ввести и вернуть значение типа PNode
|
||||
/// Ввести и вернуть значение типа PNode
|
||||
function GetPNode: PNode;
|
||||
|
||||
/// Возвращает введенное значение типа integer
|
||||
/// Возвращает введенное значение типа integer
|
||||
function ReadInteger: integer;
|
||||
/// Возвращает введенное значение типа real
|
||||
/// Возвращает введенное значение типа real
|
||||
function ReadReal: real;
|
||||
/// Возвращает введенное значение типа char
|
||||
/// Возвращает введенное значение типа char
|
||||
function ReadChar: char;
|
||||
/// Возвращает введенное значение типа string
|
||||
/// Возвращает введенное значение типа string
|
||||
function ReadString: string;
|
||||
/// Возвращает введенное значение типа boolean
|
||||
/// Возвращает введенное значение типа boolean
|
||||
function ReadBoolean: boolean;
|
||||
/// Возвращает введенное значение типа PNode
|
||||
/// Возвращает введенное значение типа PNode
|
||||
function ReadPNode: PNode;
|
||||
/// Возвращает введенное значение типа Node
|
||||
/// Возвращает введенное значение типа Node
|
||||
function ReadNode: Node;
|
||||
|
||||
/// Возвращает введенное значение типа integer
|
||||
/// Возвращает введенное значение типа integer
|
||||
function ReadlnInteger: integer;
|
||||
/// Возвращает введенное значение типа real
|
||||
/// Возвращает введенное значение типа real
|
||||
function ReadlnReal: real;
|
||||
/// Возвращает введенное значение типа char
|
||||
/// Возвращает введенное значение типа char
|
||||
function ReadlnChar: char;
|
||||
/// Возвращает введенное значение типа string
|
||||
/// Возвращает введенное значение типа string
|
||||
function ReadlnString: string;
|
||||
/// Возвращает введенное значение типа boolean
|
||||
/// Возвращает введенное значение типа boolean
|
||||
function ReadlnBoolean: boolean;
|
||||
/// Возвращает введенное значение типа PNode
|
||||
/// Возвращает введенное значение типа PNode
|
||||
function ReadlnPNode: PNode;
|
||||
/// Возвращает введенное значение типа Node
|
||||
/// Возвращает введенное значение типа Node
|
||||
function ReadlnNode: Node;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadInteger(prompt: string): integer;
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadReal(prompt: string): real;
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadChar(prompt: string): char;
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadString(prompt: string): string;
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadBoolean(prompt: string): boolean;
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadPNode(prompt: string): PNode;
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadNode(prompt: string): Node;
|
||||
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа integer.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnInteger(prompt: string): integer;
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа real.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnReal(prompt: string): real;
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа char.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnChar(prompt: string): char;
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа string.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnString(prompt: string): string;
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа boolean.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnBoolean(prompt: string): boolean;
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа PNode.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnPNode(prompt: string): PNode;
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
/// Возвращает введенное значение типа Node.
|
||||
/// Строковое приглашение prompt игнорируется
|
||||
function ReadlnNode(prompt: string): Node;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
procedure GetR(var param: real);
|
||||
procedure GetN(var param: integer);
|
||||
|
|
@ -206,9 +206,9 @@ procedure Put(param: boolean);
|
|||
procedure Put(param: PNode);
|
||||
procedure Put(param: Node);
|
||||
|
||||
//Ввод этих данных не поддерживается
|
||||
//Ввод этих данных не поддерживается
|
||||
///- read(a,b,...)
|
||||
/// Вводит значения a,b,... из окна электронного задачника
|
||||
/// Вводит значения a,b,... из окна электронного задачника
|
||||
procedure read(var x: byte);
|
||||
///--
|
||||
procedure read(var x: shortint);
|
||||
|
|
@ -246,20 +246,20 @@ procedure Readln;
|
|||
procedure Print(params args: array of object);
|
||||
procedure Println(params args: array of object);
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
procedure Println(s: string);
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
/// Освобождает память, выделенную динамически, на которую указывает p
|
||||
/// Освобождает память, выделенную динамически, на которую указывает p
|
||||
procedure Dispose(p: pointer);
|
||||
|
||||
// Фиктивная пустая процедура - для Intellisense
|
||||
// Нет, нельзя пользоваться - закрываются процедуры write системного модуля
|
||||
// Фиктивная пустая процедура - для Intellisense
|
||||
// Нет, нельзя пользоваться - закрываются процедуры write системного модуля
|
||||
///- write(a,b,...)
|
||||
/// Выводит значения a,b,... в окно электронного задачника
|
||||
/// Выводит значения a,b,... в окно электронного задачника
|
||||
//procedure write;
|
||||
|
||||
///--
|
||||
|
|
@ -267,162 +267,162 @@ procedure __InitModule__;
|
|||
///--
|
||||
procedure __FinalizeModule__;
|
||||
|
||||
// == Версия 1.3. Дополнения ==
|
||||
// == Версия 1.3. Дополнения ==
|
||||
|
||||
/// Выводит строку S в разделе отладки окна задачника
|
||||
/// Выводит строку S в разделе отладки окна задачника
|
||||
procedure Show(S: string);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
procedure Show(S: string; A: integer; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций
|
||||
procedure Show(S: string; A: real; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
procedure Show(S: string; A: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника
|
||||
procedure Show(S: string; A: real);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
procedure Show(A: integer; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций
|
||||
procedure Show(A: real; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
procedure Show(A: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
/// Выводит число A в разделе отладки окна задачника
|
||||
procedure Show(A: real);
|
||||
|
||||
/// Выполняет переход на новую экранную строку
|
||||
/// в разделе отладки окна задачника
|
||||
/// Выполняет переход на новую экранную строку
|
||||
/// в разделе отладки окна задачника
|
||||
procedure ShowLine;
|
||||
|
||||
/// Выводит строку S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит строку S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: integer; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки
|
||||
/// окна задачника; для вывода числа отводится W экранных позиций.
|
||||
/// После вывода данных выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: real; W: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: integer);
|
||||
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A с комментарием S в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(S: string; A: real);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: integer; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника;
|
||||
/// для вывода отводится W экранных позиций.
|
||||
/// После вывода числа выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: real; W: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: integer);
|
||||
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
/// Выводит число A в разделе отладки окна задачника,
|
||||
/// после чего выполняет переход на новую экранную строку
|
||||
procedure ShowLine(A: real);
|
||||
|
||||
/// Настраивает формат вывода вещественных чисел в разделе отладки
|
||||
/// окна задачника. Если N > 0, то число выводится в формате
|
||||
/// с фиксированной точкой и N дробными знаками. Если N = 0,
|
||||
/// то число выводится в экспоненциальном формате, число дробных
|
||||
/// знаков определяется шириной поля вывода
|
||||
/// Настраивает формат вывода вещественных чисел в разделе отладки
|
||||
/// окна задачника. Если N > 0, то число выводится в формате
|
||||
/// с фиксированной точкой и N дробными знаками. Если N = 0,
|
||||
/// то число выводится в экспоненциальном формате, число дробных
|
||||
/// знаков определяется шириной поля вывода
|
||||
procedure SetPrecision(N: integer);
|
||||
|
||||
/// Обеспечивает автоматическое скрытие всех разделов
|
||||
/// окна задачника, кроме раздела отладки
|
||||
/// Обеспечивает автоматическое скрытие всех разделов
|
||||
/// окна задачника, кроме раздела отладки
|
||||
procedure HideTask;
|
||||
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
|
||||
// == Версия 4.14. Дополнения ==
|
||||
// == Версия 4.14. Дополнения ==
|
||||
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
function ReadArrInteger(n: integer): array of integer;
|
||||
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде массива
|
||||
function ReadArrReal(n: integer): array of real;
|
||||
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде массива
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде массива
|
||||
function ReadArrString(n: integer): array of string;
|
||||
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
/// Вводит n целых чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
/// Вводит n вещественных чисел
|
||||
/// и возвращает введенные числа в виде последовательности
|
||||
function ReadSeqReal(n: integer): sequence of real;
|
||||
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде последовательности
|
||||
/// Вводит n строк
|
||||
/// и возвращает введенные строки в виде последовательности
|
||||
function ReadSeqString(n: integer): sequence of string;
|
||||
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqInteger(): sequence of integer;
|
||||
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqReal(): sequence of real;
|
||||
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде последовательности
|
||||
function ReadSeqString(): sequence of string;
|
||||
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора целых чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrInteger(): array of integer;
|
||||
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора вещественных чисел и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrReal(): array of real;
|
||||
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
/// Вводит размер набора строк и его элементы
|
||||
/// и возвращает введенный набор в виде массива
|
||||
function ReadArrString(): array of string;
|
||||
|
||||
/// Вводит целую матрицу размера m на n по строкам
|
||||
/// Вводит целую матрицу размера m на n по строкам
|
||||
function ReadMatrInteger(m,n: integer): array [,] of integer;
|
||||
|
||||
/// Вводит размеры матрицы и затем целую матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем целую матрицу указанных размеров по строкам
|
||||
function ReadMatrInteger(): array [,] of integer;
|
||||
|
||||
/// Вводит вещественную матрицу размера m на n по строкам
|
||||
/// Вводит вещественную матрицу размера m на n по строкам
|
||||
function ReadMatrReal(m,n: integer): array [,] of real;
|
||||
|
||||
/// Вводит размеры матрицы и затем вещественную матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем вещественную матрицу указанных размеров по строкам
|
||||
function ReadMatrReal(): array [,] of real;
|
||||
|
||||
/// Вводит матрицу из строк размера m на n по строкам
|
||||
/// Вводит матрицу из строк размера m на n по строкам
|
||||
function ReadMatrString(m,n: integer): array [,] of string;
|
||||
|
||||
/// Вводит размеры матрицы и затем строковую матрицу указанных размеров по строкам
|
||||
/// Вводит размеры матрицы и затем строковую матрицу указанных размеров по строкам
|
||||
function ReadMatrString(): array [,] of string;
|
||||
|
||||
procedure ReadMatr(var m, n: integer; var a: array [,] of integer);
|
||||
|
|
@ -467,7 +467,7 @@ procedure WriteMatr<T>(a: array of array of T);
|
|||
|
||||
procedure WriteMatr<T>(a: List<List<T>>);
|
||||
|
||||
// == Дополнения 2016.07
|
||||
// == Дополнения 2016.07
|
||||
|
||||
procedure PrintMatr<T>(a: array[,] of T);
|
||||
|
||||
|
|
@ -475,16 +475,16 @@ procedure PrintMatr<T>(a: array of array of T);
|
|||
|
||||
procedure PrintMatr<T>(a: List<List<T>>);
|
||||
|
||||
// == Конец дополнений 2016.07
|
||||
// == Конец дополнений 2016.07
|
||||
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
|
||||
implementation
|
||||
|
||||
const
|
||||
NotSupportedReadTypeMessage = 'Ввод данных типа {0} не поддерживается';
|
||||
NotSupportedWriteTypeMessage = 'Вывод данных типа {0} не поддерживается';
|
||||
eMessage = 'Попытка обращения к объекту Node после вызова его метода Dispose';
|
||||
NotSupportedReadTypeMessage = 'Ввод данных типа {0} не поддерживается';
|
||||
NotSupportedWriteTypeMessage = 'Вывод данных типа {0} не поддерживается';
|
||||
eMessage = 'Попытка обращения к объекту Node после вызова его метода Dispose';
|
||||
|
||||
var
|
||||
loadNodes: ArrayList;
|
||||
|
|
@ -922,7 +922,7 @@ begin
|
|||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Функции Get
|
||||
// Функции Get
|
||||
// -----------------------------------------------------
|
||||
function GetInt: integer;
|
||||
var val:integer;
|
||||
|
|
@ -958,7 +958,7 @@ end;
|
|||
function GetString: string;
|
||||
var val: System.Text.StringBuilder;
|
||||
begin
|
||||
val := new System.Text.StringBuilder(200);//TODO почему 200?
|
||||
val := new System.Text.StringBuilder(200);//TODO почему 200?
|
||||
_gets(val);
|
||||
result := val.ToString;
|
||||
end;
|
||||
|
|
@ -989,8 +989,8 @@ var
|
|||
p: IntPtr;
|
||||
sNode: InternalNode;
|
||||
begin
|
||||
//raise new NotSupportedException('Работа с динамическими структурами задачника PT4 не поддерживается в этой версии компилятора. Исправление ошибки планируется в следуйщей версии');
|
||||
//result := new PT4Node(sNode, p);// fixme здесь ошибка генерации кода!
|
||||
//raise new NotSupportedException('Работа с динамическими структурами задачника PT4 не поддерживается в этой версии компилятора. Исправление ошибки планируется в следуйщей версии');
|
||||
//result := new PT4Node(sNode, p);// fixme здесь ошибка генерации кода!
|
||||
p := IntPtr.Zero;
|
||||
sNode.Data := 0;
|
||||
sNode.Next := IntPtr.Zero;
|
||||
|
|
@ -1089,7 +1089,7 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
function ReadInteger(prompt: string): integer;
|
||||
begin
|
||||
|
|
@ -1161,10 +1161,10 @@ begin
|
|||
Result := GetNode;
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Процедуры Put
|
||||
// Процедуры Put
|
||||
// -----------------------------------------------------
|
||||
procedure PutInt(val: integer);
|
||||
begin
|
||||
|
|
@ -1213,7 +1213,7 @@ begin
|
|||
end;
|
||||
|
||||
// -----------------------------------------------------
|
||||
// Генерация исключений
|
||||
// Генерация исключений
|
||||
// -----------------------------------------------------
|
||||
procedure RaisePTAndCheckPT(e: Exception);
|
||||
begin
|
||||
|
|
@ -1338,7 +1338,7 @@ begin
|
|||
Print(args);
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Дополнения ==
|
||||
// == Версия 4.15. Дополнения ==
|
||||
|
||||
procedure Print(s: string);
|
||||
begin
|
||||
|
|
@ -1350,7 +1350,7 @@ begin
|
|||
write(s);
|
||||
end;
|
||||
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
// == Версия 4.15. Конец дополнений ==
|
||||
|
||||
{procedure write;
|
||||
begin
|
||||
|
|
@ -1423,7 +1423,7 @@ begin
|
|||
if InfoT=0 then
|
||||
Console.WriteLine(InfoS);
|
||||
FreePT;
|
||||
// == Начало дополнений к версии 4.13 ==
|
||||
// == Начало дополнений к версии 4.13 ==
|
||||
var fpt := FinishPT;
|
||||
if fpt = 1 then exit;
|
||||
var asm := System.Reflection.Assembly.GetExecutingAssembly;
|
||||
|
|
@ -1432,6 +1432,15 @@ begin
|
|||
var prg := asm.GetType(nm+'.Program');
|
||||
var solveproc := prg.GetMethod('$Main');
|
||||
var initproc := prg.GetMethod('$_InitVariables_');
|
||||
if (solveproc = nil) or (initproc = nil) then
|
||||
foreach var prg0 in asm.GetTypes() do
|
||||
begin
|
||||
prg := prg0;
|
||||
solveproc := prg0.GetMethod('$Main');
|
||||
initproc := prg0.GetMethod('$_InitVariables_');
|
||||
if (solveproc <> nil) and (initproc <> nil) then
|
||||
break;
|
||||
end;
|
||||
var examunit := asm.GetType('PT4Exam.PT4Exam');
|
||||
var finexamproc: System.Reflection.MethodInfo := nil;
|
||||
if examunit <> nil then
|
||||
|
|
@ -1441,7 +1450,7 @@ begin
|
|||
begin
|
||||
StartPT(512);
|
||||
try
|
||||
foreach var f in prg.GetFields do
|
||||
foreach var f in prg.GetFields() do
|
||||
if not f.Name.StartsWith('$') then
|
||||
try
|
||||
f.SetValue(nil, nil);
|
||||
|
|
@ -1452,11 +1461,7 @@ begin
|
|||
solveproc.Invoke(nil,nil);
|
||||
except
|
||||
on e: Exception do
|
||||
begin
|
||||
//if e.InnerException<>nil then
|
||||
RaisePT('HHH', 'ggg');
|
||||
//RaisePT(e.InnerException.GetType.ToString, e.InnerException.Message);
|
||||
end;
|
||||
RaisePT(e.InnerException.GetType.ToString, e.InnerException.Message);
|
||||
end;
|
||||
if finexamproc <> nil then
|
||||
finexamproc.Invoke(nil,nil);
|
||||
|
|
@ -1465,10 +1470,10 @@ begin
|
|||
inc(i);
|
||||
fpt := FinishPT;
|
||||
end;
|
||||
// == Конец дополнений к версии 4.13 ==
|
||||
// == Конец дополнений к версии 4.13 ==
|
||||
end;
|
||||
|
||||
// == Версия 1.3. Дополнения ==
|
||||
// == Версия 1.3. Дополнения ==
|
||||
|
||||
var
|
||||
D: integer := 2;
|
||||
|
|
@ -1590,9 +1595,9 @@ begin
|
|||
D := N;
|
||||
end;
|
||||
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
// == Конец дополнений к версии 1.3 ==
|
||||
|
||||
// == Версия 4.14. Дополнения ==
|
||||
// == Версия 4.14. Дополнения ==
|
||||
|
||||
function ReadSeqInteger(): sequence of integer;
|
||||
begin
|
||||
|
|
@ -1864,7 +1869,7 @@ begin
|
|||
write(a[i][j]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы последовательности
|
||||
/// Выводит размер и элементы последовательности
|
||||
procedure WriteAll<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1873,7 +1878,7 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы последовательности
|
||||
/// Выводит элементы последовательности
|
||||
procedure Write<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1881,14 +1886,14 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы динамического массива
|
||||
/// Выводит элементы динамического массива
|
||||
procedure Write<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.Length-1 do
|
||||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы матрицы
|
||||
/// Выводит элементы матрицы
|
||||
procedure Write<T>(self: array [,] of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.GetLength(0)-1 do
|
||||
|
|
@ -1896,7 +1901,7 @@ begin
|
|||
PT4.Put(self[i,j]);
|
||||
end;
|
||||
|
||||
// == Дополнения 2016.07
|
||||
// == Дополнения 2016.07
|
||||
|
||||
procedure PrintMatr<T>(a: array[,] of T);
|
||||
begin
|
||||
|
|
@ -1919,7 +1924,7 @@ begin
|
|||
write(a[i][j]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы последовательности
|
||||
/// Выводит размер и элементы последовательности
|
||||
procedure PrintAll<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1928,7 +1933,7 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы динамического массива
|
||||
/// Выводит размер и элементы динамического массива
|
||||
procedure PrintAll<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
PT4.Put(self.Length);
|
||||
|
|
@ -1936,7 +1941,7 @@ begin
|
|||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит размер и элементы динамического массива
|
||||
/// Выводит размер и элементы динамического массива
|
||||
procedure WriteAll<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
PT4.Put(self.Length);
|
||||
|
|
@ -1944,7 +1949,7 @@ begin
|
|||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы последовательности
|
||||
/// Выводит элементы последовательности
|
||||
procedure Writeln<T>(self: sequence of T); extensionmethod;
|
||||
begin
|
||||
var b := self.ToArray();
|
||||
|
|
@ -1952,14 +1957,14 @@ begin
|
|||
PT4.Put(e);
|
||||
end;
|
||||
|
||||
/// Выводит элементы динамического массива
|
||||
/// Выводит элементы динамического массива
|
||||
procedure Writeln<T>(self: array of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.Length-1 do
|
||||
PT4.Put(self[i]);
|
||||
end;
|
||||
|
||||
/// Выводит элементы матрицы
|
||||
/// Выводит элементы матрицы
|
||||
procedure Writeln<T>(self: array [,] of T); extensionmethod;
|
||||
begin
|
||||
for var i:=0 to self.GetLength(0)-1 do
|
||||
|
|
@ -1967,13 +1972,13 @@ begin
|
|||
PT4.Put(self[i,j]);
|
||||
end;
|
||||
|
||||
// == Конец дополнений 2016.07
|
||||
// == Конец дополнений 2016.07
|
||||
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
|
||||
function Show<TSource>(self: sequence of TSource; cmt: string; selector: System.Func<TSource, string>): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
|
|
@ -1986,17 +1991,17 @@ begin
|
|||
result := self;
|
||||
end;
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и значения,
|
||||
/// полученные из элементов последовательности
|
||||
/// с помощью указанного лямбда-выражения
|
||||
function Show<TSource>(Self: sequence of TSource; selector: System.Func<TSource, string>): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self.Show('', selector);
|
||||
end;
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и ее элементы
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// комментарий cmt, размер последовательности и ее элементы
|
||||
function Show<TSource>(Self: sequence of TSource; cmt: string): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self;
|
||||
|
|
@ -2015,14 +2020,14 @@ begin
|
|||
end;
|
||||
|
||||
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и ее элементы.
|
||||
/// Выводит в разделе отладки окна задачника
|
||||
/// размер последовательности и ее элементы.
|
||||
function Show<TSource>(Self: sequence of TSource): sequence of TSource; extensionmethod;
|
||||
begin
|
||||
result := self.Show('');
|
||||
end;
|
||||
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
// == Конец дополнений к версии 4.14 ==
|
||||
|
||||
initialization
|
||||
__InitModule;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/// Модуль электронного задачника PT for Exam
|
||||
/// Модуль электронного задачника PT for Exam
|
||||
unit PT4Exam;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Модуль для подключения задачника PT for Exam
|
||||
// Версия 1.1
|
||||
// Copyright (c) 2014-2015 М.Э.Абрамян
|
||||
// Версия 1.2
|
||||
// Copyright (c) 2014-2017 М.Э.Абрамян
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
@ -13,6 +13,30 @@ interface
|
|||
procedure Task(name: string);
|
||||
procedure FinExam;
|
||||
|
||||
//1.2
|
||||
procedure Show(S: string);
|
||||
procedure Show(S: string; A: Integer; W: Integer);
|
||||
procedure Show(S: string; A: Real; W: Integer);
|
||||
procedure Show(S: string; A: Integer);
|
||||
procedure Show(S: string; A: Real);
|
||||
procedure Show(A: Integer; W: Integer);
|
||||
procedure Show(A: Real; W: Integer);
|
||||
procedure Show(A: Integer);
|
||||
procedure Show(A: Real);
|
||||
procedure ShowLine;
|
||||
procedure ShowLine(S: string);
|
||||
procedure ShowLine(S: string; A: Integer; W: Integer);
|
||||
procedure ShowLine(S: string; A: Real; W: Integer);
|
||||
procedure ShowLine(S: string; A: Integer);
|
||||
procedure ShowLine(S: string; A: Real);
|
||||
procedure ShowLine(A: Integer; W: Integer);
|
||||
procedure ShowLine(A: Real; W: Integer);
|
||||
procedure ShowLine(A: Integer);
|
||||
procedure ShowLine(A: Real);
|
||||
procedure SetPrecision(N: integer);
|
||||
procedure HideTask;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
|
|
@ -72,6 +96,112 @@ begin
|
|||
NextTask := false;
|
||||
end;
|
||||
|
||||
procedure Show(S: string);
|
||||
begin
|
||||
PT4.Show(S);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.Show(S, A, W);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Real; W: Integer);
|
||||
begin
|
||||
PT4.Show(S, A, W);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Integer);
|
||||
begin
|
||||
PT4.Show(S, A);
|
||||
end;
|
||||
|
||||
procedure Show(S: string; A: Real);
|
||||
begin
|
||||
PT4.Show(S, A);
|
||||
end;
|
||||
|
||||
procedure Show(A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.Show(A, W);
|
||||
end;
|
||||
|
||||
procedure Show(A: Real; W: Integer);
|
||||
begin
|
||||
PT4.Show(A, W);
|
||||
end;
|
||||
|
||||
procedure Show(A: Integer);
|
||||
begin
|
||||
PT4.Show(A);
|
||||
end;
|
||||
|
||||
procedure Show(A: Real);
|
||||
begin
|
||||
PT4.Show(A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string);
|
||||
begin
|
||||
PT4.ShowLine(S);
|
||||
end;
|
||||
|
||||
procedure ShowLine;
|
||||
begin
|
||||
PT4.ShowLine;
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Real; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Integer);
|
||||
begin
|
||||
PT4.ShowLine(S, A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(S: string; A: Real);
|
||||
begin
|
||||
PT4.ShowLine(S, A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Integer; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Real; W: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A, W);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Integer);
|
||||
begin
|
||||
PT4.ShowLine(A);
|
||||
end;
|
||||
|
||||
procedure ShowLine(A: Real);
|
||||
begin
|
||||
PT4.ShowLine(A);
|
||||
end;
|
||||
|
||||
procedure HideTask;
|
||||
begin
|
||||
PT4.HideTask;
|
||||
end;
|
||||
|
||||
procedure SetPrecision(N: Integer);
|
||||
begin
|
||||
PT4.SetPrecision(N);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
|
||||
finalization
|
||||
|
|
|
|||
Loading…
Reference in a new issue