diff --git a/CodeCompletion/DomConverter.cs b/CodeCompletion/DomConverter.cs index 3d8cae72a..8df8700a3 100644 --- a/CodeCompletion/DomConverter.cs +++ b/CodeCompletion/DomConverter.cs @@ -38,9 +38,13 @@ namespace CodeCompletion int i = 0; foreach (string s in files) { + string fname = Path.GetFileNameWithoutExtension(s); + if (fname == "__RedirectIOMode" || fname == "__RunMode" || fname == "PABCExtensions") + continue; SymInfo si = new SymInfo(Path.GetFileNameWithoutExtension(s), SymbolKind.Namespace, null); - si.IsUnitNamespace = true; + + si.description = GetUnitDescription(s); standard_units[i++] = si; } } @@ -50,6 +54,23 @@ namespace CodeCompletion } } + private string GetUnitDescription(string fileName) + { + var reader = File.OpenText(fileName); + string line = null; + string doc = ""; + while (!reader.EndOfStream) + { + line = reader.ReadLine(); + if (line.StartsWith("///")) + doc += line.Substring(3) + Environment.NewLine; + else if (line.StartsWith("unit")) + break; + } + reader.Close(); + return doc; + } + bool ICodeCompletionDomConverter.IsCompiled { get diff --git a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionHelpers.cs b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionHelpers.cs index 8196e9a49..c37d10a10 100644 --- a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionHelpers.cs +++ b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionHelpers.cs @@ -79,7 +79,7 @@ namespace VisualPascalABC { if (!dict.ContainsKey(si)) dict[si] = data; - if (!dict2.ContainsKey(si.description)) + if (!string.IsNullOrEmpty(si.description) && !dict2.ContainsKey(si.description)) dict2[si.description] = data; } diff --git a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionKeyHandler.cs b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionKeyHandler.cs index 308f16aee..645dccf90 100644 --- a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionKeyHandler.cs +++ b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionKeyHandler.cs @@ -137,7 +137,7 @@ namespace VisualPascalABC if (VisualPABCSingleton.MainForm.UserOptions.CodeCompletionDot) { PascalABCCompiler.Parsers.KeywordKind keyw = KeywordChecker.TestForKeyword(editor.Document.TextContent, editor.ActiveTextAreaControl.TextArea.Caret.Offset - 1); - if (keyw == PascalABCCompiler.Parsers.KeywordKind.New || VisualPABCSingleton.MainForm.UserOptions.EnableSmartIntellisense && keyw == PascalABCCompiler.Parsers.KeywordKind.Uses) + if (keyw == PascalABCCompiler.Parsers.KeywordKind.New || keyw == PascalABCCompiler.Parsers.KeywordKind.Uses) { completionDataProvider = new CodeCompletionProvider(); codeCompletionWindow = PABCNETCodeCompletionWindow.ShowCompletionWindow( diff --git a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs index 633866c48..3c686b88a 100644 --- a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs +++ b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs @@ -451,7 +451,13 @@ namespace VisualPascalABC if (new_space) mis = dconv.GetTypes(e, line, col, out sel_si); else if (keyw == PascalABCCompiler.Parsers.KeywordKind.Uses && mis == null) - mis = dconv.GetNamespaces(); + { + if (WorkbenchServiceFactory.Workbench.UserOptions.EnableSmartIntellisense) + mis = dconv.GetNamespaces(); + else + mis = CodeCompletion.DomConverter.standard_units; + } + else if (!ctrl_space) { diff --git a/bin/Lib/Graph3D.pas b/bin/Lib/Graph3D.pas index eb4adeb50..01340e6a4 100644 --- a/bin/Lib/Graph3D.pas +++ b/bin/Lib/Graph3D.pas @@ -1,3 +1,5 @@ +// Copyright (©) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) unit Graph3D; {$reference 'PresentationFramework.dll'} diff --git a/bin/Lib/GraphWPF.pas b/bin/Lib/GraphWPF.pas index 6b060324b..0079d69c9 100644 --- a/bin/Lib/GraphWPF.pas +++ b/bin/Lib/GraphWPF.pas @@ -1,4 +1,6 @@ -///Îñíîâíîé ìîäóëü ãðàôèêè +// Copyright (©) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) +///ОÑ�новной модуль графики unit GraphWPF; interface @@ -28,21 +30,21 @@ var CountVisuals := 0; procedure Invoke(d: System.Delegate; params args: array of object); type - /// Òèï êëàâèøè + /// Тип клавиши Key = System.Windows.Input.Key; - /// Öâåòîâûå êîíñòàíòû + /// Цветовые конÑ�танты Colors = System.Windows.Media.Colors; - /// Òèï öâåòà + /// Тип цвета Color = System.Windows.Media.Color; - /// Òèï öâåòà + /// Тип цвета GColor = System.Windows.Media.Color; - /// Òèï ïðÿìîóãîëüíèêà + /// Тип прÑ�моугольника GRect = System.Windows.Rect; GWindow = Window; GPen = System.Windows.Media.Pen; GPoint = System.Windows.Point; GBrush = System.Windows.Media.Brush; - /// Òèï ñòèëÿ øðèôòà + /// Тип Ñ�тилÑ� шрифта FontStyle = (Normal,Bold,Italic,BoldItalic); ///!# @@ -51,7 +53,7 @@ type c := Colors.White; function BrushConstruct := new SolidColorBrush(c); public - /// Öâåò êèñòè + /// Цвет киÑ�ти property Color: GColor read c write c; end; @@ -67,13 +69,13 @@ type Result.LineJoin := PenLineJoin.Round; end; public - /// Öâåò ïåðà + /// Цвет пера property Color: GColor read c write c; - /// Øèðèíà ïåðà + /// Ширина пера property Width: real read th write th; - /// Òåêóùàÿ êîîðäèíàòà X ïåðà + /// ТекущаÑ� координата X пера property X: real read fx; - /// Òåêóùàÿ êîîðäèíàòà Y ïåðà + /// ТекущаÑ� координата Y пера property Y: real read fy; end; @@ -101,13 +103,13 @@ type function TypefaceClone := tf; function BrushConstruct := new SolidColorBrush(c); public - /// Öâåò øðèôòà + /// Цвет шрифта property Color: GColor read c write c; - /// Èìÿ øðèôòà + /// ИмÑ� шрифта property Name: string read GetName write SetName; - /// Ðàçìåð øðèôòà â åäèíèöàõ ïî 1/96 äþéìà + /// Размер шрифта в единицах по 1/96 дюйма property Size: real read sz write sz; - /// Ñòèëü øðèôòà + /// Стиль шрифта property Style: FontStyle write SetFS; end; @@ -125,268 +127,268 @@ type procedure SetCaption(c: string); function GetCaption: string; public - /// Îòñòóï ãðàôè÷åñêîãî îêíà îò ëåâîãî êðàÿ ýêðàíà + /// ОтÑ�туп графичеÑ�кого окна от левого краÑ� Ñ�крана property Left: real read GetLeft write SetLeft; - /// Îòñòóï ãðàôè÷åñêîãî îêíà îò âåðõíåãî êðàÿ ýêðàíà + /// ОтÑ�туп графичеÑ�кого окна от верхнего краÑ� Ñ�крана property Top: real read GetTop write SetTop; - /// Øèðèíà êëèåíòñêîé ÷àñòè ãðàôè÷åñêîãî îêíà + /// Ширина клиентÑ�кой чаÑ�ти графичеÑ�кого окна property Width: real read GetWidth write SetWidth; - /// Âûñîòà êëèåíòñêîé ÷àñòè ãðàôè÷åñêîãî îêíà + /// Ð’Ñ‹Ñ�ота клиентÑ�кой чаÑ�ти графичеÑ�кого окна property Height: real read GetHeight write SetHeight; - /// Çàãîëîâîê ãðàôè÷åñêîãî îêíà + /// Заголовок графичеÑ�кого окна property Caption: string read GetCaption write SetCaption; - /// Çàãîëîâîê ãðàôè÷åñêîãî îêíà + /// Заголовок графичеÑ�кого окна property Title: string read GetCaption write SetCaption; - /// Î÷èùàåò ãðàôè÷åñêîå îêíî áåëûì öâåòîì + /// Очищает графичеÑ�кое окно белым цветом procedure Clear; - /// Î÷èùàåò ãðàôè÷åñêîå îêíî öâåòîì c + /// Очищает графичеÑ�кое окно цветом c procedure Clear(c: Color); - /// Óñòàíàâëèâàåò ðàçìåðû êëèåíòñêîé ÷àñòè ãðàôè÷åñêîãî îêíà + /// УÑ�танавливает размеры клиентÑ�кой чаÑ�ти графичеÑ�кого окна procedure SetSize(w, h: real); - /// Óñòàíàâëèâàåò îòñòóï ãðàôè÷åñêîãî îêíà îò ëåâîãî âåðõíåãî êðàÿ ýêðàíà + /// УÑ�танавливает отÑ�туп графичеÑ�кого окна от левого верхнего краÑ� Ñ�крана procedure SetPos(l, t: real); - /// Ñîõðàíÿåò ñîäåðæèìîå ãðàôè÷åñêîãî îêíà â ôàéë ñ èìåíåì fname + /// СохранÑ�ет Ñ�одержимое графичеÑ�кого окна в файл Ñ� именем fname procedure Save(fname: string); - /// Âîññòàíàâëèâàåò ñîäåðæèìîå ãðàôè÷åñêîãî îêíà èç ôàéëà ñ èìåíåì fname + /// ВоÑ�Ñ�танавливает Ñ�одержимое графичеÑ�кого окна из файла Ñ� именем fname procedure Load(fname: string); - /// Çàïîëíÿåò ñîäåðæèìîå ãðàôè÷åñêîãî îêíà îáîÿìè èç ôàéëà ñ èìåíåì fname + /// ЗаполнÑ�ет Ñ�одержимое графичеÑ�кого окна обоÑ�ми из файла Ñ� именем fname procedure Fill(fname: string); - /// Çàêðûâàåò ãðàôè÷åñêîå îêíî è çàâåðøàåò ïðèëîæåíèå + /// Закрывает графичеÑ�кое окно и завершает приложение procedure Close; - /// Ñâîðà÷èâàåò ãðàôè÷åñêîå îêíî + /// Сворачивает графичеÑ�кое окно procedure Minimize; - /// Ìàêñèìèçèðóåò ãðàôè÷åñêîå îêíî + /// МакÑ�имизирует графичеÑ�кое окно procedure Maximize; - /// Âîçâðàùàåò ãðàôè÷åñêîå îêíî ê íîðìàëüíîìó ðàçìåðó + /// Возвращает графичеÑ�кое окно к нормальному размеру procedure Normalize; - /// Öåíòðèðóåò ãðàôè÷åñêîå îêíî ïî öåíòðó ýêðàíà + /// Центрирует графичеÑ�кое окно по центру Ñ�крана procedure CenterOnScreen; - /// Âîçâðàùàåò öåíòð ãðàôè÷åñêîãî îêíà + /// Возвращает центр графичеÑ�кого окна function Center: Point; - /// Âîçâðàùàåò ïðÿìîóãîëüíèê êëèåíòñêîé îáëàñòè îêíà + /// Возвращает прÑ�моугольник клиентÑ�кой облаÑ�ти окна function ClientRect: GRect; end; - /// Âèäû ñèñòåìû êîîðäèíàò + /// Виды Ñ�иÑ�темы координат CoordType = (MathematicalCoords,ScreenCoords); - /// Êîíñòàíòû âûðàâíèâàíèÿ òåêñòà îòíîñèòåëüíî òî÷êè + /// КонÑ�танты выравниваниÑ� текÑ�та отноÑ�ительно точки Alignment = (LeftTop,CenterTop,RightTop,LeftCenter,Center,RightCenter,LeftBottom,CenterBottom,RightBottom); -/// Ðèñóåò ýëëèïñ ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñàìè rx è ry +/// РиÑ�ует Ñ�ллипÑ� Ñ� центром в точке (x,y) и радиуÑ�ами rx и ry procedure Ellipse(x,y,rx,ry: real); -/// Ðèñóåò êîíòóð ýëëèïñà ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñàìè rx è ry +/// РиÑ�ует контур Ñ�ллипÑ�а Ñ� центром в точке (x,y) и радиуÑ�ами rx и ry procedure DrawEllipse(x,y,rx,ry: real); -/// Ðèñóåò âíóòðåííîñòü ýëëèïñà ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñàìè rx è ry +/// РиÑ�ует внутренноÑ�ть Ñ�ллипÑ�а Ñ� центром в точке (x,y) и радиуÑ�ами rx и ry procedure FillEllipse(x,y,rx,ry: real); -/// Ðèñóåò ýëëèïñ ñ öåíòðîì â òî÷êå (x,y), ðàäèóñàìè rx è ry è öâåòîì âíóòðåííîñòè c +/// РиÑ�ует Ñ�ллипÑ� Ñ� центром в точке (x,y), радиуÑ�ами rx и ry и цветом внутренноÑ�ти c procedure Ellipse(x,y,rx,ry: real; c: Color); -/// Ðèñóåò êîíòóð ýëëèïñà ñ öåíòðîì â òî÷êå (x,y), ðàäèóñàìè rx è ry è öâåòîì c +/// РиÑ�ует контур Ñ�ллипÑ�а Ñ� центром в точке (x,y), радиуÑ�ами rx и ry и цветом c procedure DrawEllipse(x,y,rx,ry: real; c: Color); -/// Ðèñóåò âíóòðåííîñòü ýëëèïñà ñ öåíòðîì â òî÷êå (x,y), ðàäèóñàìè rx è ry è öâåòîì c +/// РиÑ�ует внутренноÑ�ть Ñ�ллипÑ�а Ñ� центром в точке (x,y), радиуÑ�ами rx и ry и цветом c procedure FillEllipse(x,y,rx,ry: real; c: Color); -/// Ðèñóåò îêðóæíîñòü ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r +/// РиÑ�ует окружноÑ�ть Ñ� центром в точке (x,y) и радиуÑ�ом r procedure Circle(x,y,r: real); -/// Ðèñóåò êîíòóð îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r +/// РиÑ�ует контур окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r procedure DrawCircle(x,y,r: real); -/// Ðèñóåò âíóòðåííîñòü îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r +/// РиÑ�ует внутренноÑ�ть окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r procedure FillCircle(x,y,r: real); -/// Ðèñóåò îêðóæíîñòü ñ öåíòðîì â òî÷êå (x,y), ðàäèóñîì r è öâåòîì c +/// РиÑ�ует окружноÑ�ть Ñ� центром в точке (x,y), радиуÑ�ом r и цветом c procedure Circle(x,y,r: real; c: Color); -/// Ðèñóåò êîíòóð îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y), ðàäèóñîì r è öâåòîì c +/// РиÑ�ует контур окружноÑ�ти Ñ� центром в точке (x,y), радиуÑ�ом r и цветом c procedure DrawCircle(x,y,r: real; c: Color); -/// Ðèñóåò âíóòðåííîñòü îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y), ðàäèóñîì r è öâåòîì c +/// РиÑ�ует внутренноÑ�ть окружноÑ�ти Ñ� центром в точке (x,y), радиуÑ�ом r и цветом c procedure FillCircle(x,y,r: real; c: Color); -/// Ðèñóåò ïðÿìîóãîëüíèê ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) +/// РиÑ�ует прÑ�моугольник Ñ� координатами вершин (x,y) и (x+w,y+h) procedure Rectangle(x,y,w,h: real); -/// Ðèñóåò êîíòóð ïðÿìîóãîëüíèêà ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) +/// РиÑ�ует контур прÑ�моугольника Ñ� координатами вершин (x,y) и (x+w,y+h) procedure DrawRectangle(x,y,w,h: real); -/// Ðèñóåò âíóòðåííîñòü ïðÿìîóãîëüíèêà ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) +/// РиÑ�ует внутренноÑ�ть прÑ�моугольника Ñ� координатами вершин (x,y) и (x+w,y+h) procedure FillRectangle(x,y,w,h: real); -/// Ðèñóåò ïðÿìîóãîëüíèê ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) öâåòîì c +/// РиÑ�ует прÑ�моугольник Ñ� координатами вершин (x,y) и (x+w,y+h) цветом c procedure Rectangle(x,y,w,h: real; c: Color); -/// Ðèñóåò êîíòóð ïðÿìîóãîëüíèêà ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) öâåòîì c +/// РиÑ�ует контур прÑ�моугольника Ñ� координатами вершин (x,y) и (x+w,y+h) цветом c procedure DrawRectangle(x,y,w,h: real; c: Color); -/// Ðèñóåò âíóòðåííîñòü ïðÿìîóãîëüíèêà ñ êîîðäèíàòàìè âåðøèí (x,y) è (x+w,y+h) öâåòîì c +/// РиÑ�ует внутренноÑ�ть прÑ�моугольника Ñ� координатами вершин (x,y) и (x+w,y+h) цветом c procedure FillRectangle(x,y,w,h: real; c: Color); -/// Ðèñóåò äóãó îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííóþ ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX +/// РиÑ�ует дугу окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенную между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX procedure Arc(x, y, r, angle1, angle2: real); -/// Ðèñóåò äóãó îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííóþ ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX, öâåòîì c +/// РиÑ�ует дугу окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенную между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX, цветом c procedure Arc(x, y, r, angle1, angle2: real; c: Color); -/// Ðèñóåò ñåêòîð îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííûé ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX +/// РиÑ�ует Ñ�ектор окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенный между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX procedure Sector(x, y, r, angle1, angle2: real); -/// Ðèñóåò êîíòóð ñåêòîðà îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîãî ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX +/// РиÑ�ует контур Ñ�ектора окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенного между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX procedure DrawSector(x, y, r, angle1, angle2: real); -/// Ðèñóåò âíóòðåííîñòü ñåêòîðà îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîãî ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX +/// РиÑ�ует внутренноÑ�ть Ñ�ектора окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенного между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX procedure FillSector(x, y, r, angle1, angle2: real); -/// Ðèñóåò ñåêòîð îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííûé ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX, öâåòîì c +/// РиÑ�ует Ñ�ектор окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенный между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX, цветом c procedure Sector(x, y, r, angle1, angle2: real; c: Color); -/// Ðèñóåò êîíòóð ñåêòîðà îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîãî ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX, öâåòîì c +/// РиÑ�ует контур Ñ�ектора окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенного между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX, цветом c procedure DrawSector(x, y, r, angle1, angle2: real; c: Color); -/// Ðèñóåò âíóòðåííîñòü ñåêòîðà îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîãî ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX, öâåòîì c +/// РиÑ�ует внутренноÑ�ть Ñ�ектора окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенного между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX, цветом c procedure FillSector(x, y, r, angle1, angle2: real; c: Color); -/// Ðèñóåò îòðåçîê ïðÿìîé îò òî÷êè (x,y) äî òî÷êè (x1,y1) +/// РиÑ�ует отрезок прÑ�мой от точки (x,y) до точки (x1,y1) procedure Line(x,y,x1,y1: real); -/// Ðèñóåò îòðåçîê ïðÿìîé îò òî÷êè (x,y) äî òî÷êè (x1,y1) öâåòîì c +/// РиÑ�ует отрезок прÑ�мой от точки (x,y) до точки (x1,y1) цветом c procedure Line(x,y,x1,y1: real; c: Color); -/// Óñòàíàâëèâàåò òåêóùóþ ïîçèöèþ ðèñîâàíèÿ â òî÷êó (x,y) +/// УÑ�танавливает текущую позицию риÑ�ованиÑ� в точку (x,y) procedure MoveTo(x,y: real); -/// Ðèñóåò îòðåçîê îò òåêóùåé ïîçèöèè äî òî÷êè (x,y). Òåêóùàÿ ïîçèöèÿ ïåðåíîñèòñÿ â òî÷êó (x,y) +/// РиÑ�ует отрезок от текущей позиции до точки (x,y). ТекущаÑ� позициÑ� переноÑ�итÑ�Ñ� в точку (x,y) procedure LineTo(x,y: real); -/// Ïåðåìåùàåò òåêóùóþ ïîçèöèþ ðèñîâàíèÿ íà âåêòîð (dx,dy) +/// Перемещает текущую позицию риÑ�ованиÑ� на вектор (dx,dy) procedure MoveRel(dx,dy: real); -/// Ðèñóåò îòðåçîê îò òåêóùåé ïîçèöèè äî òî÷êè, ñìåù¸ííîé íà âåêòîð (dx,dy). Òåêóùàÿ ïîçèöèÿ ïåðåíîñèòñÿ â íîâóþ òî÷êó +/// РиÑ�ует отрезок от текущей позиции до точки, Ñ�мещённой на вектор (dx,dy). ТекущаÑ� позициÑ� переноÑ�итÑ�Ñ� в новую точку procedure LineRel(dx,dy: real); -/// Ïåðåìåùàåò òåêóùóþ ïîçèöèþ ðèñîâàíèÿ íà âåêòîð (dx,dy) +/// Перемещает текущую позицию риÑ�ованиÑ� на вектор (dx,dy) procedure MoveOn(dx,dy: real); -/// Ðèñóåò îòðåçîê îò òåêóùåé ïîçèöèè äî òî÷êè, ñìåù¸ííîé íà âåêòîð (dx,dy). Òåêóùàÿ ïîçèöèÿ ïåðåíîñèòñÿ â íîâóþ òî÷êó +/// РиÑ�ует отрезок от текущей позиции до точки, Ñ�мещённой на вектор (dx,dy). ТекущаÑ� позициÑ� переноÑ�итÑ�Ñ� в новую точку procedure LineOn(dx,dy: real); -/// Ðèñóåò ëîìàíóþ, çàäàííóþ ìàññèâîì òî÷åê +/// РиÑ�ует ломаную, заданную маÑ�Ñ�ивом точек procedure PolyLine(points: array of Point); -/// Ðèñóåò ëîìàíóþ çàäàííóþ ìàññèâîì òî÷åê è öâåòîì +/// РиÑ�ует ломаную заданную маÑ�Ñ�ивом точек и цветом procedure PolyLine(points: array of Point; c: Color); -/// Ðèñóåò ìíîãîóãîëüíèê, çàäàííûé ìàññèâîì òî÷åê +/// РиÑ�ует многоугольник, заданный маÑ�Ñ�ивом точек procedure Polygon(points: array of Point); -/// Ðèñóåò êîíòóð ìíîãîóãîëüíèêà, çàäàííîãî ìàññèâîì òî÷åê +/// РиÑ�ует контур многоугольника, заданного маÑ�Ñ�ивом точек procedure DrawPolygon(points: array of Point); -/// Ðèñóåò âíóòðåííîñòü ìíîãîóãîëüíèêà, çàäàííîãî ìàññèâîì òî÷åê +/// РиÑ�ует внутренноÑ�ть многоугольника, заданного маÑ�Ñ�ивом точек procedure FillPolygon(points: array of Point); -/// Ðèñóåò ìíîãîóãîëüíèê, çàäàííûé ìàññèâîì òî÷åê è öâåòîì +/// РиÑ�ует многоугольник, заданный маÑ�Ñ�ивом точек и цветом procedure Polygon(points: array of Point; c: Color); -/// Ðèñóåò êîíòóð ìíîãîóãîëüíèêà, çàäàííîãî ìàññèâîì òî÷åê è öâåòîì +/// РиÑ�ует контур многоугольника, заданного маÑ�Ñ�ивом точек и цветом procedure DrawPolygon(points: array of Point; c: GColor); -/// Ðèñóåò âíóòðåííîñòü ìíîãîóãîëüíèêà, çàäàííîãî ìàññèâîì òî÷åê è öâåòîì +/// РиÑ�ует внутренноÑ�ть многоугольника, заданного маÑ�Ñ�ивом точек и цветом procedure FillPolygon(points: array of Point; c: GColor); -/// Ðèñóåò èçîáðàæåíèå èç ôàéëà fname â ïîçèöèè (x,y) +/// РиÑ�ует изображение из файла fname в позиции (x,y) procedure DrawImage(x,y: real; fname: string); -/// Ðèñóåò èçîáðàæåíèå èç ôàéëà fname â ïîçèöèè (x,y) ðàçìåðà w íà h +/// РиÑ�ует изображение из файла fname в позиции (x,y) размера w на h procedure DrawImage(x,y,w,h: real; fname: string); -/// Ðèñóåò íåìàñøòàáèðîâàííîå èçîáðàæåíèå èç ôàéëà fname â ïîçèöèè (x,y) +/// РиÑ�ует немаÑ�штабированное изображение из файла fname в позиции (x,y) procedure DrawImageUnscaled(x,y: real; fname: string); -/// Âûâîäèò âèäåîèç ôàéëà fname â ïîçèöèþ (x,y) +/// Выводит видеоиз файла fname в позицию (x,y) procedure DrawVideo(x,y: real; fname: string); -/// Øèðèíà èçîáðàæåíèÿ â ïèêñåëàõ +/// Ширина изображениÑ� в пикÑ�елах function ImageWidth(fname: string): integer; -/// Âûñîòà èçîáðàæåíèÿ â ïèêñåëàõ +/// Ð’Ñ‹Ñ�ота изображениÑ� в пикÑ�елах function ImageHeight(fname: string): integer; -/// Ðàçìåð èçîáðàæåíèÿ â ïèêñåëàõ +/// Размер изображениÑ� в пикÑ�елах function ImageSize(fname: string): (integer,integer); -/// Øèðèíà òåêñòà ïðè âûâîäå +/// Ширина текÑ�та при выводе function TextWidth(text: string): real; -/// Âûñîòà òåêñòà ïðè âûâîäå +/// Ð’Ñ‹Ñ�ота текÑ�та при выводе function TextHeight(text: string): real; -/// Ðàçìåð òåêñòà ïðè âûâîäå +/// Размер текÑ�та при выводе function TextSize(text: string): Size; -/// Òåêóùàÿ êèñòü +/// ТекущаÑ� киÑ�ть var Brush: BrushType; -/// Òåêóùåå ïåðî +/// Текущее перо var Pen: PenType; -/// Òåêóùèé øðèôò +/// Текущий шрифт var Font: FontType; -/// Òåêóùåå îêíî +/// Текущее окно var Window: WindowType; var - /// Ñîáûòèå íàæàòèÿ íà êíîïêó ìûøè. (x,y) - êîîðäèíàòû êóðñîðà ìûøè â ìîìåíò íàñòóïëåíèÿ ñîáûòèÿ, mousebutton = 1, åñëè íàæàòà ëåâàÿ êíîïêà ìûøè, è 2, åñëè íàæàòà ïðàâàÿ êíîïêà ìûøè + /// Событие нажатиÑ� на кнопку мыши. (x,y) - координаты курÑ�ора мыши в момент наÑ�туплениÑ� Ñ�обытиÑ�, mousebutton = 1, еÑ�ли нажата леваÑ� кнопка мыши, и 2, еÑ�ли нажата праваÑ� кнопка мыши OnMouseDown: procedure(x, y: real; mousebutton: integer); - /// Ñîáûòèå îòæàòèÿ êíîïêè ìûøè. (x,y) - êîîðäèíàòû êóðñîðà ìûøè â ìîìåíò íàñòóïëåíèÿ ñîáûòèÿ, mousebutton = 1, åñëè îòæàòà ëåâàÿ êíîïêà ìûøè, è 2, åñëè îòæàòà ïðàâàÿ êíîïêà ìûøè + /// Событие отжатиÑ� кнопки мыши. (x,y) - координаты курÑ�ора мыши в момент наÑ�туплениÑ� Ñ�обытиÑ�, mousebutton = 1, еÑ�ли отжата леваÑ� кнопка мыши, и 2, еÑ�ли отжата праваÑ� кнопка мыши OnMouseUp: procedure(x, y: real; mousebutton: integer); - /// Ñîáûòèå ïåðåìåùåíèÿ ìûøè. (x,y) - êîîðäèíàòû êóðñîðà ìûøè â ìîìåíò íàñòóïëåíèÿ ñîáûòèÿ, mousebutton = 0, åñëè êíîïêà ìûøè íå íàæàòà, 1, åñëè íàæàòà ëåâàÿ êíîïêà ìûøè, è 2, åñëè íàæàòà ïðàâàÿ êíîïêà ìûøè + /// Событие перемещениÑ� мыши. (x,y) - координаты курÑ�ора мыши в момент наÑ�туплениÑ� Ñ�обытиÑ�, mousebutton = 0, еÑ�ли кнопка мыши не нажата, 1, еÑ�ли нажата леваÑ� кнопка мыши, и 2, еÑ�ли нажата праваÑ� кнопка мыши OnMouseMove: procedure(x, y: real; mousebutton: integer); - /// Ñîáûòèå íàæàòèÿ êëàâèøè + /// Событие нажатиÑ� клавиши OnKeyDown: procedure(k: Key); - /// Ñîáûòèå îòæàòèÿ êëàâèøè + /// Событие отжатиÑ� клавиши OnKeyUp: procedure(k: Key); - /// Ñîáûòèå íàæàòèÿ ñèìâîëüíîé êëàâèøè + /// Событие нажатиÑ� Ñ�имвольной клавиши OnKeyPress: procedure(ch: char); -/// Âîçâðàùàåò öâåò ïî êðàñíîé, çåëåíîé è ñèíåé ñîñòàâëÿþùåé (â äèàïàçîíå 0..255) +/// Возвращает цвет по краÑ�ной, зеленой и Ñ�иней Ñ�оÑ�тавлÑ�ющей (в диапазоне 0..255) function RGB(r,g,b: byte): Color; -/// Âîçâðàùàåò öâåò ïî êðàñíîé, çåëåíîé è ñèíåé ñîñòàâëÿþùåé è ïàðàìåòðó ïðîçðà÷íîñòè (â äèàïàçîíå 0..255) +/// Возвращает цвет по краÑ�ной, зеленой и Ñ�иней Ñ�оÑ�тавлÑ�ющей и параметру прозрачноÑ�ти (в диапазоне 0..255) function ARGB(a,r,g,b: byte): Color; -/// Âîçâðàùàåò ñëó÷àéíûé öâåò +/// Возвращает Ñ�лучайный цвет function RandomColor: Color; -/// Âîçâðàùàåò ñëó÷àéíûé öâåò +/// Возвращает Ñ�лучайный цвет function clRandom: Color; -/// Âîçâðàùàåò òî÷êó ñ êîîðäèíàòàìè (x,y) +/// Возвращает точку Ñ� координатами (x,y) function Pnt(x,y: real): GPoint; -/// Âîçâðàùàåò ïðÿìîóãîëüíèê ñ êîîðäèíàòàìè óãëà (x,y), øèðèíîé w è âûñîòîé h +/// Возвращает прÑ�моугольник Ñ� координатами угла (x,y), шириной w и выÑ�отой h function Rect(x,y,w,h: real): GRect; -/// Âîçâðàùàåò îäíîòîííóþ öâåòíóþ êèñòü, çàäàííóþ öâåòîì +/// Возвращает однотонную цветную киÑ�ть, заданную цветом function ColorBrush(c: Color): GBrush; -/// Âîçâðàùàåò îäíîòîííîå öâåòíîå ïåðî, çàäàííîå öâåòîì +/// Возвращает однотонное цветное перо, заданное цветом function ColorPen(c: Color): GPen; -/// Íà÷àòü àíèìàöèþ, îñíîâàííóþ íà êàäðå +/// Ð�ачать анимацию, оÑ�нованную на кадре procedure BeginFrameBasedAnimation(Draw: procedure; frate: integer := 60); -/// Íà÷àòü àíèìàöèþ, îñíîâàííóþ íà êàäðå +/// Ð�ачать анимацию, оÑ�нованную на кадре procedure BeginFrameBasedAnimation(Draw: procedure(frame: integer); frate: integer := 60); -/// Çàâåðøèòü àíèìàöèþ, îñíîâàííóþ íà êàäðå +/// Завершить анимацию, оÑ�нованную на кадре procedure EndFrameBasedAnimation; -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит Ñ�троку в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; text: string; align: Alignment := Alignment.Center); -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит Ñ�троку в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; text: string; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит целое в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: integer; align: Alignment := Alignment.Center); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит вещеÑ�твенное в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: real; align: Alignment := Alignment.Center); -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê +/// Выводит Ñ�троку в прÑ�моугольник procedure DrawText(r: GRect; text: string; align: Alignment := Alignment.Center); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê +/// Выводит целое в прÑ�моугольник procedure DrawText(r: GRect; number: integer; align: Alignment := Alignment.Center); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê +/// Выводит вещеÑ�твенное в прÑ�моугольник procedure DrawText(r: GRect; number: real; align: Alignment := Alignment.Center); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит целое в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: integer; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит вещеÑ�твенное в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: real; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê +/// Выводит Ñ�троку в прÑ�моугольник procedure DrawText(r: GRect; text: string; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê +/// Выводит целое в прÑ�моугольник procedure DrawText(r: GRect; number: integer; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê +/// Выводит вещеÑ�твенное в прÑ�моугольник procedure DrawText(r: GRect; number: real; c: GColor; align: Alignment := Alignment.Center); -/// Âûâîäèò ñòðîêó â ïîçèöèþ (x,y) +/// Выводит Ñ�троку в позицию (x,y) procedure TextOut(x, y: real; text: string; align: Alignment := Alignment.LeftTop); -/// Âûâîäèò ñòðîêó â ïîçèöèþ (x,y) öâåòîì c +/// Выводит Ñ�троку в позицию (x,y) цветом c procedure TextOut(x, y: real; text: string; c: GColor; align: Alignment := Alignment.LeftTop); -/// Âûâîäèò öåëîå â ïîçèöèþ (x,y) +/// Выводит целое в позицию (x,y) procedure TextOut(x, y: real; text: integer; align: Alignment := Alignment.LeftTop); -/// Âûâîäèò öåëîå â ïîçèöèþ (x,y) öâåòîì c +/// Выводит целое в позицию (x,y) цветом c procedure TextOut(x, y: real; text: integer; c: GColor; align: Alignment := Alignment.LeftTop); -/// Âûâîäèò âåùåñòâåííîå â ïîçèöèþ (x,y) +/// Выводит вещеÑ�твенное в позицию (x,y) procedure TextOut(x, y: real; text: real; align: Alignment := Alignment.LeftTop); -/// Âûâîäèò âåùåñòâåííîå â ïîçèöèþ (x,y) öâåòîì c +/// Выводит вещеÑ�твенное в позицию (x,y) цветом c procedure TextOut(x, y: real; text: real; c: GColor; align: Alignment := Alignment.LeftTop); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b] ïî îñè àáñöèññ è íà îòðåçêå [min,max] ïî îñè îðäèíàò, â ïðÿìîóãîëüíèêå, çàäàâàåìîì êîîðäèíàòàìè x1,y1,x2,y2, +/// РиÑ�ует график функции f, заданной на отрезке [a,b] по оÑ�и абÑ�циÑ�Ñ� и на отрезке [min,max] по оÑ�и ординат, в прÑ�моугольнике, задаваемом координатами x1,y1,x2,y2, procedure DrawGraph(f: real -> real; a, b, min, max, x, y, w, h: real); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b] ïî îñè àáñöèññ è íà îòðåçêå [min,max] ïî îñè îðäèíàò, â ïðÿìîóãîëüíèêå r +/// РиÑ�ует график функции f, заданной на отрезке [a,b] по оÑ�и абÑ�циÑ�Ñ� и на отрезке [min,max] по оÑ�и ординат, в прÑ�моугольнике r procedure DrawGraph(f: real -> real; a, b, min, max: real; r: GRect); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b] ïî îñè àáñöèññ è íà îòðåçêå [min,max] ïî îñè îðäèíàò, íà ïîëíîå ãðàôè÷åñêîå îêíî +/// РиÑ�ует график функции f, заданной на отрезке [a,b] по оÑ�и абÑ�циÑ�Ñ� и на отрезке [min,max] по оÑ�и ординат, на полное графичеÑ�кое окно procedure DrawGraph(f: real -> real; a, b, min, max: real); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b], â ïðÿìîóãîëüíèêå, çàäàâàåìîì êîîðäèíàòàìè x1,y1,x2,y2, +/// РиÑ�ует график функции f, заданной на отрезке [a,b], в прÑ�моугольнике, задаваемом координатами x1,y1,x2,y2, procedure DrawGraph(f: real -> real; a, b: real; x, y, w, h: real); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b], â ïðÿìîóãîëüíèêå r +/// РиÑ�ует график функции f, заданной на отрезке [a,b], в прÑ�моугольнике r procedure DrawGraph(f: real -> real; a, b: real; r: GRect); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [-5,5], â ïðÿìîóãîëüíèêå r +/// РиÑ�ует график функции f, заданной на отрезке [-5,5], в прÑ�моугольнике r procedure DrawGraph(f: real -> real; r: GRect); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b], íà ïîëíîå ãðàôè÷åñêîå îêíî +/// РиÑ�ует график функции f, заданной на отрезке [a,b], на полное графичеÑ�кое окно procedure DrawGraph(f: real -> real; a, b: real); -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [-5,5], íà ïîëíîå ãðàôè÷åñêîå îêíî +/// РиÑ�ует график функции f, заданной на отрезке [-5,5], на полное графичеÑ�кое окно procedure DrawGraph(f: real -> real); procedure SetMathematicCoords(x1: real := -10; x2: real := 10; drawcoords: boolean := true); @@ -497,7 +499,7 @@ end; function ScaleToDevice: (real,real); begin var pSource := PresentationSource.FromVisual(MainWindow); - if pSource = nil then // íå çíàþ, ïî÷åìó + if pSource = nil then // не знаю, почему begin Result := (1.0,1.0); exit @@ -668,7 +670,7 @@ function ImageHeight(fname: string) := Invoke&(ImHelper.Create(fname).I function ImageSize(fname: string) := Invoke&<(integer,integer)>(ImHelper.Create(fname).ISz); -// Íåò ñâîéñòâ ïîñìîòðåòü ðàçìåðû âèäåî! +// Ð�ет Ñ�войÑ�тв поÑ�мотреть размеры видео! procedure DrawVideoP(x,y,w,h: real; fname: string); begin var dc := GetDC(); @@ -679,7 +681,7 @@ begin dc.Close(); end; -// À òåïåðü çàéì¸ìñÿ ïîëèãîíàìè... +// Ð� теперь займёмÑ�Ñ� полигонами... procedure DrawPolygonOrPolyline(Self: DrawingContext; b: GBrush; p: GPen; points: array of Point; draw_polygon: boolean); extensionmethod; begin @@ -808,11 +810,11 @@ procedure Rectangle(x,y,w,h: real; c: GColor) := InvokeVisual(RectanglePC,x,y,w, procedure DrawRectangle(x,y,w,h: real; c: GColor) := InvokeVisual(DrawRectanglePC,x,y,w,h,c); procedure FillRectangle(x,y,w,h: real; c: GColor) := InvokeVisual(FillRectanglePC,x,y,w,h,c); -/// Ðèñóåò äóãó îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîé ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX (angle1 è angle2 – âåùåñòâåííûå, çàäàþòñÿ â ãðàäóñàõ è îòñ÷èòûâàþòñÿ ïðîòèâ ÷àñîâîé ñòðåëêè) +/// РиÑ�ует дугу окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенной между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX (angle1 и angle2 – вещеÑ�твенные, задаютÑ�Ñ� в градуÑ�ах и отÑ�читываютÑ�Ñ� против чаÑ�овой Ñ�трелки) procedure Arc(x, y, r, angle1, angle2: real) := InvokeVisual(ArcP,x, y, r, angle1, angle2); procedure Arc(x, y, r, angle1, angle2: real; c: GColor) := InvokeVisual(ArcPC,x, y, r, angle1, angle2, c); -/// Ðèñóåò ñåêòîð îêðóæíîñòè ñ öåíòðîì â òî÷êå (x,y) è ðàäèóñîì r, çàêëþ÷åííîé ìåæäó äâóìÿ ëó÷àìè, îáðàçóþùèìè óãëû angle1 è angle2 ñ îñüþ OX (angle1 è angle2 – âåùåñòâåííûå, çàäàþòñÿ â ãðàäóñàõ è îòñ÷èòûâàþòñÿ ïðîòèâ ÷àñîâîé ñòðåëêè) +/// РиÑ�ует Ñ�ектор окружноÑ�ти Ñ� центром в точке (x,y) и радиуÑ�ом r, заключенной между двумÑ� лучами, образующими углы angle1 и angle2 Ñ� оÑ�ью OX (angle1 и angle2 – вещеÑ�твенные, задаютÑ�Ñ� в градуÑ�ах и отÑ�читываютÑ�Ñ� против чаÑ�овой Ñ�трелки) procedure Sector(x, y, r, angle1, angle2: real) := InvokeVisual(SectorP,x, y, r, angle1, angle2); procedure DrawSector(x, y, r, angle1, angle2: real) := InvokeVisual(DrawSectorP,x, y, r, angle1, angle2); procedure FillSector(x, y, r, angle1, angle2: real) := InvokeVisual(FillSectorP,x, y, r, angle1, angle2); @@ -849,11 +851,11 @@ procedure DrawImage(x,y,w,h: real; fname: string) := InvokeVisual(DrawImageWHP,x procedure DrawImageUnscaled(x,y: real; fname: string) := InvokeVisual(DrawImageUnscaledP,x,y,fname); procedure DrawVideo(x,y: real; fname: string) := InvokeVisual(DrawVideoP,x,y,fname); -/// Øèðèíà òåêñòà ïðè âûâîäå +/// Ширина текÑ�та при выводе function TextWidth(text: string) := Invoke&(TextV.Create(text).TextWidth); -/// Âûñîòà òåêñòà ïðè âûâîäå +/// Ð’Ñ‹Ñ�ота текÑ�та при выводе function TextHeight(text: string) := Invoke&(TextV.Create(text).TextHeight); -/// Ðàçìåð òåêñòà ïðè âûâîäå +/// Размер текÑ�та при выводе function TextSize(text: string): Size := Invoke&(TextV.Create(text).TextSize); procedure TextOutHelper(x,y: real; text: string) := InvokeVisual(DrawTextP,x,y,text); @@ -887,7 +889,7 @@ begin end; // Println(dw,dh); case align of - Alignment.LeftTop: {íè÷åãî}; + Alignment.LeftTop: {ничего}; Alignment.LeftCenter: y += dh; Alignment.LeftBottom: y += 2*dh; Alignment.CenterTop: x += dw; @@ -903,37 +905,37 @@ begin Alignment.LeftBottom, Alignment.CenterBottom, Alignment.RightBottom: y -= h; end; end; -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит Ñ�троку в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; text: string; align: Alignment); begin DrawTextHelper(x, y, w, h, text,align); TextOutHelper(x,y,text) end; -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит Ñ�троку в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; text: string; c: GColor; align: Alignment); begin DrawTextHelper(x, y, w, h,text,align); TextOutHelper(x,y,text,c) end; -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит целое в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: integer; align: Alignment) := DrawText(x, y, w, h, '' + number,align); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит вещеÑ�твенное в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: real; align: Alignment) := DrawText(x, y, w, h, '' + number,align); -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê +/// Выводит Ñ�троку в прÑ�моугольник procedure DrawText(r: GRect; text: string; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,text,align); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê +/// Выводит целое в прÑ�моугольник procedure DrawText(r: GRect; number: integer; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,number,align); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê +/// Выводит вещеÑ�твенное в прÑ�моугольник procedure DrawText(r: GRect; number: real; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,number,align); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит целое в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: integer; c: GColor; align: Alignment) := DrawText(x, y, w, h, '' + number,c,align); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê ê êîîðäèíàòàìè ëåâîãî âåðõíåãî óãëà (x,y) +/// Выводит вещеÑ�твенное в прÑ�моугольник к координатами левого верхнего угла (x,y) procedure DrawText(x, y, w, h: real; number: real; c: GColor; align: Alignment) := DrawText(x, y, w, h, '' + number,c,align); -/// Âûâîäèò ñòðîêó â ïðÿìîóãîëüíèê +/// Выводит Ñ�троку в прÑ�моугольник procedure DrawText(r: GRect; text: string; c: GColor; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,text,c,align); -/// Âûâîäèò öåëîå â ïðÿìîóãîëüíèê +/// Выводит целое в прÑ�моугольник procedure DrawText(r: GRect; number: integer; c: GColor; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,number,c,align); -/// Âûâîäèò âåùåñòâåííîå â ïðÿìîóãîëüíèê +/// Выводит вещеÑ�твенное в прÑ�моугольник procedure DrawText(r: GRect; number: real; c: GColor; align: Alignment) := DrawText(r.x,r.y,r.Width,r.Height,number,c,align); {function ConvertAlign(align: Alignment): Alignment; @@ -970,7 +972,7 @@ type function RealToScreenY(y: real) := y1 - my * (y + min); end; -/// Ðèñóåò ãðàôèê ôóíêöèè f, çàäàííîé íà îòðåçêå [a,b] ïî îñè àáñöèññ è íà îòðåçêå [min,max] ïî îñè îðäèíàò, â ïðÿìîóãîëüíèêå, çàäàâàåìîì ïàðàìåòðàìè x,y,w,h, +/// РиÑ�ует график функции f, заданной на отрезке [a,b] по оÑ�и абÑ�циÑ�Ñ� и на отрезке [min,max] по оÑ�и ординат, в прÑ�моугольнике, задаваемом параметрами x,y,w,h, procedure DrawGraph(f: real-> real; a, b, min, max, x, y, w, h: real); begin var coefx := w / (b - a); @@ -978,7 +980,7 @@ begin var fso := new FS(coefx, coefy, a, min, max, x, y, f); - // Ëèíèè + // Линии {Pen.Color := Color.LightGray; var hx := 1.0; @@ -1015,7 +1017,7 @@ begin yy -= hy end; - // Îñè + // ОÑ�и Pen.Color := Color.Blue; var x0 := fso.RealToScreenX(0); @@ -1024,7 +1026,7 @@ begin Line(x0,y1,x0,y2); Line(x1,y0,x2,y0);} - // Ãðàôèê + // График Pen.Color := Colors.Black; Rectangle(x, y, w, h); @@ -1090,7 +1092,7 @@ procedure WindowType.Clear := app.Dispatcher.Invoke(WindowTypeClearP); procedure WindowType.Clear(c: Color); begin - raise new System.NotImplementedException('WindowType.Clear(c) ïîêà íå ðåàëèçîâàíî. ×åñòíîå ñëîâî - â áóäóùåì!') + raise new System.NotImplementedException('WindowType.Clear(c) пока не реализовано. ЧеÑ�тное Ñ�лово - в будущем!') end; procedure WindowTypeSetSizeP(w, h: real); @@ -1168,7 +1170,7 @@ function YMax := YOrigin/GlobalScale; procedure DrawGridP; begin if CurrentCoordType = ScreenCoords then - raise new Exception('Ðèñîâàíèå êîîðäèíàòíîé ñåòêè âîçìîæíî òîëüêî â ìàòåìàòè÷åñêîì ðåæèìå'); + raise new Exception('РиÑ�ование координатной Ñ�етки возможно только в математичеÑ�ком режиме'); var xfrom := Round(XMin); var xto := Round(XMax); @@ -1218,7 +1220,7 @@ begin // 0 x0 Window.Width GlobalScale := Window.Width/(x2-x1); XOrigin := -x1*GlobalScale; - // -ymin*scale - ñêîëüêî íàäî îòñòóïèòü îò íèçà îêíà + // -ymin*scale - Ñ�колько надо отÑ�тупить от низа окна // Window.Height + ymin*scale YOrigin := Window.Height + ymin*GlobalScale; SetMathematicCoordsScaleP(XOrigin,YOrigin,GlobalScale); @@ -1237,7 +1239,7 @@ begin GlobalScale := scale; var m: Transform := new MatrixTransform(scale,0,0,scale,x0,y0); Host.RenderTransform := m; - Pen.Width := Pen.Width * scale; // íåò! + Pen.Width := Pen.Width * scale; // нет! end; procedure SetStandardCoords(scale,x0,y0: real) := Invoke(SetStandardCoordsP,scale,x0,y0); @@ -1299,7 +1301,7 @@ var mre := new ManualResetEvent(false); var OnDraw: procedure := nil; var OnDraw1: procedure(frame: integer) := nil; -var FrameRate := 60; // êàäðîâ â ñåêóíäó. Ìîæíî ìåíüøå! +var FrameRate := 60; // кадров в Ñ�екунду. Можно меньше! var LastUpdatedTime := new System.TimeSpan(integer.MinValue); var FrameNum := 0; @@ -1310,13 +1312,13 @@ begin begin var e1 := RenderingEventArgs(e).RenderingTime; var dt := e1 - LastUpdatedTime; - var delta := 1000/Framerate; // ÷åðåç êàêîå âðåìÿ îáíîâëÿòü + var delta := 1000/Framerate; // через какое времÑ� обновлÑ�ть if dt.TotalMilliseconds < delta then exit else LastUpdatedTime := e1; FrameNum += 1; Window.Clear; - CountVisuals := integer.MinValue; // ÷òîáû íå áûëî ïàóçû ïîñëå 1000 îáúåêòîâ + CountVisuals := integer.MinValue; // чтобы не было паузы поÑ�ле 1000 объектов end; if OnDraw<>nil then OnDraw() @@ -1362,7 +1364,7 @@ begin Font := new FontType; Window := new WindowType; - MainWindow.Title := 'Ãðàôèêà WPF'; + MainWindow.Title := 'Графика WPF'; var (w,h) := (800,600); (MainWindow.Width, MainWindow.Height) := (w + wplus, h + hplus); @@ -1390,5 +1392,5 @@ begin MainFormThread.SetApartmentState(ApartmentState.STA); MainFormThread.Start; - mre.WaitOne; // Îñíîâíàÿ ïðîãðàììà íå íà÷íåòñÿ ïîêà íå áóäóò èíèöèàëèçèðîâàíû âñå êîìïîíåíòû ïðèëîæåíèÿ + mre.WaitOne; // ОÑ�новнаÑ� программа не начнетÑ�Ñ� пока не будут инициализированы вÑ�е компоненты приложениÑ� end. \ No newline at end of file diff --git a/bin/Lib/PT4.pas b/bin/Lib/PT4.pas index 941db637c..b7bca12c4 100644 --- a/bin/Lib/PT4.pas +++ b/bin/Lib/PT4.pas @@ -1,16 +1,16 @@ -/// Ìîäóëü ýëåêòðîííîãî çàäà÷íèêà Programming Taskbook 4 +/// Модуль Ñ�лектронного задачника Programming Taskbook 4 unit PT4; //------------------------------------------------------------------------------ -// Ìîäóëü äëÿ ïîäêëþ÷åíèÿ çàäà÷íèêà 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 -// Copyright (c) 2017 Ì.Ý.Àáðàìÿí, äîïîëíåíèÿ ê âåðñèè 4.17 -// Ýëåêòðîííûé çàäà÷íèê Programming Taskbook Copyright (c)Ì.Ý.Àáðàìÿí, 1998-2017 +// Модуль длÑ� подключениÑ� задачника Programming Taskbook +// ВерÑ�иÑ� 4.15 +// Copyright (©) 2006-2008 DarkStar, SSM +// Copyright (©) 2010 М.Э.Ð�брамÑ�н, дополнениÑ� к верÑ�ии 1.3 +// Copyright (©) 2014-2015 М.Э.Ð�брамÑ�н, дополнениÑ� к верÑ�ии 4.13 +// Copyright (©) 2015 М.Э.Ð�брамÑ�н, дополнениÑ� к верÑ�ии 4.14 +// Copyright (©) 2016 М.Э.Ð�брамÑ�н, дополнениÑ� к верÑ�ии 4.15 +// Copyright (©) 2017 М.Э.Ð�брамÑ�н, дополнениÑ� к верÑ�ии 4.17 +// Электронный задачник Programming Taskbook Copyright (c)М.Э.Ð�брамÑ�н, 1998-2017 //------------------------------------------------------------------------------ {$apptype windows} @@ -22,9 +22,9 @@ uses System, System.Collections, System.Runtime.InteropServices; type - /// Òèï óêàçàòåëÿ íà óçåë ñïèñêà + /// Тип указателÑ� на узел Ñ�пиÑ�ка PNode = ^TNode; - /// Òèï óçëà ñïèñêà + /// Тип узла Ñ�пиÑ�ка TNode = record Data: integer; Next,Prev,Left,Right,Parent: PNode; @@ -80,240 +80,240 @@ 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. Конец дополнений == -// == Âåðñèÿ 4.17. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.17. ДополнениÑ� == -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà integer +/// Возвращает кортеж из двух введенных значений типа integer function ReadInteger2: (integer, integer); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà real +/// Возвращает кортеж из двух введенных значений типа real function ReadReal2: (real, real); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà char +/// Возвращает кортеж из двух введенных значений типа char function ReadChar2: (char, char); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà string +/// Возвращает кортеж из двух введенных значений типа string function ReadString2: (string, string); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà boolean +/// Возвращает кортеж из двух введенных значений типа boolean function ReadBoolean2: (boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà Node +/// Возвращает кортеж из двух введенных значений типа Node function ReadNode2: (Node, Node); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà integer +/// Возвращает кортеж из двух введенных значений типа integer function ReadlnInteger2: (integer, integer); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà real +/// Возвращает кортеж из двух введенных значений типа real function ReadlnReal2: (real, real); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà char +/// Возвращает кортеж из двух введенных значений типа char function ReadlnChar2: (char, char); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà string +/// Возвращает кортеж из двух введенных значений типа string function ReadlnString2: (string, string); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà boolean +/// Возвращает кортеж из двух введенных значений типа boolean function ReadlnBoolean2: (boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà Node +/// Возвращает кортеж из двух введенных значений типа Node function ReadlnNode2: (Node, Node); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà integer +/// Возвращает кортеж из трех введенных значений типа integer function ReadInteger3: (integer, integer, integer); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà real +/// Возвращает кортеж из трех введенных значений типа real function ReadReal3: (real, real, real); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà char +/// Возвращает кортеж из трех введенных значений типа char function ReadChar3: (char, char, char); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà string +/// Возвращает кортеж из трех введенных значений типа string function ReadString3: (string, string, string); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà boolean +/// Возвращает кортеж из трех введенных значений типа boolean function ReadBoolean3: (boolean, boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà Node +/// Возвращает кортеж из трех введенных значений типа Node function ReadNode3: (Node, Node, Node); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà integer +/// Возвращает кортеж из трех введенных значений типа integer function ReadlnInteger3: (integer, integer, integer); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà real +/// Возвращает кортеж из трех введенных значений типа real function ReadlnReal3: (real, real, real); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà char +/// Возвращает кортеж из трех введенных значений типа char function ReadlnChar3: (char, char, char); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà string +/// Возвращает кортеж из трех введенных значений типа string function ReadlnString3: (string, string, string); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà boolean +/// Возвращает кортеж из трех введенных значений типа boolean function ReadlnBoolean3: (boolean, boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà Node +/// Возвращает кортеж из трех введенных значений типа Node function ReadlnNode3: (Node, Node, Node); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà integer. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа integer. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadInteger2(prompt: string): (integer, integer); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà real. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа real. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadReal2(prompt: string): (real, real); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà char. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа char. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadChar2(prompt: string): (char, char); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà string. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа string. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadString2(prompt: string): (string, string); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà boolean. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа boolean. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadBoolean2(prompt: string): (boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà Node. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа Node. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadNode2(prompt: string): (Node, Node); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà integer. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа integer. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnInteger2(prompt: string): (integer, integer); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà real. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа real. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnReal2(prompt: string): (real, real); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà char. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа char. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnChar2(prompt: string): (char, char); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà string. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа string. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnString2(prompt: string): (string, string); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà boolean. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа boolean. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnBoolean2(prompt: string): (boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç äâóõ ââåäåííûõ çíà÷åíèé òèïà Node. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из двух введенных значений типа Node. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnNode2(prompt: string): (Node, Node); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà integer. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа integer. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadInteger3(prompt: string): (integer, integer, integer); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà real. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа real. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadReal3(prompt: string): (real, real, real); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà char. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа char. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadChar3(prompt: string): (char, char, char); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà string. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа string. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadString3(prompt: string): (string, string, string); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà boolean. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа boolean. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadBoolean3(prompt: string): (boolean, boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà Node. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа Node. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadNode3(prompt: string): (Node, Node, Node); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà integer. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа integer. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnInteger3(prompt: string): (integer, integer, integer); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà real. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа real. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnReal3(prompt: string): (real, real, real); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà char. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа char. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnChar3(prompt: string): (char, char, char); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà string. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа string. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnString3(prompt: string): (string, string, string); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà boolean. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа boolean. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnBoolean3(prompt: string): (boolean, boolean, boolean); -/// Âîçâðàùàåò êîðòåæ èç òðåõ ââåäåííûõ çíà÷åíèé òèïà Node. -/// Ñòðîêîâîå ïðèãëàøåíèå prompt èãíîðèðóåòñÿ +/// Возвращает кортеж из трех введенных значений типа Node. +/// Строковое приглашение prompt игнорируетÑ�Ñ� function ReadlnNode3(prompt: string): (Node, Node, Node); -// == Âåðñèÿ 4.17. Êîíåö äîïîëíåíèé == +// == ВерÑ�иÑ� 4.17. Конец дополнений == procedure GetR(var param: real); @@ -341,9 +341,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); @@ -381,21 +381,21 @@ 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; ///-- @@ -403,162 +403,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); @@ -603,7 +603,7 @@ procedure WriteMatr(a: array of array of T); procedure WriteMatr(a: List>); -// == Äîïîëíåíèÿ 2016.07 +// == ДополнениÑ� 2016.07 procedure PrintMatr(a: array[,] of T); @@ -611,16 +611,16 @@ procedure PrintMatr(a: array of array of T); procedure PrintMatr(a: List>); -// == Êîíåö äîïîëíåíèé 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; @@ -1058,7 +1058,7 @@ begin end; // ----------------------------------------------------- -// Ôóíêöèè Get +// Функции Get // ----------------------------------------------------- function GetInt: integer; var val:integer; @@ -1094,7 +1094,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; @@ -1125,8 +1125,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; @@ -1225,7 +1225,7 @@ begin Result := GetNode; end; -// == Âåðñèÿ 4.15. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.15. ДополнениÑ� == function ReadInteger(prompt: string): integer; begin @@ -1297,9 +1297,9 @@ begin Result := GetNode; end; -// == Âåðñèÿ 4.15. Êîíåö äîïîëíåíèé == +// == ВерÑ�иÑ� 4.15. Конец дополнений == -// == Âåðñèÿ 4.17. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.17. ДополнениÑ� == function ReadInteger2: (integer, integer); begin @@ -1541,11 +1541,11 @@ begin Result := (GetNode, GetNode, GetNode); end; -// == Âåðñèÿ 4.17. Êîíåö äîïîëíåíèé == +// == ВерÑ�иÑ� 4.17. Конец дополнений == // ----------------------------------------------------- -// Ïðîöåäóðû Put +// Процедуры Put // ----------------------------------------------------- procedure PutInt(val: integer); begin @@ -1594,7 +1594,7 @@ begin end; // ----------------------------------------------------- -// Ãåíåðàöèÿ èñêëþ÷åíèé +// ГенерациÑ� иÑ�ключений // ----------------------------------------------------- procedure RaisePTAndCheckPT(e: Exception); begin @@ -1719,7 +1719,7 @@ begin Print(args); end; -// == Âåðñèÿ 4.15. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.15. ДополнениÑ� == procedure Print(s: string); begin @@ -1731,7 +1731,7 @@ begin write(s); end; -// == Âåðñèÿ 4.15. Êîíåö äîïîëíåíèé == +// == ВерÑ�иÑ� 4.15. Конец дополнений == {procedure write; begin @@ -1769,7 +1769,7 @@ begin var ip := IntPtr(PointerOutput(args[i]).p); _PutP(ip); end -// == Âåðñèÿ 4.17. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.17. ДополнениÑ� == else if args[i].GetType.FullName.StartsWith('System.Tuple') then foreach var e in args[i].GetType.GetProperties do InternalWrite(Arr(e.GetValue(args[i],nil))) @@ -1779,7 +1779,7 @@ begin while e.MoveNext do InternalWrite(Arr(e.Current)); end -// == Âåðñèÿ 4.17. Êîíåö äîïîëíåíèé == +// == ВерÑ�иÑ� 4.17. Конец дополнений == else GenerateNotSupportedWriteTypeException(args[i].GetType.ToString); end; @@ -1815,7 +1815,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; @@ -1864,10 +1864,10 @@ begin inc(i); fpt := FinishPT; end; - // == Êîíåö äîïîëíåíèé ê âåðñèè 4.13 == + // == Конец дополнений к верÑ�ии 4.13 == end; -// == Âåðñèÿ 1.3. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 1.3. ДополнениÑ� == var D: integer := 2; @@ -1989,9 +1989,9 @@ begin D := N; end; -// == Êîíåö äîïîëíåíèé ê âåðñèè 1.3 == +// == Конец дополнений к верÑ�ии 1.3 == -// == Âåðñèÿ 4.14. Äîïîëíåíèÿ == +// == ВерÑ�иÑ� 4.14. ДополнениÑ� == function ReadSeqInteger(): sequence of integer; begin @@ -2263,7 +2263,7 @@ begin write(a[i][j]); end; -/// Âûâîäèò ðàçìåð è ýëåìåíòû ïîñëåäîâàòåëüíîñòè +/// Выводит размер и Ñ�лементы поÑ�ледовательноÑ�ти procedure WriteAll(self: sequence of T); extensionmethod; begin var b := self.ToArray(); @@ -2272,7 +2272,7 @@ begin PT4.Put(e); end; -/// Âûâîäèò ýëåìåíòû ïîñëåäîâàòåëüíîñòè +/// Выводит Ñ�лементы поÑ�ледовательноÑ�ти procedure Write(self: sequence of T); extensionmethod; begin var b := self.ToArray(); @@ -2280,14 +2280,14 @@ begin PT4.Put(e); end; -/// Âûâîäèò ýëåìåíòû äèíàìè÷åñêîãî ìàññèâà +/// Выводит Ñ�лементы динамичеÑ�кого маÑ�Ñ�ива procedure Write(self: array of T); extensionmethod; begin for var i:=0 to self.Length-1 do PT4.Put(self[i]); end; -/// Âûâîäèò ýëåìåíòû ìàòðèöû +/// Выводит Ñ�лементы матрицы procedure Write(self: array [,] of T); extensionmethod; begin for var i:=0 to self.GetLength(0)-1 do @@ -2295,7 +2295,7 @@ begin PT4.Put(self[i,j]); end; -// == Äîïîëíåíèÿ 2016.07 +// == ДополнениÑ� 2016.07 procedure PrintMatr(a: array[,] of T); begin @@ -2318,7 +2318,7 @@ begin write(a[i][j]); end; -/// Âûâîäèò ðàçìåð è ýëåìåíòû ïîñëåäîâàòåëüíîñòè +/// Выводит размер и Ñ�лементы поÑ�ледовательноÑ�ти procedure PrintAll(self: sequence of T); extensionmethod; begin var b := self.ToArray(); @@ -2327,7 +2327,7 @@ begin PT4.Put(e); end; -/// Âûâîäèò ðàçìåð è ýëåìåíòû äèíàìè÷åñêîãî ìàññèâà +/// Выводит размер и Ñ�лементы динамичеÑ�кого маÑ�Ñ�ива procedure PrintAll(self: array of T); extensionmethod; begin PT4.Put(self.Length); @@ -2335,7 +2335,7 @@ begin PT4.Put(self[i]); end; -/// Âûâîäèò ðàçìåð è ýëåìåíòû äèíàìè÷åñêîãî ìàññèâà +/// Выводит размер и Ñ�лементы динамичеÑ�кого маÑ�Ñ�ива procedure WriteAll(self: array of T); extensionmethod; begin PT4.Put(self.Length); @@ -2343,7 +2343,7 @@ begin PT4.Put(self[i]); end; -/// Âûâîäèò ýëåìåíòû ïîñëåäîâàòåëüíîñòè +/// Выводит Ñ�лементы поÑ�ледовательноÑ�ти procedure Writeln(self: sequence of T); extensionmethod; begin var b := self.ToArray(); @@ -2351,14 +2351,14 @@ begin PT4.Put(e); end; -/// Âûâîäèò ýëåìåíòû äèíàìè÷åñêîãî ìàññèâà +/// Выводит Ñ�лементы динамичеÑ�кого маÑ�Ñ�ива procedure Writeln(self: array of T); extensionmethod; begin for var i:=0 to self.Length-1 do PT4.Put(self[i]); end; -/// Âûâîäèò ýëåìåíòû ìàòðèöû +/// Выводит Ñ�лементы матрицы procedure Writeln(self: array [,] of T); extensionmethod; begin for var i:=0 to self.GetLength(0)-1 do @@ -2366,13 +2366,13 @@ begin PT4.Put(self[i,j]); end; -// == Êîíåö äîïîëíåíèé 2016.07 +// == Конец дополнений 2016.07 -/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà -/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ, -/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè -/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ +/// Выводит в разделе отладки окна задачника +/// комментарий cmt, размер поÑ�ледовательноÑ�ти и значениÑ�, +/// полученные из Ñ�лементов поÑ�ледовательноÑ�ти +/// Ñ� помощью указанного лÑ�мбда-выражениÑ� function Show(self: sequence of TSource; cmt: string; selector: System.Func): sequence of TSource; extensionmethod; begin @@ -2385,17 +2385,17 @@ begin result := self; end; -/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà -/// ðàçìåð ïîñëåäîâàòåëüíîñòè è çíà÷åíèÿ, -/// ïîëó÷åííûå èç ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè -/// ñ ïîìîùüþ óêàçàííîãî ëÿìáäà-âûðàæåíèÿ +/// Выводит в разделе отладки окна задачника +/// размер поÑ�ледовательноÑ�ти и значениÑ�, +/// полученные из Ñ�лементов поÑ�ледовательноÑ�ти +/// Ñ� помощью указанного лÑ�мбда-выражениÑ� function Show(Self: sequence of TSource; selector: System.Func): sequence of TSource; extensionmethod; begin result := self.Show('', selector); end; -/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà -/// êîììåíòàðèé cmt, ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû +/// Выводит в разделе отладки окна задачника +/// комментарий cmt, размер поÑ�ледовательноÑ�ти и ее Ñ�лементы function Show(Self: sequence of TSource; cmt: string): sequence of TSource; extensionmethod; begin result := self; @@ -2414,14 +2414,14 @@ begin end; -/// Âûâîäèò â ðàçäåëå îòëàäêè îêíà çàäà÷íèêà -/// ðàçìåð ïîñëåäîâàòåëüíîñòè è åå ýëåìåíòû. +/// Выводит в разделе отладки окна задачника +/// размер поÑ�ледовательноÑ�ти и ее Ñ�лементы. function Show(Self: sequence of TSource): sequence of TSource; extensionmethod; begin result := self.Show(''); end; -// == Êîíåö äîïîëíåíèé ê âåðñèè 4.14 == +// == Конец дополнений к верÑ�ии 4.14 == initialization __InitModule; diff --git a/bin/Lib/PT4Exam.pas b/bin/Lib/PT4Exam.pas index 02de9ad3e..86af152c8 100644 --- a/bin/Lib/PT4Exam.pas +++ b/bin/Lib/PT4Exam.pas @@ -4,7 +4,7 @@ unit PT4Exam; //------------------------------------------------------------------------------ // Модуль длÑ� подключениÑ� задачника PT for Exam // ВерÑ�иÑ� 1.2 -// Copyright (c) 2014-2017 М.Э.Ð�брамÑ�н +// Copyright (©) 2014-2017 М.Э.Ð�брамÑ�н //------------------------------------------------------------------------------ diff --git a/bin/Lib/PT4MakerNetX.pas b/bin/Lib/PT4MakerNetX.pas index bc9f9f51c..d3989fccc 100644 --- a/bin/Lib/PT4MakerNetX.pas +++ b/bin/Lib/PT4MakerNetX.pas @@ -1,242 +1,242 @@ -/// Êîíñòðóêòîð ó÷åáíûõ çàäàíèé äëÿ çàäà÷íèêà Programming Taskbook. -/// Âåðñèÿ 1.5 îò 27.03.2017 (Ñ) Ì. Ý. Àáðàìÿí, 2016-2017. -/// Âñå êîìïîíåíòû êîíñòðóêòîðà ìîãóò âûçûâàòüñÿ ëèáî êàê êëàññîâûå ìåòîäû êëàññà pt, -/// ëèáî êàê îáû÷íûå êîíñòàíòû è ïðîöåäóðû. +/// КонÑ�труктор учебных заданий длÑ� задачника Programming Taskbook. +/// ВерÑ�иÑ� 1.5 от 27.03.2017 (©) М. Э. Ð�брамÑ�н, 2016-2017. +/// Ð’Ñ�е компоненты конÑ�труктора могут вызыватьÑ�Ñ� либо как клаÑ�Ñ�овые методы клаÑ�Ñ�а pt, +/// либо как обычные конÑ�танты и процедуры. unit PT4MakerNetX; interface const - OptionAllLanguages = 1; // ãðóïïà äîñòóïíà äëÿ âñåõ ÿçûêîâ - OptionPascalLanguages = 2; // ãðóïïà äîñòóïíà äëÿ âñåõ ðåàëèçàöèé Ïàñêàëÿ - OptionNETLanguages = 4; // ãðóïïà äîñòóïíà äëÿ âñåõ NET-ÿçûêîâ - OptionUseAddition = 8; // ãðóïïà äîñòóïíà òîëüêî ïðè íàëè÷èè ôàéëà äîïîëíåíèé - OptionHideExamples = 16; // íå îòîáðàæàòü ðàçäåë ñ ïðèìåðîì âåðíîãî ðåøåíèÿ + OptionAllLanguages = 1; // группа доÑ�тупна длÑ� вÑ�ех Ñ�зыков + OptionPascalLanguages = 2; // группа доÑ�тупна длÑ� вÑ�ех реализаций ПаÑ�калÑ� + OptionNETLanguages = 4; // группа доÑ�тупна длÑ� вÑ�ех NET-Ñ�зыков + OptionUseAddition = 8; // группа доÑ�тупна только при наличии файла дополнений + OptionHideExamples = 16; // не отображать раздел Ñ� примером верного решениÑ� -/// Ïðîöåäóðà, ñ êîòîðîé äîëæíî íà÷èíàòüñÿ îïðåäåëåíèå íîâîãî çàäàíèÿ. -/// Äîëæíà âûçûâàòüñÿ â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. -/// Ïàðàìåòð topic îïðåäåëÿåò èìÿ ïîäãðóïïû è ÿâëÿåòñÿ íåîáÿçàòåëüíûì. -/// Ïàðàìåòð tasktext ñîäåðæèò ôîðìóëèðîâêó çàäàíèÿ; îòäåëüíûå ñòðîêè -/// ôîðìóëèðîâêè äîëæíû ðàçäåëÿòüñÿ ñèìâîëàìè #13, #10 èëè #13#10. +/// Процедура, Ñ� которой должно начинатьÑ�Ñ� определение нового заданиÑ�. +/// Должна вызыватьÑ�Ñ� в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. +/// Параметр topic определÑ�ет имÑ� подгруппы и Ñ�влÑ�етÑ�Ñ� необÑ�зательным. +/// Параметр tasktext Ñ�одержит формулировку заданиÑ�; отдельные Ñ�троки +/// формулировки должны разделÑ�тьÑ�Ñ� Ñ�имволами #13, #10 или #13#10. procedure NewTask(topic, tasktext: string); -/// Ïðîöåäóðà, ñ êîòîðîé äîëæíî íà÷èíàòüñÿ îïðåäåëåíèå íîâîãî çàäàíèÿ. -/// Äîëæíà âûçûâàòüñÿ â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. -/// Ïàðàìåòð tasktext ñîäåðæèò ôîðìóëèðîâêó çàäàíèÿ; îòäåëüíûå ñòðîêè -/// ôîðìóëèðîâêè äîëæíû ðàçäåëÿòüñÿ ñèìâîëàìè #13, #10 èëè #13#10. +/// Процедура, Ñ� которой должно начинатьÑ�Ñ� определение нового заданиÑ�. +/// Должна вызыватьÑ�Ñ� в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. +/// Параметр tasktext Ñ�одержит формулировку заданиÑ�; отдельные Ñ�троки +/// формулировки должны разделÑ�тьÑ�Ñ� Ñ�имволами #13, #10 или #13#10. procedure NewTask(tasktext: string); -/// Äîáàâëÿåò êîììåíòàðèé â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет комментарий в новой Ñ�троке раздела иÑ�ходных даннных. procedure DataComm(comm: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. procedure Data(comm: string; a: object); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. procedure Data(comm1: string; a1: object; comm2: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. procedure Data(comm1: string; a1: object; comm2: string; a2: object); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. procedure Data(comm1: string; a1: object; comm2: string; a2: object; comm3: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. procedure Data(comm1: string; a1: object; comm2: string; a2: object; comm3: string; a3: object); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ëîãè÷åñêèõ äàííûõ â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть логичеÑ�ких данных в раздел иÑ�ходных данных. procedure Data(seq: sequence of boolean); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü öåëûõ ÷èñåë â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть целых чиÑ�ел в раздел иÑ�ходных данных. procedure Data(seq: sequence of integer); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü âåùåñòâåííûõ ÷èñåë â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть вещеÑ�твенных чиÑ�ел в раздел иÑ�ходных данных. procedure Data(seq: sequence of real); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñèìâîëîâ â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�имволов в раздел иÑ�ходных данных. procedure Data(seq: sequence of char); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñòðîê â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�трок в раздел иÑ�ходных данных. procedure Data(seq: sequence of string); -/// Äîáàâëÿåò êîììåíòàðèé â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет комментарий в новой Ñ�троке раздела результатов. procedure ResComm(comm: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. procedure Res(comm: string; a: object); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. procedure Res(comm1: string; a1: object; comm2: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. procedure Res(comm1: string; a1: object; comm2: string; a2: object); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. procedure Res(comm1: string; a1: object; comm2: string; a2: object; comm3: string); -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. procedure Res(comm1: string; a1: object; comm2: string; a2: object; comm3: string; a3: object); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ëîãè÷åñêèõ äàííûõ â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть логичеÑ�ких данных в раздел результатов. procedure Res(seq: sequence of boolean); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü öåëûõ ÷èñåë â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть целых чиÑ�ел в раздел результатов. procedure Res(seq: sequence of integer); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü âåùåñòâåííûõ ÷èñåë â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть вещеÑ�твенных чиÑ�ел в раздел результатов. procedure Res(seq: sequence of real); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñèìâîëîâ â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�имволов в раздел результатов. procedure Res(seq: sequence of char); -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñòðîê â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�трок в раздел результатов. procedure Res(seq: sequence of string); -/// Çàäàåò ìèíèìàëüíóþ øèðèíó ïîëÿ âûâîäà äëÿ ÷èñëîâûõ äàííûõ -/// (÷èñëà âûðàâíèâàþòñÿ ïî ïðàâîìó êðàþ ïîëÿ âûâîäà, -/// ò.å. ïðè íåîáõîäèìîñòè äîïîëíÿþòñÿ ñëåâà ïðîáåëàìè). -/// Åñëè n íå ëåæèò â äèàïàçîíå 0..10, òî âûçîâ ïðîöåäóðû èãíîðèðóåòñÿ. -/// Ïî óìîë÷àíèþ ìèíèìàëüíàÿ øèðèíà ïîëÿ âûâîäà ïîëàãàåòñÿ ðàâíîé 0. +/// Задает минимальную ширину полÑ� вывода длÑ� чиÑ�ловых данных +/// (чиÑ�ла выравниваютÑ�Ñ� по правому краю полÑ� вывода, +/// Ñ‚.е. при необходимоÑ�ти дополнÑ�ÑŽÑ‚Ñ�Ñ� Ñ�лева пробелами). +/// ЕÑ�ли n не лежит в диапазоне 0..10, то вызов процедуры игнорируетÑ�Ñ�. +/// По умолчанию минимальнаÑ� ширина полÑ� вывода полагаетÑ�Ñ� равной 0. procedure SetWidth(n: integer); -/// Çàäàåò ôîðìàò îòîáðàæåíèÿ âåùåñòâåííûõ ÷èñåë: -/// ñ ôèêñèðîâàííîé òî÷êîé è n äðîáíûìè çíàêàìè ïðè n > 0, -/// ñ ïëàâàþùåé òî÷êîé è n äðîáíûìè çíàêàìè ïðè n < 0, -/// ñ ïëàâàþùåé òî÷êîé è 6 äðîáíûìè çíàêàìè ïðè n = 0. -/// Åñëè n ïî ìîäóëþ ïðåâîñõîäèò 10, òî âûçîâ ïðîöåäóðû èãíîðèðóåòñÿ. -/// Ïî óìîë÷àíèþ óñòàíàâëèâàåòñÿ ôîðìàò ñ ôèêñèðîâàííîé òî÷êîé -/// è 2 äðîáíûìè çíàêàìè. +/// Задает формат отображениÑ� вещеÑ�твенных чиÑ�ел: +/// Ñ� фикÑ�ированной точкой и n дробными знаками при n > 0, +/// Ñ� плавающей точкой и n дробными знаками при n < 0, +/// Ñ� плавающей точкой и 6 дробными знаками при n = 0. +/// ЕÑ�ли n по модулю превоÑ�ходит 10, то вызов процедуры игнорируетÑ�Ñ�. +/// По умолчанию уÑ�танавливаетÑ�Ñ� формат Ñ� фикÑ�ированной точкой +/// и 2 дробными знаками. procedure SetPrecision(n: integer); -/// Çàäàåò êîëè÷åñòâî òåñòîâûõ çàïóñêîâ, âûïîëíÿåìûõ -/// äëÿ ïðîâåðêè ïðàâèëüíîñòè ïðîãðàììû (îò 2 äî 10). -/// Ïî óìîë÷àíèþ ÷èñëî òåñòîâûõ çàïóñêîâ ïîëàãàåòñÿ ðàâíûì 5. +/// Задает количеÑ�тво теÑ�товых запуÑ�ков, выполнÑ�емых +/// длÑ� проверки правильноÑ�ти программы (от 2 до 10). +/// По умолчанию чиÑ�ло теÑ�товых запуÑ�ков полагаетÑ�Ñ� равным 5. procedure SetTestCount(n: integer); -/// Çàäàåò ìèíèìàëüíî íåîáõîäèìîå êîëè÷åñòâî ýëåìåíòîâ -/// èñõîäíûõ äàííûõ, êîòîðîå òðåáóåòñÿ ââåñòè äëÿ ïðàâèëüíîãî -/// ðåøåíèÿ çàäà÷è â ñëó÷àå òåêóùåãî íàáîðà èñõîäíûõ äàííûõ. -/// Ïðè îòñóòñòâèè ïðîöåäóðû ïðåäïîëàãàåòñÿ, -/// ÷òî äëÿ ïðàâèëüíîãî ðåøåíèÿ íàäî ââåñòè âñå èñõîäíûå äàííûå. +/// Задает минимально необходимое количеÑ�тво Ñ�лементов +/// иÑ�ходных данных, которое требуетÑ�Ñ� ввеÑ�ти длÑ� правильного +/// решениÑ� задачи в Ñ�лучае текущего набора иÑ�ходных данных. +/// При отÑ�утÑ�твии процедуры предполагаетÑ�Ñ�, +/// что длÑ� правильного решениÑ� надо ввеÑ�ти вÑ�е иÑ�ходные данные. procedure SetRequiredDataCount(n: integer); -/// Âîçâðàùàåò íîìåð òåêóùåãî òåñòîâîãî çàïóñêà -/// (çàïóñêè íóìåðóþòñÿ îò 1). +/// Возвращает номер текущего теÑ�тового запуÑ�ка +/// (запуÑ�ки нумеруютÑ�Ñ� от 1). function CurrentTest: integer; -/// Ãåíåðèðóåò ñëó÷àéíîå öåëîâ â äèàïàçîíå îò M äî N âêëþ÷èòåëüíî. -/// Åñëè M >= N, òî âîçâðàùàåò M. +/// Генерирует Ñ�лучайное целов в диапазоне от M до N включительно. +/// ЕÑ�ли M >= N, то возвращает M. function Random(M, N: integer): integer; -/// Ãåíåðèðóåò ñëó÷àéíîå âåùåñòâåííîå íà ïðîìåæóòêå [A, B). -/// Åñëè ïðîìåæóòîê [A, B) ïóñò, òî âîçâðàùàåò A. +/// Генерирует Ñ�лучайное вещеÑ�твенное на промежутке [A, B). +/// ЕÑ�ли промежуток [A, B) пуÑ�Ñ‚, то возвращает A. function Random(A, B: real): real; -/// Ãåíåðèðóåò ñëó÷àéíóþ ñòðîêó äëèíû len, ñîñòîÿùóþ -/// èç öèôð è ñòðî÷íûõ (ò.å. ìàëåíüêèõ) ëàòèíñêèõ áóêâ. +/// Генерирует Ñ�лучайную Ñ�троку длины len, Ñ�оÑ�тоÑ�щую +/// из цифр и Ñ�трочных (Ñ‚.е. маленьких) латинÑ�ких букв. function RandomName(len: integer): string; -/// Ñîçäàåò íîâóþ ãðóïïó ñ êðàòêèì îïèñàíèåì GroupDescription, -/// èíôîðìàöèåé îá àâòîðå GroupAuthor è íàáîðîì íåîáÿçàòåëüíûõ îïöèé, îáúåäèíÿåìûõ îïåðàöèåé or. -/// Èìÿ ãðóïïû îïðåäåëÿåòñÿ ïî èìåíè áèáëèîòåêè (ïóòåì îòáðàñûâàíèÿ ïðåôèêñà PT4). -///  ãðóïïó âêëþ÷àþòñÿ çàäàíèÿ, îïðåäåëåííûå â ïðîöåäóðàõ, èìåíà êîòîðûõ íà÷èíàþòñÿ ñ òåêñòà Task. -/// Ïðîöåäóðà NewGroup äîëæíà áûòü âûçâàíà â ïðîöåäóðå inittaskgroup áåç ïàðàìåòðîâ, êîòîðóþ -/// íåîáõîäèìî îïèñàòü â áèáëèîòåêå ñ ãðóïïîé çàäàíèé (âñå áóêâû â èìåíè inittaskgroup - ñòðî÷íûå). +/// Создает новую группу Ñ� кратким опиÑ�анием GroupDescription, +/// информацией об авторе GroupAuthor и набором необÑ�зательных опций, объединÑ�емых операцией or. +/// ИмÑ� группы определÑ�етÑ�Ñ� по имени библиотеки (путем отбраÑ�ываниÑ� префикÑ�а PT4). +/// Ð’ группу включаютÑ�Ñ� заданиÑ�, определенные в процедурах, имена которых начинаютÑ�Ñ� Ñ� текÑ�та Task. +/// Процедура NewGroup должна быть вызвана в процедуре inittaskgroup без параметров, которую +/// необходимо опиÑ�ать в библиотеке Ñ� группой заданий (вÑ�е буквы в имени inittaskgroup - Ñ�трочные). procedure NewGroup(GroupDescription, GroupAuthor: string; Options: integer := 0); -/// Îáåñïå÷èâàåò ðåãèñòðàöèþ ñîçäàííîé ãðóïïû â ýëåêòðîííîì çàäà÷íèêå. -/// Ïðîöåäóðà ActivateNET(S) äîëæíà áûòü âûçâàíà â ïðîöåäóðå activate(S: string), -/// êîòîðóþ íåîáõîäèìî îïèñàòü â áèáëèîòåêå ñ ãðóïïîé çàäàíèé (âñå áóêâû â èìåíè activate - ñòðî÷íûå). +/// ОбеÑ�печивает региÑ�трацию Ñ�озданной группы в Ñ�лектронном задачнике. +/// Процедура ActivateNET(S) должна быть вызвана в процедуре activate(S: string), +/// которую необходимо опиÑ�ать в библиотеке Ñ� группой заданий (вÑ�е буквы в имени activate - Ñ�трочные). procedure ActivateNET(S: string); -/// Èìïîðòèðóåò â ñîçäàâàåìóþ ãðóïïó ñóùåñòâóþùåå çàäàíèå -/// èç ãðóïïû GroupName ñ íîìåðîì TaskNumber. Äîëæíà âûçûâàòüñÿ -/// â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. +/// Импортирует в Ñ�оздаваемую группу Ñ�ущеÑ�твующее задание +/// из группы GroupName Ñ� номером TaskNumber. Должна вызыватьÑ�Ñ� +/// в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. procedure UseTask(GroupName: string; TaskNumber: integer); -/// Âîçâðàùàåò ìàññèâ èç 116 ðóññêèõ ñëîâ. +/// Возвращает маÑ�Ñ�ив из 116 руÑ�Ñ�ких Ñ�лов. function GetWords: array of string; -/// Âîçâðàùàåò ìàññèâ èç 116 àíãëèéñêèõ ñëîâ. +/// Возвращает маÑ�Ñ�ив из 116 английÑ�ких Ñ�лов. function GetEnWords: array of string; -/// Âîçâðàùàåò ìàññèâ èç 61 ðóññêîãî ïðåäëîæåíèÿ. +/// Возвращает маÑ�Ñ�ив из 61 руÑ�Ñ�кого предложениÑ�. function GetSentences: array of string; -/// Âîçâðàùàåò ìàññèâ èç 61 àíãëèéñêîãî ïðåäëîæåíèÿ. +/// Возвращает маÑ�Ñ�ив из 61 английÑ�кого предложениÑ�. function GetEnSentences: array of string; -/// Âîçâðàùàåò ìàññèâ èç 85 ðóññêèõ ìíîãîñòðî÷íûõ òåêñòîâ. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает маÑ�Ñ�ив из 85 руÑ�Ñ�ких многоÑ�трочных текÑ�тов. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. function GetTexts: array of string; -/// Âîçâðàùàåò ìàññèâ èç 85 àíãëèéñêèõ ìíîãîñòðî÷íûõ òåêñòîâ. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает маÑ�Ñ�ив из 85 английÑ�ких многоÑ�трочных текÑ�тов. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. function GetEnTexts: array of string; -/// Âîçâðàùàåò ñëó÷àéíîå ðóññêîå ñëîâî èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное руÑ�Ñ�кое Ñ�лово из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. function RandomWord: string; -/// Âîçâðàùàåò ñëó÷àéíîå àíãëèéñêîå ñëîâî èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное английÑ�кое Ñ�лово из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. function RandomEnWord: string; -/// Âîçâðàùàåò ñëó÷àéíîå ðóññêîå ïðåäëîæåíèå èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное руÑ�Ñ�кое предложение из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. function RandomSentence: string; -/// Âîçâðàùàåò ñëó÷àéíîå àíãëèéñêîå ïðåäëîæåíèå èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное английÑ�кое предложение из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. function RandomEnSentence: string; -/// Âîçâðàùàåò ñëó÷àéíûé ðóññêèé ìíîãîñòðî÷íûé òåêñò èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает Ñ�лучайный руÑ�Ñ�кий многоÑ�трочный текÑ�Ñ‚ из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. function RandomText: string; -/// Âîçâðàùàåò ñëó÷àéíûé àíãëèéñêèé ìíîãîñòðî÷íûé òåêñò èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает Ñ�лучайный английÑ�кий многоÑ�трочный текÑ�Ñ‚ из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. function RandomEnText: string; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ôàéë öåëûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет в задание иÑ�ходный файл целых чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. procedure DataFileInteger(FileName: string); -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ôàéë âåùåñòâåííûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет в задание иÑ�ходный файл вещеÑ�твенных чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. procedure DataFileReal(FileName: string); -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ñèìâîëüíûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. Ñèìâîëû äîëæíû -/// õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный Ñ�имвольный файл +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. Символы должны +/// хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure DataFileChar(FileName: string); -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ñòðîêîâûé ôàéë -/// ñ ýëåìåíòàìè òèïà ShortString è èìåíåì FileName -/// è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå èñõîäíûõ äàííûõ. -/// Äëèíà ýëåìåíòîâ ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Ñòðîêè äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный Ñ�троковый файл +/// Ñ� Ñ�лементами типа ShortString и именем FileName +/// и отображает его Ñ�одержимое в разделе иÑ�ходных данных. +/// Длина Ñ�лементов файла не должна превоÑ�ходить 70 Ñ�имволов. +/// Строки должны хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure DataFileString(FileName: string); -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé òåêñòîâûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. Äëèíà êàæäîé ñòðîêè -/// òåêñòîâîãî ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Òåêñò äîëæåí õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный текÑ�товый файл +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. Длина каждой Ñ�троки +/// текÑ�тового файла не должна превоÑ�ходить 70 Ñ�имволов. +/// ТекÑ�Ñ‚ должен хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure DataText(FileName: string; LineCount: integer := 4); -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ôàéë öåëûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. +/// ДобавлÑ�ет в задание результирующий файл целых чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. procedure ResFileInteger(FileName: string); -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ôàéë âåùåñòâåííûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. +/// ДобавлÑ�ет в задание результирующий файл вещеÑ�твенных чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. procedure ResFileReal(FileName: string); -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ñèìâîëüíûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Ñèìâîëû äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий Ñ�имвольный файл +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. +/// Символы должны хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure ResFileChar(FileName: string); -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ñòðîêîâûé ôàéë -/// ñ ýëåìåíòàìè òèïà ShortString è èìåíåì FileName -/// è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Äëèíà ýëåìåíòîâ ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Ñòðîêè äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий Ñ�троковый файл +/// Ñ� Ñ�лементами типа ShortString и именем FileName +/// и отображает его Ñ�одержимое в разделе результатов. +/// Длина Ñ�лементов файла не должна превоÑ�ходить 70 Ñ�имволов. +/// Строки должны хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure ResFileString(FileName: string); -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé òåêñòîâûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Äëèíà êàæäîé ñòðîêè òåêñòîâîãî ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Òåêñò äîëæåí õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий текÑ�товый файл +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. +/// Длина каждой Ñ�троки текÑ�тового файла не должна превоÑ�ходить 70 Ñ�имволов. +/// ТекÑ�Ñ‚ должен хранитьÑ�Ñ� в файле в однобайтной кодировке. procedure ResText(FileName: string; LineCount: integer := 5); type pt = class @@ -245,395 +245,395 @@ type pt = class begin end; public -/// Äîïîëíèòåëüíàÿ îïöèÿ äëÿ ïðîöåäóðû NewGroup: -/// ãðóïïà äîñòóïíà äëÿ âñåõ ÿçûêîâ. +/// ДополнительнаÑ� опциÑ� длÑ� процедуры NewGroup: +/// группа доÑ�тупна длÑ� вÑ�ех Ñ�зыков. class function OptionAllLanguages: integer; begin result := PT4MakerNetX.OptionAllLanguages; end; -/// Äîïîëíèòåëüíàÿ îïöèÿ äëÿ ïðîöåäóðû NewGroup: -/// ãðóïïà äîñòóïíà äëÿ âñåõ ðåàëèçàöèé ÿçûêà Pascal. +/// ДополнительнаÑ� опциÑ� длÑ� процедуры NewGroup: +/// группа доÑ�тупна длÑ� вÑ�ех реализаций Ñ�зыка Pascal. class function OptionPascalLanguages: integer; begin result := PT4MakerNetX.OptionPascalLanguages; end; -/// Äîïîëíèòåëüíàÿ îïöèÿ äëÿ ïðîöåäóðû NewGroup: -/// ãðóïïà äîñòóïíà äëÿ âñåõ NET-ÿçûêîâ. +/// ДополнительнаÑ� опциÑ� длÑ� процедуры NewGroup: +/// группа доÑ�тупна длÑ� вÑ�ех NET-Ñ�зыков. class function OptionNETLanguages: integer; begin result := PT4MakerNetX.OptionNETLanguages; end; -/// Äîïîëíèòåëüíàÿ îïöèÿ äëÿ ïðîöåäóðû NewGroup: -/// ãðóïïà äîñòóïíà òîëüêî ïðè íàëè÷èè ñâÿçàííîãî ñ íåé ôàéëà äîïîëíåíèé. +/// ДополнительнаÑ� опциÑ� длÑ� процедуры NewGroup: +/// группа доÑ�тупна только при наличии Ñ�вÑ�занного Ñ� ней файла дополнений. class function OptionUseAddition: integer; begin result := PT4MakerNetX.OptionUseAddition; end; -/// Äîïîëíèòåëüíàÿ îïöèÿ äëÿ ïðîöåäóðû NewGroup: -/// â çàäàíèÿõ äàííîé ãðóïïû íå áóäåò îòîáðàæàòüñÿ ïðèìåð âåðíîãî ðåøåíèÿ. +/// ДополнительнаÑ� опциÑ� длÑ� процедуры NewGroup: +/// в заданиÑ�Ñ… данной группы не будет отображатьÑ�Ñ� пример верного решениÑ�. class function OptionHideExamples: integer; begin result := PT4MakerNetX.OptionHideExamples; end; -/// Ïðîöåäóðà, ñ êîòîðîé äîëæíî íà÷èíàòüñÿ îïðåäåëåíèå íîâîãî çàäàíèÿ. -/// Äîëæíà âûçûâàòüñÿ â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. -/// Ïàðàìåòð topic îïðåäåëÿåò èìÿ ïîäãðóïïû (ÿâëÿåòñÿ íåîáÿçàòåëüíûì). -/// Ïàðàìåòð tasktext ñîäåðæèò ôîðìóëèðîâêó çàäàíèÿ; îòäåëüíûå ñòðîêè -/// ôîðìóëèðîâêè äîëæíû ðàçäåëÿòüñÿ ñèìâîëàìè #13, #10 èëè #13#10. +/// Процедура, Ñ� которой должно начинатьÑ�Ñ� определение нового заданиÑ�. +/// Должна вызыватьÑ�Ñ� в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. +/// Параметр topic определÑ�ет имÑ� подгруппы (Ñ�влÑ�етÑ�Ñ� необÑ�зательным). +/// Параметр tasktext Ñ�одержит формулировку заданиÑ�; отдельные Ñ�троки +/// формулировки должны разделÑ�тьÑ�Ñ� Ñ�имволами #13, #10 или #13#10. class procedure NewTask(topic, tasktext: string); begin PT4MakerNetX.NewTask(topic, tasktext); end; -/// Ïðîöåäóðà, ñ êîòîðîé äîëæíî íà÷èíàòüñÿ îïðåäåëåíèå íîâîãî çàäàíèÿ. -/// Äîëæíà âûçûâàòüñÿ â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. -/// Ïàðàìåòð tasktext ñîäåðæèò ôîðìóëèðîâêó çàäàíèÿ; îòäåëüíûå ñòðîêè -/// ôîðìóëèðîâêè äîëæíû ðàçäåëÿòüñÿ ñèìâîëàìè #13, #10 èëè #13#10. +/// Процедура, Ñ� которой должно начинатьÑ�Ñ� определение нового заданиÑ�. +/// Должна вызыватьÑ�Ñ� в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. +/// Параметр tasktext Ñ�одержит формулировку заданиÑ�; отдельные Ñ�троки +/// формулировки должны разделÑ�тьÑ�Ñ� Ñ�имволами #13, #10 или #13#10. class procedure NewTask(tasktext: string); begin PT4MakerNetX.NewTask(tasktext); end; -/// Äîáàâëÿåò êîììåíòàðèé â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет комментарий в новой Ñ�троке раздела иÑ�ходных даннных. class procedure DataComm(comm: string); begin PT4MakerNetX.DataComm(comm); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. class procedure Data(comm: string; a: object); begin PT4MakerNetX.Data(comm, a); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. class procedure Data(comm1: string; a1: object; comm2: string); begin PT4MakerNetX.Data(comm1, a1, comm2); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. class procedure Data(comm1: string; a1: object; comm2: string; a2: object); begin PT4MakerNetX.Data(comm1, a1, comm2, a2); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. class procedure Data(comm1: string; a1: object; comm2: string; a2: object; comm3: string); begin PT4MakerNetX.Data(comm1, a1, comm2, a2, comm3); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà èñõîäíûõ äàíííûõ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела иÑ�ходных даннных. class procedure Data(comm1: string; a1: object; comm2: string; a2: object; comm3: string; a3: object); begin PT4MakerNetX.Data(comm1, a1, comm2, a2, comm3, a3); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ëîãè÷åñêèõ äàííûõ â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть логичеÑ�ких данных в раздел иÑ�ходных данных. class procedure Data(seq: sequence of boolean); begin PT4MakerNetX.Data(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü öåëûõ ÷èñåë â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть целых чиÑ�ел в раздел иÑ�ходных данных. class procedure Data(seq: sequence of integer); begin PT4MakerNetX.Data(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü âåùåñòâåííûõ ÷èñåë â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть вещеÑ�твенных чиÑ�ел в раздел иÑ�ходных данных. class procedure Data(seq: sequence of real); begin PT4MakerNetX.Data(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñèìâîëîâ â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�имволов в раздел иÑ�ходных данных. class procedure Data(seq: sequence of char); begin PT4MakerNetX.Data(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñòðîê â ðàçäåë èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�трок в раздел иÑ�ходных данных. class procedure Data(seq: sequence of string); begin PT4MakerNetX.Data(seq); end; -/// Äîáàâëÿåò êîììåíòàðèé â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет комментарий в новой Ñ�троке раздела результатов. class procedure ResComm(comm: string); begin PT4MakerNetX.ResComm(comm); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. class procedure Res(comm: string; a: object); begin PT4MakerNetX.Res(comm, a); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. class procedure Res(comm1: string; a1: object; comm2: string); begin PT4MakerNetX.Res(comm1, a1, comm2); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. class procedure Res(comm1: string; a1: object; comm2: string; a2: object); begin PT4MakerNetX.Res(comm1, a1, comm2, a2); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. class procedure Res(comm1: string; a1: object; comm2: string; a2: object; comm3: string); begin PT4MakerNetX.Res(comm1, a1, comm2, a2, comm3); end; -/// Äîáàâëÿåò äàííûå è êîììåíòàðèè â íîâîé ñòðîêå ðàçäåëà ðåçóëüòàòîâ. +/// ДобавлÑ�ет данные и комментарии в новой Ñ�троке раздела результатов. class procedure Res(comm1: string; a1: object; comm2: string; a2: object; comm3: string; a3: object); begin PT4MakerNetX.Res(comm1, a1, comm2, a2, comm3, a3); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ëîãè÷åñêèõ äàííûõ â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть логичеÑ�ких данных в раздел результатов. class procedure Res(seq: sequence of boolean); begin PT4MakerNetX.Res(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü öåëûõ ÷èñåë â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть целых чиÑ�ел в раздел результатов. class procedure Res(seq: sequence of integer); begin PT4MakerNetX.Res(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü âåùåñòâåííûõ ÷èñåë â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть вещеÑ�твенных чиÑ�ел в раздел результатов. class procedure Res(seq: sequence of real); begin PT4MakerNetX.Res(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñèìâîëîâ â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�имволов в раздел результатов. class procedure Res(seq: sequence of char); begin PT4MakerNetX.Res(seq); end; -/// Äîáàâëÿåò ïîñëåäîâàòåëüíîñòü ñòðîê â ðàçäåë ðåçóëüòàòîâ. +/// ДобавлÑ�ет поÑ�ледовательноÑ�ть Ñ�трок в раздел результатов. class procedure Res(seq: sequence of string); begin PT4MakerNetX.Res(seq); end; -/// Çàäàåò ìèíèìàëüíóþ øèðèíó ïîëÿ âûâîäà äëÿ ÷èñëîâûõ äàííûõ -/// (÷èñëà âûðàâíèâàþòñÿ ïî ïðàâîìó êðàþ ïîëÿ âûâîäà, -/// ò.å. ïðè íåîáõîäèìîñòè äîïîëíÿþòñÿ ñëåâà ïðîáåëàìè). -/// Åñëè n íå ëåæèò â äèàïàçîíå 0..10, òî âûçîâ ïðîöåäóðû èãíîðèðóåòñÿ. -/// Ïî óìîë÷àíèþ ìèíèìàëüíàÿ øèðèíà ïîëÿ âûâîäà ïîëàãàåòñÿ ðàâíîé 0. +/// Задает минимальную ширину полÑ� вывода длÑ� чиÑ�ловых данных +/// (чиÑ�ла выравниваютÑ�Ñ� по правому краю полÑ� вывода, +/// Ñ‚.е. при необходимоÑ�ти дополнÑ�ÑŽÑ‚Ñ�Ñ� Ñ�лева пробелами). +/// ЕÑ�ли n не лежит в диапазоне 0..10, то вызов процедуры игнорируетÑ�Ñ�. +/// По умолчанию минимальнаÑ� ширина полÑ� вывода полагаетÑ�Ñ� равной 0. class procedure SetWidth(n: integer); begin PT4MakerNetX.SetWidth(n); end; -/// Çàäàåò ôîðìàò îòîáðàæåíèÿ âåùåñòâåííûõ ÷èñåë: -/// ñ ôèêñèðîâàííîé òî÷êîé è n äðîáíûìè çíàêàìè ïðè n > 0, -/// ñ ïëàâàþùåé òî÷êîé è n äðîáíûìè çíàêàìè ïðè n < 0, -/// ñ ïëàâàþùåé òî÷êîé è 6 äðîáíûìè çíàêàìè ïðè n = 0. -/// Åñëè n ïî ìîäóëþ ïðåâîñõîäèò 10, òî âûçîâ ïðîöåäóðû èãíîðèðóåòñÿ. -/// Ïî óìîë÷àíèþ óñòàíàâëèâàåòñÿ ôîðìàò ñ ôèêñèðîâàííîé òî÷êîé -/// è 2 äðîáíûìè çíàêàìè. +/// Задает формат отображениÑ� вещеÑ�твенных чиÑ�ел: +/// Ñ� фикÑ�ированной точкой и n дробными знаками при n > 0, +/// Ñ� плавающей точкой и n дробными знаками при n < 0, +/// Ñ� плавающей точкой и 6 дробными знаками при n = 0. +/// ЕÑ�ли n по модулю превоÑ�ходит 10, то вызов процедуры игнорируетÑ�Ñ�. +/// По умолчанию уÑ�танавливаетÑ�Ñ� формат Ñ� фикÑ�ированной точкой +/// и 2 дробными знаками. class procedure SetPrecision(n: integer); begin PT4MakerNetX.SetPrecision(n); end; -/// Çàäàåò êîëè÷åñòâî òåñòîâûõ çàïóñêîâ, âûïîëíÿåìûõ -/// äëÿ ïðîâåðêè ïðàâèëüíîñòè ïðîãðàììû (îò 2 äî 10). -/// Ïî óìîë÷àíèþ ÷èñëî òåñòîâûõ çàïóñêîâ ïîëàãàåòñÿ ðàâíûì 5. +/// Задает количеÑ�тво теÑ�товых запуÑ�ков, выполнÑ�емых +/// длÑ� проверки правильноÑ�ти программы (от 2 до 10). +/// По умолчанию чиÑ�ло теÑ�товых запуÑ�ков полагаетÑ�Ñ� равным 5. class procedure SetTestCount(n: integer); begin PT4MakerNetX.SetTestCount(n); end; -/// Çàäàåò ìèíèìàëüíî íåîáõîäèìîå êîëè÷åñòâî ýëåìåíòîâ -/// èñõîäíûõ äàííûõ, êîòîðîå òðåáóåòñÿ ââåñòè äëÿ ïðàâèëüíîãî -/// ðåøåíèÿ çàäà÷è â ñëó÷àå òåêóùåãî íàáîðà èñõîäíûõ äàííûõ. -/// Ïðè îòñóòñòâèè ïðîöåäóðû ïðåäïîëàãàåòñÿ, -/// ÷òî äëÿ ïðàâèëüíîãî ðåøåíèÿ íàäî ââåñòè âñå èñõîäíûå äàííûå. +/// Задает минимально необходимое количеÑ�тво Ñ�лементов +/// иÑ�ходных данных, которое требуетÑ�Ñ� ввеÑ�ти длÑ� правильного +/// решениÑ� задачи в Ñ�лучае текущего набора иÑ�ходных данных. +/// При отÑ�утÑ�твии процедуры предполагаетÑ�Ñ�, +/// что длÑ� правильного решениÑ� надо ввеÑ�ти вÑ�е иÑ�ходные данные. class procedure SetRequiredDataCount(n: integer); begin PT4MakerNetX.SetRequiredDataCount(n); end; -/// Âîçâðàùàåò íîìåð òåêóùåãî òåñòîâîãî çàïóñêà -/// (çàïóñêè íóìåðóþòñÿ îò 1). +/// Возвращает номер текущего теÑ�тового запуÑ�ка +/// (запуÑ�ки нумеруютÑ�Ñ� от 1). class function CurrentTest: integer; begin result := PT4MakerNetX.CurrentTest; end; -/// Ãåíåðèðóåò ñëó÷àéíîå öåëîâ â äèàïàçîíå îò M äî N âêëþ÷èòåëüíî. -/// Åñëè M >= N, òî âîçâðàùàåò M. +/// Генерирует Ñ�лучайное целов в диапазоне от M до N включительно. +/// ЕÑ�ли M >= N, то возвращает M. class function Random(M, N: integer): integer; begin result := PT4MakerNetX.Random(M, N); end; -/// Ãåíåðèðóåò ñëó÷àéíîå âåùåñòâåííîå íà ïðîìåæóòêå [A, B). -/// Åñëè ïðîìåæóòîê [A, B) ïóñò, òî âîçâðàùàåò A. +/// Генерирует Ñ�лучайное вещеÑ�твенное на промежутке [A, B). +/// ЕÑ�ли промежуток [A, B) пуÑ�Ñ‚, то возвращает A. class function Random(A, B: real): real; begin result := PT4MakerNetX.Random(A, B); end; -/// Ãåíåðèðóåò ñëó÷àéíóþ ñòðîêó äëèíû len, ñîñòîÿùóþ -/// èç öèôð è ñòðî÷íûõ (ò.å. ìàëåíüêèõ) ëàòèíñêèõ áóêâ. +/// Генерирует Ñ�лучайную Ñ�троку длины len, Ñ�оÑ�тоÑ�щую +/// из цифр и Ñ�трочных (Ñ‚.е. маленьких) латинÑ�ких букв. class function RandomName(len: integer): string; begin result := PT4MakerNetX.RandomName(len); end; -/// Ñîçäàåò íîâóþ ãðóïïó ñ êðàòêèì îïèñàíèåì GroupDescription, -/// èíôîðìàöèåé îá àâòîðå GroupAuthor è íàáîðîì íåîáÿçàòåëüíûõ îïöèé, îáúåäèíÿåìûõ îïåðàöèåé or. -/// Èìÿ ãðóïïû îïðåäåëÿåòñÿ ïî èìåíè áèáëèîòåêè (ïóòåì îòáðàñûâàíèÿ ïðåôèêñà PT4). -///  ãðóïïó âêëþ÷àþòñÿ çàäàíèÿ, îïðåäåëåííûå â ïðîöåäóðàõ, èìåíà êîòîðûõ íà÷èíàþòñÿ ñ òåêñòà Task. -/// Ïðîöåäóðà NewGroup äîëæíà áûòü âûçâàíà â ïðîöåäóðå inittaskgroup áåç ïàðàìåòðîâ, êîòîðóþ -/// íåîáõîäèìî îïèñàòü â áèáëèîòåêå ñ ãðóïïîé çàäàíèé (âñå áóêâû â èìåíè inittaskgroup - ñòðî÷íûå). +/// Создает новую группу Ñ� кратким опиÑ�анием GroupDescription, +/// информацией об авторе GroupAuthor и набором необÑ�зательных опций, объединÑ�емых операцией or. +/// ИмÑ� группы определÑ�етÑ�Ñ� по имени библиотеки (путем отбраÑ�ываниÑ� префикÑ�а PT4). +/// Ð’ группу включаютÑ�Ñ� заданиÑ�, определенные в процедурах, имена которых начинаютÑ�Ñ� Ñ� текÑ�та Task. +/// Процедура NewGroup должна быть вызвана в процедуре inittaskgroup без параметров, которую +/// необходимо опиÑ�ать в библиотеке Ñ� группой заданий (вÑ�е буквы в имени inittaskgroup - Ñ�трочные). class procedure NewGroup(GroupDescription, GroupAuthor: string; Options: integer := 0); begin PT4MakerNetX.NewGroup(GroupDescription, GroupAuthor, Options); end; -/// Îáåñïå÷èâàåò ðåãèñòðàöèþ ñîçäàííîé ãðóïïû â ýëåêòðîííîì çàäà÷íèêå. -/// Ïðîöåäóðà ActivateNET(S) äîëæíà áûòü âûçâàíà â ïðîöåäóðå activate(S: string), -/// êîòîðóþ íåîáõîäèìî îïèñàòü â áèáëèîòåêå ñ ãðóïïîé çàäàíèé (âñå áóêâû â èìåíè activate - ñòðî÷íûå). +/// ОбеÑ�печивает региÑ�трацию Ñ�озданной группы в Ñ�лектронном задачнике. +/// Процедура ActivateNET(S) должна быть вызвана в процедуре activate(S: string), +/// которую необходимо опиÑ�ать в библиотеке Ñ� группой заданий (вÑ�е буквы в имени activate - Ñ�трочные). class procedure ActivateNET(S: string); begin PT4MakerNetX.ActivateNET(S); end; -/// Èìïîðòèðóåò â ñîçäàâàåìóþ ãðóïïó ñóùåñòâóþùåå çàäàíèå -/// èç ãðóïïû GroupName ñ íîìåðîì TaskNumber. Äîëæíà âûçûâàòüñÿ -/// â ïðîöåäóðå ñ èìåíåì, íà÷èíàþùåìñÿ ñ òåêñòà Task. +/// Импортирует в Ñ�оздаваемую группу Ñ�ущеÑ�твующее задание +/// из группы GroupName Ñ� номером TaskNumber. Должна вызыватьÑ�Ñ� +/// в процедуре Ñ� именем, начинающемÑ�Ñ� Ñ� текÑ�та Task. class procedure UseTask(GroupName: string; TaskNumber: integer); begin PT4MakerNetX.UseTask(GroupName, TaskNumber); end; -/// Âîçâðàùàåò ìàññèâ èç 116 ðóññêèõ ñëîâ. +/// Возвращает маÑ�Ñ�ив из 116 руÑ�Ñ�ких Ñ�лов. class function GetWords: array of string; begin result := PT4MakerNetX.GetWords; end; -/// Âîçâðàùàåò ìàññèâ èç 116 àíãëèéñêèõ ñëîâ. +/// Возвращает маÑ�Ñ�ив из 116 английÑ�ких Ñ�лов. class function GetEnWords: array of string; begin result := PT4MakerNetX.GetEnWords; end; -/// Âîçâðàùàåò ìàññèâ èç 61 ðóññêîãî ïðåäëîæåíèÿ. +/// Возвращает маÑ�Ñ�ив из 61 руÑ�Ñ�кого предложениÑ�. class function GetSentences: array of string; begin result := PT4MakerNetX.GetSentences; end; -/// Âîçâðàùàåò ìàññèâ èç 61 àíãëèéñêîãî ïðåäëîæåíèÿ. +/// Возвращает маÑ�Ñ�ив из 61 английÑ�кого предложениÑ�. class function GetEnSentences: array of string; begin result := PT4MakerNetX.GetEnSentences; end; -/// Âîçâðàùàåò ìàññèâ èç 85 ðóññêèõ ìíîãîñòðî÷íûõ òåêñòîâ. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает маÑ�Ñ�ив из 85 руÑ�Ñ�ких многоÑ�трочных текÑ�тов. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. class function GetTexts: array of string; begin result := PT4MakerNetX.GetTexts; end; -/// Âîçâðàùàåò ìàññèâ èç 85 àíãëèéñêèõ ìíîãîñòðî÷íûõ òåêñòîâ. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает маÑ�Ñ�ив из 85 английÑ�ких многоÑ�трочных текÑ�тов. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. class function GetEnTexts: array of string; begin result := PT4MakerNetX.GetEnTexts; end; -/// Âîçâðàùàåò ñëó÷àéíîå ðóññêîå ñëîâî èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное руÑ�Ñ�кое Ñ�лово из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. class function RandomWord: string; begin result := PT4MakerNetX.RandomWord; end; -/// Âîçâðàùàåò ñëó÷àéíîå àíãëèéñêîå ñëîâî èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное английÑ�кое Ñ�лово из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. class function RandomEnWord: string; begin result := PT4MakerNetX.RandomEnWord; end; -/// Âîçâðàùàåò ñëó÷àéíîå ðóññêîå ïðåäëîæåíèå èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное руÑ�Ñ�кое предложение из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. class function RandomSentence: string; begin result := PT4MakerNetX.RandomSentence; end; -/// Âîçâðàùàåò ñëó÷àéíîå àíãëèéñêîå ïðåäëîæåíèå èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. +/// Возвращает Ñ�лучайное английÑ�кое предложение из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. class function RandomEnSentence: string; begin result := PT4MakerNetX.RandomEnSentence; end; -/// Âîçâðàùàåò ñëó÷àéíûé ðóññêèé ìíîãîñòðî÷íûé òåêñò èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает Ñ�лучайный руÑ�Ñ�кий многоÑ�трочный текÑ�Ñ‚ из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. class function RandomText: string; begin result := PT4MakerNetX.RandomText; end; -/// Âîçâðàùàåò ñëó÷àéíûé àíãëèéñêèé ìíîãîñòðî÷íûé òåêñò èç ìàññèâà, -/// âõîäÿùåãî â êîíñòðóêòîð ó÷åáíûõ çàäàíèé. -/// Êàæäàÿ ñòðîêà òåêñòà îêàí÷èâàåòñÿ ñèìâîëàìè #13#10. +/// Возвращает Ñ�лучайный английÑ�кий многоÑ�трочный текÑ�Ñ‚ из маÑ�Ñ�ива, +/// входÑ�щего в конÑ�труктор учебных заданий. +/// КаждаÑ� Ñ�трока текÑ�та оканчиваетÑ�Ñ� Ñ�имволами #13#10. class function RandomEnText: string; begin result := PT4MakerNetX.RandomEnText; end; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ôàéë öåëûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет в задание иÑ�ходный файл целых чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. class procedure DataFileInteger(FileName: string); begin PT4MakerNetX.DataFileInteger(FileName); end; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ôàéë âåùåñòâåííûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. +/// ДобавлÑ�ет в задание иÑ�ходный файл вещеÑ�твенных чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. class procedure DataFileReal(FileName: string); begin PT4MakerNetX.DataFileReal(FileName); end; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ñèìâîëüíûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. Ñèìâîëû äîëæíû -/// õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный Ñ�имвольный файл +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. Символы должны +/// хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure DataFileChar(FileName: string); begin PT4MakerNetX.DataFileChar(FileName); end; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé ñòðîêîâûé ôàéë -/// ñ ýëåìåíòàìè òèïà ShortString è èìåíåì FileName -/// è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå èñõîäíûõ äàííûõ. -/// Äëèíà ýëåìåíòîâ ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Ñòðîêè äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный Ñ�троковый файл +/// Ñ� Ñ�лементами типа ShortString и именем FileName +/// и отображает его Ñ�одержимое в разделе иÑ�ходных данных. +/// Длина Ñ�лементов файла не должна превоÑ�ходить 70 Ñ�имволов. +/// Строки должны хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure DataFileString(FileName: string); begin PT4MakerNetX.DataFileString(FileName); end; -/// Äîáàâëÿåò â çàäàíèå èñõîäíûé òåêñòîâûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå -/// â ðàçäåëå èñõîäíûõ äàííûõ. Äëèíà êàæäîé ñòðîêè -/// òåêñòîâîãî ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Òåêñò äîëæåí õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание иÑ�ходный текÑ�товый файл +/// Ñ� именем FileName и отображает его Ñ�одержимое +/// в разделе иÑ�ходных данных. Длина каждой Ñ�троки +/// текÑ�тового файла не должна превоÑ�ходить 70 Ñ�имволов. +/// ТекÑ�Ñ‚ должен хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure DataText(FileName: string; LineCount: integer := 4); begin PT4MakerNetX.DataText(FileName); end; -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ôàéë öåëûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. +/// ДобавлÑ�ет в задание результирующий файл целых чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. class procedure ResFileInteger(FileName: string); begin PT4MakerNetX.ResFileInteger(FileName); end; -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ôàéë âåùåñòâåííûõ ÷èñåë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. +/// ДобавлÑ�ет в задание результирующий файл вещеÑ�твенных чиÑ�ел +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. class procedure ResFileReal(FileName: string); begin PT4MakerNetX.ResFileReal(FileName); end; -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ñèìâîëüíûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Ñèìâîëû äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий Ñ�имвольный файл +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. +/// Символы должны хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure ResFileChar(FileName: string); begin PT4MakerNetX.ResFileChar(FileName); end; -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé ñòðîêîâûé ôàéë -/// ñ ýëåìåíòàìè òèïà ShortString è èìåíåì FileName -/// è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Äëèíà ýëåìåíòîâ ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Ñòðîêè äîëæíû õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий Ñ�троковый файл +/// Ñ� Ñ�лементами типа ShortString и именем FileName +/// и отображает его Ñ�одержимое в разделе результатов. +/// Длина Ñ�лементов файла не должна превоÑ�ходить 70 Ñ�имволов. +/// Строки должны хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure ResFileString(FileName: string); begin PT4MakerNetX.ResFileString(FileName); end; -/// Äîáàâëÿåò â çàäàíèå ðåçóëüòèðóþùèé òåêñòîâûé ôàéë -/// ñ èìåíåì FileName è îòîáðàæàåò åãî ñîäåðæèìîå â ðàçäåëå ðåçóëüòàòîâ. -/// Äëèíà êàæäîé ñòðîêè òåêñòîâîãî ôàéëà íå äîëæíà ïðåâîñõîäèòü 70 ñèìâîëîâ. -/// Òåêñò äîëæåí õðàíèòüñÿ â ôàéëå â îäíîáàéòíîé êîäèðîâêå. +/// ДобавлÑ�ет в задание результирующий текÑ�товый файл +/// Ñ� именем FileName и отображает его Ñ�одержимое в разделе результатов. +/// Длина каждой Ñ�троки текÑ�тового файла не должна превоÑ�ходить 70 Ñ�имволов. +/// ТекÑ�Ñ‚ должен хранитьÑ�Ñ� в файле в однобайтной кодировке. class procedure ResText(FileName: string; LineCount: integer := 5); begin PT4MakerNetX.ResText(FileName); @@ -647,13 +647,13 @@ uses System.Reflection, PT4TaskMakerNET, System.Windows.Forms, System; const alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'; - ErrMes1 = 'Error: Ðàçäåë ðàçìåðîì áîëåå 5 ñòðîê íå ìîæåò ñîäåðæàòü ôàéëîâûå äàííûå.'; - ErrMes2 = 'Error: Ïðè íàëè÷èè ôàéëîâûõ äàííûõ ðàçäåë íå ìîæåò ñîäåðæàòü áîëåå 5 ñòðîê.'; - ErrMes3 = 'Error: Êîëè÷åñòâî èñõîäíûõ äàííûõ ïðåâûñèëî 200.'; - ErrMes4 = 'Error: Êîëè÷åñòâî ðåçóëüòèðóþùèõ äàííûõ ïðåâûñèëî 200.'; - ErrMes5 = 'Error: Ïðè îïðåäåëåíèè çàäàíèÿ ïåðâîé äîëæíà âûçûâàòüñÿ ïðîöåäóðà NewTask.'; - ErrMes6 = 'Error: Ïðè îïðåäåëåíèè çàäàíèÿ íå óêàçàíû èñõîäíûå äàííûå.'; - ErrMes7 = 'Error: Ïðè îïðåäåëåíèè çàäàíèÿ íå óêàçàíû ðåçóëüòèðóþùèå äàííûå.'; + ErrMes1 = 'Error: Раздел размером более 5 Ñ�трок не может Ñ�одержать файловые данные.'; + ErrMes2 = 'Error: При наличии файловых данных раздел не может Ñ�одержать более 5 Ñ�трок.'; + ErrMes3 = 'Error: КоличеÑ�тво иÑ�ходных данных превыÑ�ило 200.'; + ErrMes4 = 'Error: КоличеÑ�тво результирующих данных превыÑ�ило 200.'; + ErrMes5 = 'Error: При определении заданиÑ� первой должна вызыватьÑ�Ñ� процедура NewTask.'; + ErrMes6 = 'Error: При определении заданиÑ� не указаны иÑ�ходные данные.'; + ErrMes7 = 'Error: При определении заданиÑ� не указаны результирующие данные.'; var yd, yr, ye, nd, nr, pr, wd: integer; @@ -722,18 +722,18 @@ begin if nt then exit; PT4TaskMakerNET.CreateTask(topic); PT4TaskMakerNET.TaskText(tasktext); - nt := true; // âûçâàíà ïðîöåäóðà NewTask - ut := false; // áûëî ïîäêëþ÷åíî ñóùåñòâóþùåå çàäàíèå (ïðîöåäóðîé UseTask) - ye := 1; // òåêóùèé íîìåð ñòðîêè äëÿ âûâîäà ñîîáùåíèÿ îá îøèáêå - yd := 0; // òåêóùèé íîìåð ñòðîêè â ðàçäåëå èñõîäíûõ äàííûõ - yr := 0; // òåêóùèé íîìåð ñòðîêè â ðàçäåëå ðåçóëüòàòîâ - nd := 0; // êîëè÷åñòâî ýëåìåíòîâ èñõîäíûõ äàííûõ - nr := 0; // êîëè÷åñòâî ýëåìåíòîâ ðåçóëüòèðóþùèõ äàííûõ - fd := false; // íàëè÷èå ôàéëîâûõ äàííûõ â ðàçäåëå èñõîäíûõ äàííûõ - fr := false; // íàëè÷èå ôàéëîâûõ äàííûõ â ðàçäåëå ðåçóëüòàòîâ - pr := 2; // òåêóùàÿ òî÷íîñòü âûâîäà âåùåñòâåííûõ äàííûõ - fmt := 'f2'; // òåêóùèé ôîðìàò âûâîäà âåùåñòâåííûõ äàííûõ - wd := 0; // òåêóùàÿ øèðèíà ïîëÿ âûâîäà äëÿ ÷èñåë + nt := true; // вызвана процедура NewTask + ut := false; // было подключено Ñ�ущеÑ�твующее задание (процедурой UseTask) + ye := 1; // текущий номер Ñ�троки длÑ� вывода Ñ�ообщениÑ� об ошибке + yd := 0; // текущий номер Ñ�троки в разделе иÑ�ходных данных + yr := 0; // текущий номер Ñ�троки в разделе результатов + nd := 0; // количеÑ�тво Ñ�лементов иÑ�ходных данных + nr := 0; // количеÑ�тво Ñ�лементов результирующих данных + fd := false; // наличие файловых данных в разделе иÑ�ходных данных + fr := false; // наличие файловых данных в разделе результатов + pr := 2; // текущаÑ� точноÑ�ть вывода вещеÑ�твенных данных + fmt := 'f2'; // текущий формат вывода вещеÑ�твенных данных + wd := 0; // текущаÑ� ширина полÑ� вывода длÑ� чиÑ�ел end; function wreal(w: integer; x: real): integer; @@ -1202,7 +1202,7 @@ end; procedure NewGroup(GroupDescription, GroupAuthor: string; Options: integer); begin - if not AcceptedLanguage(Options) then exit; // íåäîïóñòèìûé òåêóùèé ÿçûê + if not AcceptedLanguage(Options) then exit; // недопуÑ�тимый текущий Ñ�зык var ass := Assembly.GetCallingAssembly; var GroupName := GetGroupName(ass.FullName); var nm := 'PT4' + GroupName; @@ -1216,8 +1216,8 @@ begin end; if tasks.Count = 0 then begin - Show('Ãðóïïà ' + GroupName + ' íå ñîäåðæèò çàäàíèé'#13#10+ - '(èìåíà ïðîöåäóð ñ çàäàíèÿìè äîëæíû íà÷èíàòüñÿ ñ òåêñòà "Task").'); + Show('Группа ' + GroupName + ' не Ñ�одержит заданий'#13#10+ + '(имена процедур Ñ� заданиÑ�ми должны начинатьÑ�Ñ� Ñ� текÑ�та "Task").'); exit; end; if Options and OptionUseAddition = OptionUseAddition then diff --git a/bin/Lib/PT4TaskMakerNET.pas b/bin/Lib/PT4TaskMakerNET.pas index a6044e10e..68cf6c3c4 100644 --- a/bin/Lib/PT4TaskMakerNET.pas +++ b/bin/Lib/PT4TaskMakerNET.pas @@ -6,7 +6,7 @@ unit PT4TaskMakerNET; //------------------------------------------------------------------------------ // Модуль длÑ� Ñ�озданиÑ� NET-библиотек Ñ� группами заданий в Ñ�иÑ�теме PascalABC.NET // -// Copyright (c) 2013 М.Э.Ð�брамÑ�н +// Copyright (©) 2013 М.Э.Ð�брамÑ�н // Электронный задачник Programming Taskbook Copyright (c) М.Э.Ð�брамÑ�н,1998-2013 //------------------------------------------------------------------------------