Использование процедур и функций
В VBScript можно использовать процедуры и функции, аналогично их использованию в Visual Basic.
Можно выделить повторяющиеся фрагменты программы и сделать из них функциональные блоки . Эти блоки можно использовать без их повторного написания и отладки, собирая из них требуемую программу. Организовать функциональные блоки в VBScript можно в виде процедур (procedure) и функций (function).Процедура содержит в первой строке ключевое слово Sub и имеет вид
Call имя процедуры ( параметры)
Sub имя процедуры (список аргументов)
операторы
End Sub
Функция содержит в первой строке ключевое слово Function и имеет вид
Function имя функции (список аргументов) операторы
имя функции = выражение
End Function
Список аргументов определяет данные, которые передаются в процедуру и функцию из другой программы (входные аргументы) или наоборот передаются из нее в другую программу (выходные аргументы)
Пример процедуры:
'заголовок процедуры SubDemo с тремя аргументами- Rlen-длина, Rwid-ширина и Area-площадь
Sub SubDemo (Rlen, Rwid, Area)
Area = RLen * Rwid ' расчет площади
End Sub
Пример функции:
' расчет площади и присвоение имени функции вычисленного значения
'заголовок функции FunDemo с двумя аргументами- Rlen-длина и Rwid-ширина
Function FunDemo (RLen, Rwid)
FunDemo = RLen * Rwid
End Function
Обратите внимание, что в процедуре для вычисления и записи результата используется аргумент Area (выходной аргумент). В функции для записи результата используется имя функции FunDemo.
Эта процедура и функция позволяют вычислить площадь прямоугольника по заданным длинам сторон. Создав один раз такую процедуру или функцию, ее можно использовать в различных местах программы для вычислений (удобно - один раз написали и много раз используем).
Для использования процедуры и функции нужно в каком-либо месте программы написать обращение к этой процедуре или функции. Обращение к процедуре или функции производится по-разному:
Обращение к процедуре является отдельным оператором с использованием ключевого слова Call (Вызов).
Обращение к функции является операндом (составной частью) выражения.
Пример фрагмента программы для обращения к процедуре:
Dim A, B, C
A = CSng(InputBox("Введите значение длины прямоугольника"))
B = CSng(InputBox("Введите значение ширины прямоугольника"))
Call SubDemo (A, B, C)
MsgBox "Площадь прямоугольника равна " & C
Пример фрагмента программы для обращения к функции:
Dim A, B, C
A = CSng(InputBox("Введите значение длины прямоугольника"))
B = CSng(InputBox("Введите значение ширины прямоугольника"))
C = FunDemo (A, B) * 2
MsgBox "Удвоенная площадь прямоугольника равна " & C
Обратите внимание, что при обращении к процедуре и функции записываются значения аргументов (при обращении к процедуре - A, B, C; при обращении к функции - A, B). Им с использованием окна ввода InputBox задаются конкретные значения. Имена аргументов при обращении могут быть любыми (могут не совпадать с именами списка аргументов при записи процедуры или функции).
Должны соблюдаться следующие правила:
1. Количество значений аргументов при обращении равно количеству аргументов при записи процедуры или функции (При записи процедуры было 3 аргумента - Rlen, Rwid, Area; при обращении тоже 3 - A, B, C. При записи функции было 2 аргумента - Rlen, Rwid; при обращении тоже 2 - A, B).
2. Соответствие значений аргументов и аргументов определяется их последовательностью в списках (А соответствует Rlen, В - Rwid, С - Area).
В Visual Basic дополнительно необходимо соблюдать следующее правило: тип значений аргументов при обращении к процедуре и функции должен совпадать с типом аргументов при записи процедуры и функции. Так как в Visual Basic Script используется только один тип данных, то это правило можно игнорировать.
Примеры использования процедуры и функции в Visual Basic Script.
Процедура:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>
<body>
<script LANGUAGE="VBScript">
<!--
Option Explicit
Dim A, B, C
A = CSng(InputBox("Введите значение длины прямоугольника"))
B = CSng(InputBox("Введите значение ширины прямоугольника"))
Call SubDemo (A, B, C)
MsgBox "Площадь прямоугольника равна " & C
Sub SubDemo (Rlen, Rwid, Area) 'заголовок процедуры SubDemo с тремя аргументами- Rlen-длина, Rwid-ширина и Area-площадь
Area = RLen * Rwid ' расчет площади
End Sub
-->
</script>
</body>
</html>
Рис. 4.
Рис. 5
Рис.6
Функция:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>
<body>
<script LANGUAGE="VBScript">
<!--
Option Explicit
Dim A, B, C
A = CSng(InputBox("Введите значение длины прямоугольника"))
B = CSng(InputBox("Введите значение ширины прямоугольника"))
C = FunDemo (A, B) * 2
MsgBox "Удвоенная площадь прямоугольника равна " & C
Function FunDemo (RLen, Rwid) 'заголовок функции FunDemo с двумя аргументами- Rlen-длина и Rwid-ширина
FunDemo = RLen * Rwid ' расчет площади и присвоение имени функции вычисленного значения
End Function
-->
</script>
</body>
</html>
Рис. 7.
Рис. 8.
Рис. 9.
Задание 3 для самостоятельного выполнения
Модернизируйте выполненные в задании 2 страницы: для записи арифметического выражения используйте процедуру, для записи логического выражения - функцию.
Покажите работающие страницы преподавателю и сохраните под новыми именами в своей папке.
Дата добавления: 2015-08-11; просмотров: 645;