Слово nil осталось неизменным, так как в PascalABC.NET оно применяется для обозначения как нулевых указателей, так и пустых" объектов. При использовании других языков платформы .NET обозначения "пустых" объектов соответствующим образом корректируются; так, для языка C# применяется обозначение null, а для языка VB.NET -- обозначение Noth (от слова Nothing).
Заметим, что объектный стиль используется в базовых группах ObjDyn и ObjTree, имеющихся в варианте задачника для системы PascalABC.NET. Эти группы с содержательной точки зрения полностью аналогичны группам Dynamic и Tree, ориентированным на применение указателей.
Процедуры, описанные в настоящем разделе, связаны с разработкой заданий по параллельному программированию и доступны в конструкторе учебных заданий, начиная с версии 4.9 задачника Programming Taskbook. Подробное описание этих процедур приводится в соответствующем разделе описания задачника Programming Taskbook for MPI.
procedure CreateTask([SubgroupName: string;] var ProcessCount: integer);
Данные перегруженные варианты процедуры CreateTask предназначены для инициализации задания по параллельному программированию. От исходных вариантов процедуры CreateTask их отличает наличие параметра ProcessCount. Параметр SubgroupName имеет тот же смысл, что и для исходных вариантов процедуры: он определяет заголовок
Параметр ProcessCount определяет количество процессов при выполнении задания в параллельном режиме. Допускается использовать от 2 до 36 процессов. При определении параметра ProcessCount желательно применять датчик случайных чисел; это позволит протестировать предложенный алгоритм решения при различном количестве процессов параллельного приложения.
Если параметр ProcessCount меньше или равен 1, то для инициализации задания используется соответствующий вариант процедуры CreateTask без данного параметра (при этом выходное значение параметра ProcessCount полагается равным 1, а задание выполняется в обычном, непараллельном" режиме).
Если параметр ProcessCount превосходит 36, то в окне задачника выводится сообщение об ошибке.
Способ использования параметра ProcessCount при инициализации задания по параллельному программированию зависит от того, какую роль" играет программа, вызвавшая процедуру CreateTask с параметром ProcessCount (см. таблицу).
Роль" программы | Входное значение параметра ProcessCount | Выходное значение параметра ProcessCount |
Непараллельная программа-загрузчик, обеспечивающая запуск параллельного варианта программы | Используется (определяет число процессов при запуске параллельного варианта программы) | Всегда равно 0 |
Главный процесс параллельной программы (процесс ранга 0) | Не используется | Равно числу процессов в параллельной программе; используется при формировании входных и выходных данных |
Подчиненный процесс параллельной программы | Не используется | Всегда равно 0 |
Непараллельная программа, обеспечивающая демонстрационный запуск учебного задания | Используется | Всегда равно входному значению; используется при формировании входных и выходных данных |
procedure SetProcess(ProcessRank: integer);
Данная процедура устанавливает в качестве