Объявление пользовательских процедур
В OWBasic есть возможность объявления пользовательских процедур. Пользовательские
процедуры всегда объявляются в начале программы. Выполнение главной программы начинается после последнего определения процедуры.
Объявление процедуры начинается с заголовка процедуры и заканчивается ключевым словом ENDP.
PROC test A, B#, VAR C
<операторы>
ENDP |
Заголовок процедуры начинается с ключевого слова PROC, сопровождаемый
именем процедуры и списком параметров. Список параметров содержит параметры, которые должны быть переданы с запросом и дают
им формальное название. Это название используется для параметра в пределах процедуры. Тип определяется подобно переменным по
суффиксу. Без суффикса принимается Стандартный тип.
Без дополнительного признака, параметр передаёт значение(в примере
параметры A и B). Это означает, что при входе эти значения появляются и существуют
только в процедуре. Модификации значений ни как не влияют на переменные в главной программе.
Переменные параметры помеченные ключевым словом VAR (параметр C в примере).
Здесь при вызове переменная передаётся вызываемой программе. Модификации в этом
параметре здесь действительно изменяют переданную(перемещенную) переменную.
Переменные, используемые в пределах процедуры
являются локальными, то есть, вне процедуры, они являются неизвестными.
Вызов процедур пользователя имеет место как с нормальными процедурами посредством
имени. Начиная с версии 2.55 объявление процедуры пользователя допустимо, даже если
встроенная процедура с таким именем существует.
Пример 1: Значения параметров
PROC printxy x,y: ! Эта процедура печатает процедуру
PRINT "("; x; ","; y; ")"; : ! Форматирование вывода
ENDP
x=5: y=7: ! Эти переменные не должны делать ничего
! с параметрами процедуры.
printxy x-4, y+6: ! Вызов примера |
Пример 2: Переменная-параметр
PROC myinc VAR n: ! Процедура симулирует встроенную INC
n=n+1
ENDP
i=4
myinc i : ! Вызов примера
PRINT i : ! Выводиться 5 |
Массивы требуют специального внимания как
параметры процедуры
|