diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs
index 3b2e12d7b..8b571d2f9 100644
--- a/Configuration/GlobalAssemblyInfo.cs
+++ b/Configuration/GlobalAssemblyInfo.cs
@@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "11";
public const string Build = "0";
- public const string Revision = "3693";
+ public const string Revision = "3699";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
diff --git a/Configuration/Version.defs b/Configuration/Version.defs
index 482976893..f1e858597 100644
--- a/Configuration/Version.defs
+++ b/Configuration/Version.defs
@@ -1,4 +1,4 @@
%MINOR%=11
-%REVISION%=3693
+%REVISION%=3699
%COREVERSION%=0
%MAJOR%=3
diff --git a/PABCNetHelp/Common/Net.html b/PABCNetHelp/Common/Net.html
index e7a9db332..1beb14772 100644
--- a/PABCNetHelp/Common/Net.html
+++ b/PABCNetHelp/Common/Net.html
@@ -112,9 +112,9 @@ Microsoft.NET - среда
Отметим, что достоинства платформы .NET
diff --git a/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html
index 55680ff9b..e7a74eb51 100644
--- a/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html
+++ b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html
@@ -58,13 +58,13 @@
Шаг 2. Переменные
После запуска этого вариант программы окно задачник примет вид: Шаг 3. Исправим тип исходных данных: Вновь запустим программу: Шаг 4. Проведем
вычисления и выведем результирующие данные, но в неверном порядке: Вновь запустим программу: Шаг 5. Исправим
ошибку: После запуска программы увидим следующее окно:
a и b
-считываются из полей ввода, выделенных желтым цветом, с помощью обычной процедуры read. Закроем окно задачника
+считываются из полей ввода, выделенных желтым цветом, с помощью обычной функции
+ReadInteger, ReadReal ... Закроем окно задачника
и изменим программу следующим образом:
-
uses PT4;
var a, b: integer;
- begin
Task('Begin3');
- read(a, b);
+ uses PT4;
begin
Task('Begin3');
+ var (a,b) := ReadInteger2;
end.
-
uses PT4;
var a, b: real;
- begin
Task('Begin3');
- read(a, b);
+ uses PT4;
begin
Task('Begin3');
+ var (a,b) := ReadReal2;
end.
-
uses PT4;
var a, b, S, P: real;
- begin
Task('Begin3');
- read(a, b);
- S := a * b;
- P := 2 * (a + b);
- write(P, S)
+ uses PT4;
begin
Task('Begin3');
+ var (a,b) := ReadReal2;
+ var S := a * b;
+ var P := 2 * (a + b);
+ Print(P, S)
end.
-
uses PT4;
+
var a, b, S, P: real;
begin
Task('Begin3');
read(a, b);
- S := a * b;
- P := 2 * (a + b);
- write(S, P)
end.uses PT4;
begin
Task('Begin3');
+ var (a,b) := ReadReal2;
+ var S := a * b;
+ var P := 2 * (a + b);
+ Print(S, P)
+ end.
diff --git a/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html b/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html
index 81bccb8fe..c2d884308 100644
--- a/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html
+++ b/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html
@@ -37,13 +37,14 @@
или клавиатурной
комбинации Shift+Ctrl+L. Приведем текст созданной заготовки:
uses PT4Exam;
+uses PT4Exam;
-begin
+
begin
+
Task('ExamBegin2');
-end.
-
+После запуска программы на экране появится окно задачника:
@@ -93,33 +94,15 @@+Приступим к выполнению задания. В данном случае следует использовать алгоритм, не требующий применения массивов, поэтому опишем три простые переменные вещественного типа и введем в них исходные данные:
--uses PT4Exam; -var - a, b, c: real; -begin +uses PT4Exam; +
begin
Task('ExamBegin2'); - read(a, b, c); -end. -Мы воспользовались стандартной процедурой ввода
-read, введя все три исходных числа за один ее вызов. -Этого же результата мы могли бы добиться и с помощью процедурыreadln: --readln(a, b, c); -Заметим, что использование отдельных процедур
-readlnдля ввода каждого числа приведет к ошибочному результату: --readln(a); -readln(b); -readln(c); -В этом случае уже после ввода первого числа произойдет автоматический переход на следующую строку -с исходными данными. Поэтому оставшиеся в первой строке числа будут пропущены, а поскольку -во второй строке «ничего нет» (входной поток состоит из единственной строки), -будет выведено сообщение об ошибке «Input string was not in a correct format» -(«Входная строка имела неверный формат»). -
-Приведенный пример показывает, что при организации ввода данных в заданиях групп Exam необходимо учитывать особенности -стандартных процедур
readиreadln. +
+var + (a,b,c) := ReadReal3; +
end. +
Мы воспользовались стандартной функцией ввода ReadReal3, введя все три исходных числа за один ее вызов.
При запуске приведенного выше варианта программы вид окна не изменится, поскольку мы не вывели никаких данных. В заданиях групп Exam запуск программы считается ознакомительным до тех пор, пока программа не выведет @@ -132,22 +115,24 @@ readln(c);
Реализуем алгоритм нахождения минимального и максимального элемента. Для этого опишем еще две
переменные min и max типа real и добавим в конец программы следующие операторы:
if a < b then
-begin
+if a < b then
+
begin
+
min := a;
- max := b;
-end
-else
-begin
+
max := b;
+
end
+
else
+
begin
min := b;
- max := a;
-end;
-if c < min then
+
max := a;
+
end;
+
if c < min then
min := c
-else
- if c > max then
+
else
+ if c > max then
max := c;
-
+
+
Таким образом, для одновременного нахождения минимального и максимального из трех чисел требуется не более трех операций сравнения и не более трех операций присваивания.
@@ -161,8 +146,7 @@ readln(c);Вначале, в качестве примера, организуем вывод, не соответствующий условиям задачи. Для этого добавим в конец программы следующий оператор:
-writeln(min, max);
-
+Println(min, max);
Приведем вид окна задачника при запуске полученной программы:
@@ -189,16 +173,12 @@ readln(c);Для исправления первых двух ошибок достаточно изменить вывод следующим образом:
-writeln('MIN=', min);
-writeln('MAX=', max);
-
+Println('MIN=', min);
Println('MAX=', max);
Однако в этом случае числа по-прежнему могут содержать неверное число дробных знаков. Для исправления этой последней ошибки проще всего использовать атрибуты форматирования, начинающиеся с символа «:» (двоеточие):
-writeln('MIN=', min:0:2);
-writeln('MAX=', max:0:2);
-
+Println('MIN=', min:0:2);
Println('MAX=', max:0:2);
Первый атрибут определяет ширину поля вывода (если ширина равна 0, то используется минимально необходимое поле вывода). Наличие второго атрибута (допустимого только для вещественных чисел) означает, что число надо вывести в формате с фиксированной точкой, причем его значение равно количеству дробных знаков. diff --git a/PABCNetHelp/ForEducation/CheckedTasks/index.html b/PABCNetHelp/ForEducation/CheckedTasks/index.html index 4fa7c6717..6799aded7 100644 --- a/PABCNetHelp/ForEducation/CheckedTasks/index.html +++ b/PABCNetHelp/ForEducation/CheckedTasks/index.html @@ -49,47 +49,6 @@ Programming Taskbook свидетельствует, что обучение Робот.
Исполнитель Робот является бесценным источником заданий для быстрого обучения основным конструкциям программирования школьников средних классов.
-Пример 3. Задание String9 -из электронного задачника Programming Taskbook.
-Данное задание знакомит с особенностями выполнения заданий на обработку символов -и строк. Следует обратить внимание на диагностику ошибки, связанной с выводом строки, длина которой превышает длину -строки правильного решения.
-Пример 4. Задание File48 -из электронного задачника Programming Taskbook.
-Это задание знакомит с особенностями выполнения заданий -на обработку типизированных файлов. Исходные файлы при вызове -задания создаются на диске, после чего могут обрабатываться по стандартным -правилам. Содержимое файлов, созданных в процессе выполнения задания, -проверяется электронным задачником; после проверки исходные и результирующие -файлы автоматически удаляются. Следует обратить внимание на то, как содержимое -файлов отображается в окне задачника, а также на обработку ошибок времени -выполнения, возникающих при выполнении заданий. В примере описаны типичные ошибки при -работе с файлами и способы их устранения.
-Пример 5. Задания группы Dynamic -из электронного задачника Programming Taskbook.
-В данном примере описываются задания из раздела, посвященного указателям и линейным динамическим -структурам данных. При вызове задания в динамической памяти создаются все -исходные структуры данных (в виде односвязных или двусвязных списков), а -указатели на элементы этих структур выступают в качестве входных данных задания. -Содержимое всех структур данных отображается в окне задачника в наглядном виде. -Созданные программой ученика структуры данных анализируются задачником и после -анализа все структуры данных удаляются из памяти.
-Пример 6. Задания группы Tree -из электронного задачника Programming Taskbook.
-В данном примере описываются задания на обработку иерархических структур данных -деревьев. Подобные структуры, как и линейные динамические структуры, рассмотренные -в предыдущем примере, создаются задачником автоматически и в наглядном виде отображаются -в его окне. Для доступа к ним также используются указатели. -
-Пример 7. Задания групп ExamBegin и ExamTaskC -из электронного задачника Programming Taskbook.
-Пример содержит описание процесса выполнения заданий, связанных с ЕГЭ -по информатике. Основной особенностью этих заданий является то, что -при их выполнении требуется использовать стандартные процедуры ввода-вывода языка -Pascal (а не их специальные модификации, реализованные для задачника Programming Taskbook). -Рассматриваются задания из группы ExamBegin, посвященные базовым алгоритмам, -и задания из группы ExamTaskC, посвященные обработке сложных наборов данных. -
Все примеры, связанные с электронным задачником Programming Taskbook, иллюстрируются изображениями окна задачника в режиме с динамической компоновкой, появившемся в версии 4.11. diff --git a/PABCNetHelp/LangGuide/Classes/attributes.html b/PABCNetHelp/LangGuide/Classes/attributes.html index fcd9f682a..a5cfefac1 100644 --- a/PABCNetHelp/LangGuide/Classes/attributes.html +++ b/PABCNetHelp/LangGuide/Classes/attributes.html @@ -27,7 +27,7 @@ protected, атрибуты static, virtual и override для методов. <
+ begin
type AuthorAttribute = class(System.Attribute)
auto property Name: string;
constructor (n: string);
- begin
name := n;
end;
end;
Name := n;
end;
end;
Следует обратить внимание, что класс атрибута принято оканчивать на
Attribute.
Следует обратить внимание, что окончание Attribute можно не
указывать.
Распознать, помечен ли данный класс атрибутом, можно, используя -отражение:
+анализ типа:-then
begin.
var t := typeof(My);
var attrs := t.GetCustomAttributes(false);
@@ -51,7 +51,7 @@ Attribute
Print(auth.Name);
end.
След
+