Использование процедур и функций

В 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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.013 сек.