Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Передача параметров






Чтобы процедура работала с различными исходными данными, ей можно передавать параметры, которые также иногда называются аргументами. Передача параметров функциям имеет очевидный смысл: вы хотите, чтобы функция выполняла одни и те же действия с разными данными. Сказанное относится и к процедурам, за одним исключением: процедура не возвращает значения. Одну и ту же процедуру можно вызывать снова и снова, что становится первым шагом на пути к повторному использованию кода.

Чтобы лучше понять, как работает этот механизм, представьте себе соковыжималку. Все, что она умеет делать, — выжимать сок из фруктов и овощей. Положите в нее морковку, и вы получите морковный сок. Положите апельсин — и получит-

ся апельсиновый сок. Замените соковыжималку некоторой функцией, «положите» в нее некоторый параметр, и вы получите соответствующий тип сока, то есть результат.

Любую процедуру или функцию следует свести к выполнению конкретной задачи. Эта задача может состоять из нескольких подзадач, но все они работают вместе и дают общий результат. Например, следующая процедура изменяет свойство формы Caption:

1. Создайте новый проект типа Standard EXE.

2. Поместите кнопку на форму Form"). Задайте ее свойству Name значение cmdCaption, а свойству Caption — значение Изменить заголовок.

 

Private Sub AlterCaption(X As String)

Caption = X

End Sub

 

Примерный вид окна программы показан на следующем рисунке.

 

Рис. 4.7. Окно приложения-примера

 

Процедуре передается всего один аргумент — X. Его имя не имеет никакого значения, однако процедура будет правильно работать лишь в том случае, если ей будет передано строковое (текстовое) значение. Например, вы можете создать строковую переменную с именем MyTitleText и присвоить ей значение Новый заголовок, после чего передать MyTitleText в качестве параметра процедуры. Другими словами, процедуре можно передать имя строковой переменной или обычный текст, заключенный в кавычки (строковую константу).

Чтобы вызвать процедуру (скажем, из процедуры события Click кнопки), попробуйте ввести следующий фрагмент (см. окно программы на следующем рисунке):

 

 

Текст после имени процедуры образует строковую константу — обратите внимание на окружающие кавычки. Строковая константа и является параметром, который ставится в соответствие аргументу X. Передача строковой переменной может быть продемонстрирована на следующем примере (см. окно программы далее):

 

 

Как видите, на этот раз кавычки не используются. Также следует обратить внимание на отсутствие скобок вокруг параметра (хотя аргумент, которому он передается, заключен в скобки). Ваша форма должна быть похожа на рис. 4.8.

 

 

Рис. 4.8. Изменение свойства Caption в программе

 

Параметры, передаваемые функциям, должны заключаться в скобки. Параметры процедур в скобки не заключаются. Кроме того, если передается несколько параметров, их следует разделять запятыми. Например, у вас имеется процедура CreateUser, которая получает два параметра — имя пользователя и пароль. Ее вызов в программе может выглядеть следующим образом:

 

CreateUser " Джон Доу", " 123456"

 

Или

 

Dim UserlD As String

Dim Password As String

 

UserlD = " Джон Доу"

Password = " 123456"

 

CreateUser UserID, Password

 

 

Как видите, код обоих примеров выглядит очень просто. В первом случае нужные значения параметров передаются процедуре напрямую — это называется «жесткое кодирование». Хотя этот вариант возможен, при создании нескольких пользователей в программе появится много лишних строк. Альтернативный вариант — использовать переменные, присвоить им нужные значения и один раз вызвать процедуру (как это сделано во втором примере).

Кроме того, можно создать специальную функцию, которая будет проверять комбинацию имени и пароля пользователя и возвращать значение, определяющее правильность данных. Например, это может выглядеть так:

 

Dim UserlD As String

Dim Password As String

 

UserlD = " Джон Доу"

Password = " 123456"

 

If ValidUser(UserID, Password) = True Then

‘Сделать что-то полезное

Else

‘Вывести сообщение об ошибке

End If

 

Обратите внимание на то, что параметры заключены в скобку и разделены запятыми. Количество параметров определяется при объявлении функции. Одни функции вызываются с несколькими параметрами, другие — вообще без параметров.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.