Procedure : EndProcedure

Синтаксис

Procedure[.<тип данных>] <имя процедуры> (<переменная1>[,<переменная2>,...]) 
  ...
  [ProcedureReturn <результирующее значение>]
EndProcedure 

Описание

Процедуры объявляемые оператором Procedure служат для группировки повторяющихся частей программы, с целью упрощения её структуры. В языке PureBasic, процедуры могут иметь аргументы (выступать в роли функций), а также, собственные переменные, и вызываться из любой части программы по своему имени. Если процедура имеет передаваемые аргументы, то они указываются при её вызове, в круглых скобках. Допускается вызов одной процедуры из тела другой (вложенные вызовы процедур). Для получения доступа к переменным находящимся вне тела процедуры, необходимо использовать операторы Shared или Global. Процедуры могут возвращать в тело программы результирующее значение (в случае необходимости), которое указывается после оператора ProcedureReturn и может являться, как переменной, так и константой. Конструкция должна завершаться оператором EndProcedure.

Например :

Procedure.l Максимум(nb1.l, nb2.l)
  If nb1>nb2
    Результат.l = nb1
  Else
    Результат = nb2
  Endif

  ProcedureReturn Результат
EndProcedure 

Результат.l = Максимум(15,30)
PrintNumberN(Результат)
End 

Глобальные переменные

Синтаксис:

Global <переменная> [,<переменная>,...]

Описание:

Оператор Global служит для объявления переменных в глобальной области видимости. Объявленные переменные становятся доступными не только в теле программы, но и внутри процедур.

Например :

Global a.l, b.b, c, d


Разделяемые переменные

Синтаксис

Shared <переменная> [,<переменная>,...]

Описание

Оператор Shared служит для объявления разделяемых переменных. Объявленные переменные будут доступны для изменения в теле процедуре, при условии, что они были ранее объявлены в теле программы.

Например :

a.l = 10
Procedure Модификация()
  Shared a
  a = 20 
EndProcedure 

Модификация() 
PrintNumberN(a) ; Оператор 'PrintNumberN' выведет число 20, т.к. переменная "a"
                ; была объявлена разделяемой и изменена в процедуре 'Модификация()'. 
End

Сайт создан в системе uCoz