MyFunc =result – обязательный оператор (в теле функции её возвращаемое значение обязательно должно быть присвоено переменной с именем функции)
Для вызова функции достаточно указать ее имя (с фактическими параметрами) в любом выражении. Отметим, что имя функции можно использовать в арифметических выражениях и других командах.
Вызов функции производится следующим образом:
1. без присваивания: MyFunc Param1, Param2, Param3 … ParamN
2. с присваиванием: x=MyFunc (Param1, Param2, Param3 … ParamN)
MyFunc - имя функции
Param1, Param2, Param3 … ParamN - фактические параметры.
Замечание : внутри тела процедуры или функции можно объявлять новые переменные при помощи ключевого слова Dim.
Пример использования функции в программе (без параметров):
Задача: вывести на экран значение выражения: (7+8)*100/5, используя функцию summa
Текст программы:
Function summa
MsgBox ((7+8)*100/5)
End Function
summa
Для функций, также как и для процедур, существует передача параметра по ссылке и по значению.
Пример: передача параметра по значению.
Задача: вывести на экран зарплату сотрудника с вычетом налога (13%) и без вычета.
Текст программы:
option explicit
dim a
Function nalog( ByVal a) 'параметр подлежит передаче по значению
a=a-(13*a)/100 'вычисление зарплаты с вычетом налога
MsgBox "Зарплата с вычетом налога:"&a
nalog=a
End Function
a=InputBox ("Введите вашу зарплату без вычета налога: ","Окно ввода: ")
nalog a 'вызов функции nalog
MsgBox "Зарплата без вычета налога: "&a
ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ
Пример 1
' Имя файла No param.vbs
'Демонстрация использования процедуры без параметров
'Вычисление выражения (120*7-(10+557))/12
Sub primer
MsgBox "(120 * 5 - ( 10 + 557 ) ) : 12 = "&((120*5-(10+557))/12),_
,"Вычисленное значение выражения: "
End Sub
primer
Пример 2
' Имя файла Yes param.vbs
'Вывести на экран значение пяти введённых переменных, а также их 'удвоенную величину
option explicit
dim a, i
Sub print(x)
MsgBox i&"-е "&"Введённое число: "&x&", удвоенное число: "&_
(2*x),vbInformation,"Результат:"
End Sub
For i=1 to 5
a=InputBox ("Введите число: ","Окно ввода числа: ")
print a
Next
Пример 3
' Имя файла ByVal_sub.vbs
'Вывести на экран информацию о зарплате сотрудника с вычетом
'налога и без вычета, используя в программе процедуру
option explicit
dim a
Sub nalog(ByVal a)
a=a-(13*a)/100
MsgBox "Зарплата с вычетом налога: "&a
End Sub
a=InputBox ("Введите вашу зарплату без вычета налога: ","Окно ввода: ")
nalog a
MsgBox "Зарплата без вычета налога: "&a
Пример 4
' Имя файла rasstoyanie.vbs
'Совместное использование функции и процедуры
'Определение расстояния, пройденного физическим телом
option explicit
dim v,t,a
'--------------
Function Rasst(x,y,z)
rasst=x*y+z*y*y/2
end function
'--------------
Sub Input(param,x)
x=inputbox("Введите значение параметра "¶m,_
"Окно ввода "¶m,"0")
end sub
'--------------
msgbox "Задача:"&vbcrlf&_
"Определить расстояние пройденное физическим телом"&VbCrLf&_
"за время t, со скоростью v, с ускорением a", vbInformation
input "скорости",v
input "времени",t
input "ускорениия",a
Msgbox "Тело прошло расстояние "&rasst(v,t,a), vbExclamation
Пример 5
' Имя файла style.vbs
'Демонстрация стиля программирования, который называется
'процедурным программированием
option explicit
dim a, b
Sub input(x)
'ввод значения переменной
x=InputBox ("Введите переменную: ","Окно ввода переменной: ")
End Sub
Sub change(x, y)
Dim z
'обмен значениями двух переменных a и b
z=x
x=y
y=z
End Sub
Sub output (x, y)
'вывод значений переменных
MsgBox "Переменные после обмена значениями: a = "&x&", b = "&_
y,vbInformation,"Результат:"
End Sub
'Процедурный стиль программирования состоит
'просто в последовательном вызове процедур
input a
input b
change a, b
output a, b
см. также примеры в каталоге лаб.раб 4