Использование процедур и функций
В 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 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|