Digits с основанием в School
This commit is contained in:
parent
59409d8370
commit
e3027f6a6a
|
|
@ -113,7 +113,8 @@ namespace CodeCompletion
|
|||
|
||||
public void ConvertToDom(compilation_unit cu)
|
||||
{
|
||||
CodeCompletionController.comp.CompilerOptions.SourceFileName = cu.file_name;
|
||||
if (CodeCompletionController.comp != null)
|
||||
CodeCompletionController.comp.CompilerOptions.SourceFileName = cu.file_name;
|
||||
visitor.Convert(cu);
|
||||
is_compiled = true;
|
||||
cur_used_assemblies = (Hashtable)PascalABCCompiler.NetHelper.NetHelper.cur_used_assemblies.Clone();
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "8";
|
||||
public const string Build = "3";
|
||||
public const string Revision = "3236";
|
||||
public const string Revision = "3237";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=3
|
||||
%REVISION%=3236
|
||||
%MINOR%=8
|
||||
%REVISION%=3237
|
||||
%COREVERSION%=3
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.8.3.3236
|
||||
3.8.3.3237
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.8.3.3236'
|
||||
!define VERSION '3.8.3.3237'
|
||||
|
|
|
|||
|
|
@ -2271,6 +2271,8 @@ function SeqWhile<T>(first: T; next: T->T; pred: T->boolean): sequence of T;
|
|||
function SeqWhile<T>(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T;
|
||||
/// Возвращает последовательность из count элементов x
|
||||
function SeqFill<T>(count: integer; x: T): sequence of T;
|
||||
/// Возвращает бесконечную рекуррентную последовательность элементов, задаваемую начальным элементом first и функцией next
|
||||
function Iterate<T>(first: T; next: T->T): sequence of T;
|
||||
|
||||
/// Возвращает последовательность из n целых, введенных с клавиатуры
|
||||
function ReadSeqInteger(n: integer): sequence of integer;
|
||||
|
|
|
|||
|
|
@ -75,8 +75,16 @@ function FirstPrimes(k: integer): List<integer>;
|
|||
/// Количество простых делителей числа n
|
||||
function PrimeDivisorsCount(n: integer): integer;
|
||||
|
||||
/// Возвращает список, содержащий цифры числа n
|
||||
function Digits(n: int64): List<integer>;
|
||||
/// Возвращает целочисленный список расширенного представления
|
||||
/// десятичного числа n по основанию base.
|
||||
/// По умолчанию base=10 и возвращается список десятичных цифр числа n.
|
||||
/// Обратное действие выполняет функция Refold.
|
||||
function Digits(n: int64; base: integer := 10): List<integer>;
|
||||
|
||||
/// Возвращает целое десятичное число на основе его расширенного представления
|
||||
/// по основанию base (по умолчанию base=10).
|
||||
/// Функция выполняет действие, обратное функции Digits,
|
||||
function Refold(ext: List<integer>; base: integer := 10): int64;
|
||||
|
||||
/// Возвращает список делителей натурального числа n
|
||||
function Divisors(n: integer): List<integer>;
|
||||
|
|
@ -667,32 +675,47 @@ function PrimeDivisorsCount(Self: integer): integer; extensionmethod := PrimeDiv
|
|||
|
||||
{$region Digits}
|
||||
|
||||
/// Возвращает список, содержащий цифры числа n
|
||||
function Digits(n: int64): List<integer>;
|
||||
/// Возвращает целочисленный список расширенного представления
|
||||
/// десятичного числа n по основанию base.
|
||||
/// По умолчанию base=10 и возвращается список десятичных цифр числа n.
|
||||
/// Обратное действие выполняет функция Refold.
|
||||
function Digits(n: int64; base: integer): List<integer>;
|
||||
begin
|
||||
Result := new List<integer>;
|
||||
n := Abs(n);
|
||||
if n = 0 then Result := |0|.ToList
|
||||
if (n < 0) or (base < 2) then exit;
|
||||
if n = 0 then Result := Lst(0)
|
||||
else
|
||||
begin
|
||||
while n > 0 do
|
||||
begin
|
||||
Result.Add(n mod 10);
|
||||
n := n div 10
|
||||
var rem: integer := n mod base;
|
||||
Result.Add(rem);
|
||||
n := n div base
|
||||
end;
|
||||
Result.Reverse
|
||||
end;
|
||||
|
||||
function Digits(Self: integer; base: integer := 10): List<integer>;
|
||||
extensionmethod := Digits(Self, base);
|
||||
|
||||
function Digits(Self: int64; base: integer := 10): List<integer>;
|
||||
extensionmethod := Digits(Self, base);
|
||||
|
||||
/// Возвращает целое десятичное число на основе его расширенного представления
|
||||
/// по основанию base (по умолчанию base=10).
|
||||
/// Функция выполняет действие, обратное функции Digits
|
||||
function Refold(ext: List<integer>; base: integer): int64;
|
||||
begin
|
||||
Result := 0;
|
||||
var p := int64(1);
|
||||
for var i := ext.Count -1 downto 0 do
|
||||
begin
|
||||
Result += ext[i] * p;
|
||||
p *= base
|
||||
end
|
||||
end;
|
||||
|
||||
/// Возвращает список, содержащий цифры числа
|
||||
function Digits(Self: integer): List<integer>;
|
||||
extensionmethod :=
|
||||
Digits(Self);
|
||||
|
||||
/// Возвращает список, содержащий цифры числа
|
||||
function Digits(Self: int64): List<integer>;
|
||||
extensionmethod :=
|
||||
Digits(Self);
|
||||
function ReFold(Self: List<integer>; base: integer := 10): int64;
|
||||
extensionmethod := Refold(Self, base);
|
||||
|
||||
{$endregion}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
this.panelUnAuthorized = new System.Windows.Forms.Panel();
|
||||
this.panelAuthorized = new System.Windows.Forms.Panel();
|
||||
this.labelUserName = new System.Windows.Forms.Label();
|
||||
this.labelRating = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.userImage)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.groupImage)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.PluginImage)).BeginInit();
|
||||
|
|
@ -186,6 +187,7 @@
|
|||
//
|
||||
// panelAuthorized
|
||||
//
|
||||
this.panelAuthorized.Controls.Add(this.labelRating);
|
||||
this.panelAuthorized.Controls.Add(this.labelUserName);
|
||||
this.panelAuthorized.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelAuthorized.Name = "panelAuthorized";
|
||||
|
|
@ -201,6 +203,15 @@
|
|||
this.labelUserName.TabIndex = 11;
|
||||
this.labelUserName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// labelRating
|
||||
//
|
||||
this.labelRating.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.labelRating.Location = new System.Drawing.Point(25, 53);
|
||||
this.labelRating.Name = "labelRating";
|
||||
this.labelRating.Size = new System.Drawing.Size(372, 26);
|
||||
this.labelRating.TabIndex = 12;
|
||||
this.labelRating.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// LoginForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
|
@ -247,5 +258,6 @@
|
|||
private System.Windows.Forms.Panel panelUnAuthorized;
|
||||
private System.Windows.Forms.Label labelUserName;
|
||||
private System.Windows.Forms.Panel panelAuthorized;
|
||||
private System.Windows.Forms.Label labelRating;
|
||||
}
|
||||
}
|
||||
|
|
@ -260,6 +260,7 @@ namespace DBAccessPluginNamespace
|
|||
closeButton.Focus();
|
||||
panelUnAuthorized.SendToBack();
|
||||
labelUserName.Text = login;
|
||||
//labelRating.Text = "Рейтинг: ";
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -75,8 +75,16 @@ function FirstPrimes(k: integer): List<integer>;
|
|||
/// Количество простых делителей числа n
|
||||
function PrimeDivisorsCount(n: integer): integer;
|
||||
|
||||
/// Возвращает список, содержащий цифры числа n
|
||||
function Digits(n: int64): List<integer>;
|
||||
/// Возвращает целочисленный список расширенного представления
|
||||
/// десятичного числа n по основанию base.
|
||||
/// По умолчанию base=10 и возвращается список десятичных цифр числа n.
|
||||
/// Обратное действие выполняет функция Refold.
|
||||
function Digits(n: int64; base: integer := 10): List<integer>;
|
||||
|
||||
/// Возвращает целое десятичное число на основе его расширенного представления
|
||||
/// по основанию base (по умолчанию base=10).
|
||||
/// Функция выполняет действие, обратное функции Digits,
|
||||
function Refold(ext: List<integer>; base: integer := 10): int64;
|
||||
|
||||
/// Возвращает список делителей натурального числа n
|
||||
function Divisors(n: integer): List<integer>;
|
||||
|
|
@ -667,32 +675,47 @@ function PrimeDivisorsCount(Self: integer): integer; extensionmethod := PrimeDiv
|
|||
|
||||
{$region Digits}
|
||||
|
||||
/// Возвращает список, содержащий цифры числа n
|
||||
function Digits(n: int64): List<integer>;
|
||||
/// Возвращает целочисленный список расширенного представления
|
||||
/// десятичного числа n по основанию base.
|
||||
/// По умолчанию base=10 и возвращается список десятичных цифр числа n.
|
||||
/// Обратное действие выполняет функция Refold.
|
||||
function Digits(n: int64; base: integer): List<integer>;
|
||||
begin
|
||||
Result := new List<integer>;
|
||||
n := Abs(n);
|
||||
if n = 0 then Result := |0|.ToList
|
||||
if (n < 0) or (base < 2) then exit;
|
||||
if n = 0 then Result := Lst(0)
|
||||
else
|
||||
begin
|
||||
while n > 0 do
|
||||
begin
|
||||
Result.Add(n mod 10);
|
||||
n := n div 10
|
||||
var rem: integer := n mod base;
|
||||
Result.Add(rem);
|
||||
n := n div base
|
||||
end;
|
||||
Result.Reverse
|
||||
end;
|
||||
|
||||
function Digits(Self: integer; base: integer := 10): List<integer>;
|
||||
extensionmethod := Digits(Self, base);
|
||||
|
||||
function Digits(Self: int64; base: integer := 10): List<integer>;
|
||||
extensionmethod := Digits(Self, base);
|
||||
|
||||
/// Возвращает целое десятичное число на основе его расширенного представления
|
||||
/// по основанию base (по умолчанию base=10).
|
||||
/// Функция выполняет действие, обратное функции Digits
|
||||
function Refold(ext: List<integer>; base: integer): int64;
|
||||
begin
|
||||
Result := 0;
|
||||
var p := int64(1);
|
||||
for var i := ext.Count -1 downto 0 do
|
||||
begin
|
||||
Result += ext[i] * p;
|
||||
p *= base
|
||||
end
|
||||
end;
|
||||
|
||||
/// Возвращает список, содержащий цифры числа
|
||||
function Digits(Self: integer): List<integer>;
|
||||
extensionmethod :=
|
||||
Digits(Self);
|
||||
|
||||
/// Возвращает список, содержащий цифры числа
|
||||
function Digits(Self: int64): List<integer>;
|
||||
extensionmethod :=
|
||||
Digits(Self);
|
||||
function ReFold(Self: List<integer>; base: integer := 10): int64;
|
||||
extensionmethod := Refold(Self, base);
|
||||
|
||||
{$endregion}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue