diff --git a/CodeCompletion/DomConverter.cs b/CodeCompletion/DomConverter.cs index ac853d540..8f93451b1 100644 --- a/CodeCompletion/DomConverter.cs +++ b/CodeCompletion/DomConverter.cs @@ -1064,7 +1064,7 @@ namespace CodeCompletion description = description.Replace("!#", ""); // Пусть здесь делаем все замены // Для рекурсивных <<>> нужно писать собственный парсер - description = System.Text.RegularExpressions.Regex.Replace(description, @"NewSet<\s*(.*)\s*>", "set of $1"); + //description = System.Text.RegularExpressions.Regex.Replace(description, @"NewSet<\s*(.*)\s*>", "set of $1"); } return description; } diff --git a/InstallerSamples/Algorithms/Eratosthenes.pas b/InstallerSamples/Algorithms/Eratosthenes.pas index f7c8e1c8e..c7c8880bb 100644 --- a/InstallerSamples/Algorithms/Eratosthenes.pas +++ b/InstallerSamples/Algorithms/Eratosthenes.pas @@ -16,9 +16,9 @@ begin end; end; - Writeln('Простые числа < ',n,':'); - Writeln(primes); - Writeln; - Writeln('Время вычисления: ',Milliseconds/1000); + Println('Простые числа <',n,':'); + Println(primes); + Println; + Println('Время вычисления:',Milliseconds/1000); end. diff --git a/InstallerSamples/Algorithms/SortArrays/QuickSort.pas b/InstallerSamples/Algorithms/SortArrays/QuickSort.pas index 4d68e91ba..cf46cc712 100644 --- a/InstallerSamples/Algorithms/SortArrays/QuickSort.pas +++ b/InstallerSamples/Algorithms/SortArrays/QuickSort.pas @@ -37,7 +37,7 @@ const n = 20; begin var a := ArrRandom(n); Println('До сортировки: '); - Writeln(a); + Println(a); QuickSort(a,0,a.Length-1); Println('После сортировки: '); Println(a); diff --git a/InstallerSamples/LINQ/Consonants.pas b/InstallerSamples/LINQ/Consonants.pas index c73dfefc7..ff0f95899 100644 --- a/InstallerSamples/LINQ/Consonants.pas +++ b/InstallerSamples/LINQ/Consonants.pas @@ -1,7 +1,7 @@ // Вывод английских согласных -var vowel: string := 'aeiouy'; - begin - var all := Range('a','z').JoinIntoString(''); + var vowel: string := 'aeiouy'; + + var all := ('a'..'z').JoinToString; all.Except(vowel).Println; end. \ No newline at end of file diff --git a/InstallerSamples/LINQ/First3Min.pas b/InstallerSamples/LINQ/First3Min.pas index 58cb14882..a970ebfb6 100644 --- a/InstallerSamples/LINQ/First3Min.pas +++ b/InstallerSamples/LINQ/First3Min.pas @@ -1,4 +1,4 @@ // Первые 3 минимума begin - ArrRandom(20).Println.Sorted.Distinct.Take(3).Println; + ArrRandom(20).Println.Distinct.Order.Take(3).Println; end. \ No newline at end of file diff --git a/InstallerSamples/LINQ/FunTable.pas b/InstallerSamples/LINQ/FunTable.pas index 38aa5f5ed..45586b19c 100644 --- a/InstallerSamples/LINQ/FunTable.pas +++ b/InstallerSamples/LINQ/FunTable.pas @@ -1,6 +1,6 @@ -// Вывод таблицы значений функции sin +// Вывод таблицы значений функции sin + +## +PartitionPoints(0,Pi,20).Select(x->$'({x:f4}, {sin(x):f7})').PrintLines; -begin - PartitionPoints(0,Pi,20).Select(x->Format('({0:f4}, {1:f7})',x,sin(x))).Println(NewLine); -end. diff --git a/InstallerSamples/LINQ/MonteCarlo.pas b/InstallerSamples/LINQ/MonteCarlo.pas index 67f11a46a..d7af961b3 100644 --- a/InstallerSamples/LINQ/MonteCarlo.pas +++ b/InstallerSamples/LINQ/MonteCarlo.pas @@ -1,7 +1,7 @@ -// Вычисление числа Pi методом Монте-Карло +// Вычисление числа Pi методом Монте-Карло begin var n := 10000000; - var pp := Range(1,n).Select(x->Rec(Random(),Random())).Where(p->sqr(p.Item1)+sqr(p.Item2)<1).Count/n*4; + var pp := (1..n).Select(x->(Random(),Random())).Where(p->sqr(p[0])+sqr(p[1])<1).Count/n*4; Print(pp); end. \ No newline at end of file diff --git a/InstallerSamples/LINQ/TextFileCount.pas b/InstallerSamples/LINQ/TextFileCount.pas index 0f9d80b78..155e128ca 100644 --- a/InstallerSamples/LINQ/TextFileCount.pas +++ b/InstallerSamples/LINQ/TextFileCount.pas @@ -1,7 +1,7 @@ -begin +begin var d := new Dictionary; foreach var s in ReadLines('TextFileCount.pas') do - foreach var word in s.ToWords(' ',':',')','(',';','''',',','.','=','<','>','[',']','+','-') do + foreach var word in s.ToWords(AllDelimiters) do d[word] := d.Get(word) + 1; - d.Print(NewLine); + d.PrintLines; end. \ No newline at end of file diff --git a/InstallerSamples/LINQ/TextFileCount1.pas b/InstallerSamples/LINQ/TextFileCount1.pas index 087d9a27c..b598a5e1a 100644 --- a/InstallerSamples/LINQ/TextFileCount1.pas +++ b/InstallerSamples/LINQ/TextFileCount1.pas @@ -1,7 +1,6 @@ -begin - var d := Dict('begin' => 0); - var delims := Seq(' ',')','(',';','''',',','.','[',']',#10,#13); - var words := ReadAllText('TextFileCount1.pas').ToWords(delims); +begin + var d := Dict('begin' to 0); + var words := ReadAllText('TextFileCount1.pas').ToWords(AllDelimiters); foreach var word in words do d[word] := d.Get(word) + 1; d.Print(NewLine); diff --git a/InstallerSamples/NETLibraries/NET4.0/BigIntegerExample.pas b/InstallerSamples/NETLibraries/NET4.0/BigIntegerExample.pas index fb473bcfd..3c654b8a0 100644 --- a/InstallerSamples/NETLibraries/NET4.0/BigIntegerExample.pas +++ b/InstallerSamples/NETLibraries/NET4.0/BigIntegerExample.pas @@ -1,12 +1,9 @@ -// Использование длинных целых. Вычисление 100! -{$reference 'System.Numerics.dll'} -uses System.Numerics; - -var n := 100; +// Использование длинных целых. Вычисление 100! begin - var f := new BigInteger(1); + var n := 100; + var f: BigInteger := 1; for var i:=2 to n do f := f * i; - writelnFormat('{0}! = {1}',n,f); + Print($'{n}! = {f}'); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/NET4.0/ComplexExample.pas b/InstallerSamples/NETLibraries/NET4.0/ComplexExample.pas index 818b4fecb..9cc08ccd2 100644 --- a/InstallerSamples/NETLibraries/NET4.0/ComplexExample.pas +++ b/InstallerSamples/NETLibraries/NET4.0/ComplexExample.pas @@ -1,17 +1,14 @@ -// Использование комплексных чисел -{$reference 'System.Numerics.dll'} -uses System.Numerics; - +// Использование комплексных чисел begin var a := new Complex(0,1); - writeln('Мнимая единица: ', a); + Println('Мнимая единица: ', a); - var b := Complex.Sqrt(a); - writeln('Главный корень из мнимой единицы: ', b); + var b := Sqrt(a); + Println('Главный корень из мнимой единицы: ', b); var c := a*a; - writeln('Квадрат мнимой единицы: ', c); + Println('Квадрат мнимой единицы: ', c); - var d := new Complex(1,2); - writelnFormat('Модуль {0} равен {1}', d,d.Magnitude); + var d := Cplx(1,2); + Println($'Модуль {ObjectToString(d)} равен {d.Magnitude}'); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/NET4.0/TupleCreate.pas b/InstallerSamples/NETLibraries/NET4.0/TupleCreate.pas index 9d07269f5..10fb1de4e 100644 --- a/InstallerSamples/NETLibraries/NET4.0/TupleCreate.pas +++ b/InstallerSamples/NETLibraries/NET4.0/TupleCreate.pas @@ -1,10 +1,7 @@ -// Создание кортежей -uses System; - -begin - var a := Tuple.Create('Иванов',24); - writeln(a.Item1,' ',a.Item2); +begin + var a := ('Иванов',24); + Println(a[0],a[1]); - var b := Tuple.Create('Петров',17,1,11); - writeln(b.Item1,' ',b.Item2,' ',b.Item3,' ',b.Item4); + var b := ('Петров',17,1,11); + Println(b.Item1,b.Item2,b.Item3,b.Item4); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.Array/SystemArray1.pas b/InstallerSamples/NETLibraries/System.Array/SystemArray1.pas index 2bce6941d..8310a9099 100644 --- a/InstallerSamples/NETLibraries/System.Array/SystemArray1.pas +++ b/InstallerSamples/NETLibraries/System.Array/SystemArray1.pas @@ -1,37 +1,24 @@ -Uses System, PABCSystem; - -const Size = 10; - -procedure PrintArray(a: array of T); -begin - foreach v: T in a do - Write(v, ' '); - Writeln; -end; - -var a: array of integer; +const Size = 10; begin - SetLength(a, Size); // Заполнение массива - for var i:=0 to a.Length-1 do - a[i] := Random(100); - + var a := ArrRandomInteger(Size); + // Вывод всех элементов массива - PrintArray(a); + a.Println; // Сортировка массива (знак & используется для того, // чтобы воспользоваться ключевым словом array при обозначении класса Array) - &Array.Sort(a); + Sort(a); - PrintArray(a); + a.Println; // Обращение массива - &Array.Reverse(a); + Reverse(a); - PrintArray(a); + a.Println; // Поиск вхождения элемента в массив - var i := &Array.IndexOf(a, 99); - Writeln(i); + var i := a.IndexOf(99); + Println(i); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.DateTime/DateTime1.pas b/InstallerSamples/NETLibraries/System.DateTime/DateTime1.pas index 9832b1c44..e28aadf8e 100644 --- a/InstallerSamples/NETLibraries/System.DateTime/DateTime1.pas +++ b/InstallerSamples/NETLibraries/System.DateTime/DateTime1.pas @@ -1,32 +1,26 @@ -Uses System; - -var - d1, d2, d3: DateTime; // Объекты для хранения даты и времени - ts: TimeSpan; // Объект для хранения промежутков времени - -begin +begin // Получение текущей даты - вызов статического метода - d1 := DateTime.Now; - Writeln(d1); + var d1 := DateTime.Now; + Println(d1); // Дата и время через один месяц - d2 := d1.AddMonths(1); - Writeln(d2); + var d2 := d1.AddMonths(1); + Println(d2); // Дата и время на 12 часов раньше d2 := d1.AddHours(-12); - Writeln(d2); + Println(d2); // Формирование даты - вызов конструктора объекта (год, месяц,число) - d3 := new DateTime(2001, 1, 1); - Writeln(d3); + var d3 := new DateTime(2001, 1, 1); + Println(d3); // Определение времени, прошедшего с начала тысячелетия (разность дат) - ts := d1.Subtract(d3); + var ts: System.TimeSpan := d1.Subtract(d3); // Промежуток времени в днях (результат - вещественное число) - Writeln(ts.TotalDays); + Println(ts.TotalDays); // Промежуток времени в днях, часах, минутах и секундах - WritelnFormat('{0} {1}:{2}:{3}',ts.Days,ts.Hours,ts.Minutes,ts.Seconds); + Println($'{ts.Days} {ts.Hours}:{ts.Minutes}:{ts.Seconds}'); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.DateTime/DateTime2.pas b/InstallerSamples/NETLibraries/System.DateTime/DateTime2.pas index f444870fc..a7dd09c46 100644 --- a/InstallerSamples/NETLibraries/System.DateTime/DateTime2.pas +++ b/InstallerSamples/NETLibraries/System.DateTime/DateTime2.pas @@ -1,34 +1,30 @@ -Uses System; - -var - d: DateTime; - s: string; +Uses System; begin - s := '27.03.2008 9:58:17'; + var s := '03.27.2008 9:58:17'; //Попытка преобразования строки в объект DateTime + var d: DateTime; if not DateTime.TryParse(s, d) then begin - Writeln('Строка не содержит значение даты и времени'); + Println('Строка не содержит значение даты и времени'); Exit; end; // Проверка високосности заданного года с помощью статического метода if DateTime.IsLeapYear(d.Year) then - Writeln('Год високосный') + Println('Год високосный') else - Writeln('Год невисокосный'); + Println('Год невисокосный'); // Преобразование даты и времени в строковое представление s := d.ToString; - Writeln(s); + Println(s); // Преобразование даты в строковое представление s := d.ToShortDateString; - Writeln(s); + Println(s); // Преобразование времени в строковое представление s := d.ToShortTimeString; - Writeln(s); - + Println(s); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.DateTime/DateTimeInterval.pas b/InstallerSamples/NETLibraries/System.DateTime/DateTimeInterval.pas index b7afdf928..031bbe681 100644 --- a/InstallerSamples/NETLibraries/System.DateTime/DateTimeInterval.pas +++ b/InstallerSamples/NETLibraries/System.DateTime/DateTimeInterval.pas @@ -1,16 +1,14 @@ -// Работа с классом System.DateTime +// Работа с классом System.DateTime // Вычисление времени выполнения фрагмента кода -uses System, PABCSystem; - -var dt: DateTime := DateTime.Now; - begin + var dt: DateTime := DateTime.Now; + // Делаем случайную паузу var ms := Random(1000); Writeln('Sleep','(',ms,')'); Sleep(ms); // Сравниваем с показаниями DateTime.Now - Writeln((DateTime.Now-dt).TotalMilliseconds,'ms'); + Println((DateTime.Now-dt).TotalMilliseconds,'ms'); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.Parallel/Parallel3.pas b/InstallerSamples/NETLibraries/System.Parallel/Parallel3.pas index c058cad1e..2ebc24db9 100644 --- a/InstallerSamples/NETLibraries/System.Parallel/Parallel3.pas +++ b/InstallerSamples/NETLibraries/System.Parallel/Parallel3.pas @@ -1,10 +1,10 @@ -uses +uses System, System.Net, System.Threading.Tasks, System.Collections.Generic; type ListSimple = class l := new List(); - procedure AddSimple(N: int64); + procedure AddPrime(N: int64); begin var Result := True; for var i: int64 := 2 to round(sqrt(N)) do @@ -29,29 +29,29 @@ begin var ii: int64 := 1265713689181; - Parallel.For(ii,ii+hh,ls.AddSimple); + Parallel.For(ii,ii+hh,ls.AddPrime); - writeln(ls.l.Count); + Println(ls.l.Count); // ls.l := ls.l.OrderBy(x->x).ToList(); - это можно включить для проверки того, что в обоих списках - одинаковые простые числа for var i:=0 to ls.l.Count-1 do - write(ls.l[i],' '); + Print(ls.l[i]); // Надо обратить внимание, что выводится неупорядоченная последовательность простых чисел ! - writeln; - writeln('Время выполнения = ',Milliseconds); + Println; + Println('Время выполнения =',Milliseconds); // То же, но непараллельно var ls1 := new ListSimple; var t := Milliseconds; for var i:=ii to ii+hh-1 do - ls1.AddSimple(i); - writeln(ls1.l.Count); + ls1.AddPrime(i); + Println(ls1.l.Count); for var i:=0 to ls1.l.Count-1 do write(ls1.l[i],' '); - writeln; - writeln('Время выполнения = ',Milliseconds-t); + Println; + Println('Время выполнения =',Milliseconds-t); // Проверка того, что списки простых как множества совпадают - writeln('Количество элементов в разности множеств = ',ls.l.Except(ls1.l).Count()); + Println('Количество элементов в разности множеств = ',ls.l.Except(ls1.l).Count()); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.String/StringConvert.pas b/InstallerSamples/NETLibraries/System.String/StringConvert.pas index fe2a5b8a6..1a6c9e60c 100644 --- a/InstallerSamples/NETLibraries/System.String/StringConvert.pas +++ b/InstallerSamples/NETLibraries/System.String/StringConvert.pas @@ -1,15 +1,13 @@ -var - s: string; - i: integer; - r: real; - + begin // Преобразование строки в число - s := '123,3443'; // Дробная часть отделяется запятой - настройки Windows + var s := '123,3443'; // Дробная часть отделяется запятой - настройки Windows + var r: real; if not real.TryParse(s, r) then Writeln('Строка s не является строковым представлением вещественного числа') else Writeln(r); + var i: integer; if not integer.TryParse(s, i) then Writeln('Строка s не является строковым представлением целого числа'); diff --git a/InstallerSamples/NETLibraries/System.String/StringMethods1.pas b/InstallerSamples/NETLibraries/System.String/StringMethods1.pas index b0db02e3c..fb04eb6f7 100644 --- a/InstallerSamples/NETLibraries/System.String/StringMethods1.pas +++ b/InstallerSamples/NETLibraries/System.String/StringMethods1.pas @@ -1,13 +1,11 @@ -var s1,s2: string; - -begin +begin // Определение длины строки - s1 := 'ABCDEFGH'; + var s1 := 'ABCDEFGH'; Writeln(s1.Length); // Сравнение строк без учета регистра символов s1 := 'AAA'; - s2 := 'aaa'; + var s2 := 'aaa'; if String.Compare(s1, s2, {ignoreCase - без учета регистра} true) = 0 then Writeln('Строки совпадают с точностью до регистра букв'); diff --git a/InstallerSamples/NETLibraries/System.String/StringMethods2.pas b/InstallerSamples/NETLibraries/System.String/StringMethods2.pas index 13cc3e57e..97a012fcf 100644 --- a/InstallerSamples/NETLibraries/System.String/StringMethods2.pas +++ b/InstallerSamples/NETLibraries/System.String/StringMethods2.pas @@ -1,9 +1,7 @@ -var s1,s2: string; - -begin +begin // Извлечение подстрок - s1 := 'ABCDEFGH'; - s2 := s1.Substring( {начальная_позиция = } 3); + var s1 := 'ABCDEFGH'; + var s2 := s1.Substring( {начальная_позиция = } 3); Writeln(s2); s2 := s1.Substring(3, {длина_подстроки = } 2); diff --git a/InstallerSamples/NETLibraries/System.String/StringSplit.pas b/InstallerSamples/NETLibraries/System.String/StringSplit.pas index 184c12c2e..31546fbde 100644 --- a/InstallerSamples/NETLibraries/System.String/StringSplit.pas +++ b/InstallerSamples/NETLibraries/System.String/StringSplit.pas @@ -1,26 +1,20 @@ -uses System; - -var - str_arr: array of string; - int_arr: array of integer; - s: string := '12 765 765 76'; - -begin +begin + var s: string := '12 765 765 76'; // Разбиение строки на массив подстрок с заданным разелителем - str_arr := s.Split(' '); + var str_arr: array of string := s.Split; // Соединение массива подстрок с новым разделителем - s := string.Join('+', str_arr); - Write(s, '='); + s := str_arr.JoinToString(' + '); + Write(s, ' = '); // Формирование целочисленного массива по массиву подстрок - SetLength(int_arr, str_arr.Length); + var int_arr := new integer[str_arr.Length]; for var i:=0 to int_arr.Length-1 do integer.TryParse(str_arr[i], int_arr[i]); // Вычисление суммы элементов целочисленного массива var sum := 0; - foreach v: integer in int_arr do + foreach var v: integer in int_arr do sum += v; Writeln(sum); end. \ No newline at end of file diff --git a/InstallerSamples/NETLibraries/System.Timers.Timer/SystemTimer.pas b/InstallerSamples/NETLibraries/System.Timers.Timer/SystemTimer.pas index 8223bd886..863c8c078 100644 --- a/InstallerSamples/NETLibraries/System.Timers.Timer/SystemTimer.pas +++ b/InstallerSamples/NETLibraries/System.Timers.Timer/SystemTimer.pas @@ -1,30 +1,32 @@ -//События, +=, -=, демонстрация работы таймера System.Timers.Timer +//События, +=, -=, демонстрация работы таймера System.Timers.Timer uses System; -var Timer:System.Timers.Timer; - x:integer; - exit:boolean; +var + Timer: System.Timers.Timer; + x: integer; + exit: boolean; -procedure OnTimer2(sender:object; e:System.Timers.ElapsedEventArgs); +procedure OnTimer2(sender: object; e: System.Timers.ElapsedEventArgs); begin Writeln(x); - x:=x+1; - exit:=x>=10; + x := x + 1; + exit := x >= 10; end; -procedure OnTimer1(sender:object; e:System.Timers.ElapsedEventArgs); + +procedure OnTimer1(sender: object; e: System.Timers.ElapsedEventArgs); begin Writeln(e.SignalTime); - x:=x+1; - if x>=5 then begin - Timer.Elapsed-=OnTimer1; - Timer.Elapsed+=OnTimer2; + x := x + 1; + if x >= 5 then begin + Timer.Elapsed -= OnTimer1; + Timer.Elapsed += OnTimer2; end; end; begin - Exit:=false; - Timer:=System.Timers.Timer.Create(1000); - Timer.Elapsed+=OnTimer1; + Exit := false; + Timer := System.Timers.Timer.Create(1000); + Timer.Elapsed += OnTimer1; Timer.Start; while not exit do Sleep(Round(Timer.Interval)); diff --git a/InstallerSamples/StandardUnits/Turtle/Turtle1.pas b/InstallerSamples/StandardUnits/Turtle/Turtle1.pas index 242078259..42b58d36e 100644 --- a/InstallerSamples/StandardUnits/Turtle/Turtle1.pas +++ b/InstallerSamples/StandardUnits/Turtle/Turtle1.pas @@ -1,4 +1,4 @@ -uses Turtle,GraphWPF; +uses Turtle; var Atom,FStr,XStr,YStr: string; @@ -8,7 +8,7 @@ var procedure Init1; // Dragon begin (Atom,FStr,XStr,YStr) := ('fx','f','x+yf+','-fx-y'); - (angle,len,n,x0,y0) := (90,3,15,300,450); + (angle,len,n,x0,y0) := (90,0.1,15,7,0); end; procedure Init2; // Koch curve @@ -43,6 +43,7 @@ begin end; begin + Sleep(100); Init1; ToPoint(x0,y0); SetWidth(0.5); diff --git a/InstallerSamples/StandardUnits/Turtle/Turtle2.pas b/InstallerSamples/StandardUnits/Turtle/Turtle2.pas index 6d4419daa..75b5516e5 100644 --- a/InstallerSamples/StandardUnits/Turtle/Turtle2.pas +++ b/InstallerSamples/StandardUnits/Turtle/Turtle2.pas @@ -1,4 +1,4 @@ -uses Turtle,GraphWPF; +uses Turtle; var Atom,FStr,XStr,YStr: string; @@ -8,13 +8,13 @@ var procedure Init1; // Dragon begin (Atom,FStr,XStr,YStr) := ('fx','f','x+yf+','-fx-y'); - (angle,len,n,x0,y0) := (90,3,15,300,450); + (angle,len,n,x0,y0) := (90,0.1,15,7,0); end; procedure Init2; // Koch curve begin (Atom,FStr,XStr,YStr) := ('F', 'F-F++F-F', '', ''); - (angle,len,n,x0,y0) := (60,5,7,10,550); + (angle,len,n,x0,y0) := (60,0.012,7,-13,0); end; procedure Init3; // Quadratic Koch Island @@ -48,6 +48,7 @@ begin SetWidth(0.5); //SetColor(Colors.Red); Down; + Turn(90); RunStr(Atom,n); Up; end. \ No newline at end of file diff --git a/InstallerSamples/StandardUnits/Turtle/Turtle3.pas b/InstallerSamples/StandardUnits/Turtle/Turtle3.pas index 47d280461..9e4f823f1 100644 --- a/InstallerSamples/StandardUnits/Turtle/Turtle3.pas +++ b/InstallerSamples/StandardUnits/Turtle/Turtle3.pas @@ -20,7 +20,7 @@ end; procedure Init3; // Quadratic Koch Island begin (Atom,FStr,XStr,YStr) := ('F+F+F+F', 'F+F-FF+F+F-F', '', ''); - (angle,len,n,x0,y0) := (90,4,4,250,450); + (angle,len,n,x0,y0) := (90,0.15,4,8,-1); end; procedure Init4; // Gosper hexagonal curve diff --git a/InstallerSamples/StandardUnits/Turtle/Turtle4.pas b/InstallerSamples/StandardUnits/Turtle/Turtle4.pas index 7848082b6..d405367b1 100644 --- a/InstallerSamples/StandardUnits/Turtle/Turtle4.pas +++ b/InstallerSamples/StandardUnits/Turtle/Turtle4.pas @@ -26,7 +26,7 @@ end; procedure Init4; // Gosper hexagonal curve begin (Atom,FStr,XStr,YStr) := ('XF', 'F', 'X+YF++YF-FX--FXFX-YF+','-FX+YFYF++YF+FX--FX-Y'); - (angle,len,n,x0,y0) := (60,4,5,580,56); + (angle,len,n,x0,y0) := (60,0.13,5,-8,6); end; procedure RunStr(s: string; n: integer); diff --git a/bin/Lib/LightPT.pas b/bin/Lib/LightPT.pas index 463ffed27..bff538f54 100644 --- a/bin/Lib/LightPT.pas +++ b/bin/Lib/LightPT.pas @@ -7,6 +7,9 @@ interface uses System.Runtime.InteropServices; +var + ServerAddr := 'https://air.mmcs.sfedu.ru/pascalabc'; + {==============================================================} { Класс для формирования вывода } {==============================================================} @@ -646,8 +649,6 @@ var LessonName: string := ''; TaskNamesMap := new Dictionary; - ServerAddr := 'https://air.mmcs.sfedu.ru/pascalabc'; - // Дополнительные сообщения о записи в удаленную базу данных additionalMessages := False; diff --git a/bin/Lib/Turtle.pas b/bin/Lib/Turtle.pas index 147f6322e..4667a2895 100644 --- a/bin/Lib/Turtle.pas +++ b/bin/Lib/Turtle.pas @@ -288,7 +288,7 @@ end; procedure InitOnce; // Это тоже относится к Черепахе begin Window.Title := 'Исполнитель Черепаха'; - Font.Size := 12; + Font.Size := 14; Pen.RoundCap := True; end;