Студопедия

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

КАТЕГОРИИ:

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






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






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

Щоб краще зрозуміти, як працює цей механізм, уявіть собі соковижималку. Усе, що вона уміє робити, - вичавлювати сік з фруктів і овочів. Покладіть в неї морквину, і ви отримаєте морквяний сік. Покладіть апельсин - і отримаєте апельсиновий сік. Замініть соковижималку деякою функцією, " покладете" в неї деякий параметр, і ви отримаєте відповідний тип соку, тобто, результат.

Будь-яку процедуру або функцію слід звести до виконання конкретного завдання. Це завдання може складатися з декількох підзадач, але усі вони працюють разом і дають загальний результат. Наприклад, наступна процедура змінює властивість форми Caption:

1. Створіть новий проект типу Standard EXE.

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

 

Private Sub AlterCaption(X As String)

Caption = X

End Sub

 

Зразковий вид вікна програми показаний на наступному малюнку.

Процедурі передається всього один аргумент - X. Його ім'я не має ніякого значення, проте процедура буде правильно працювати лише у тому випадку, якщо їй буде передано строкове (текстове) значення. Наприклад, ви можете створити строкову змінну з ім'ям MyTitleText і присвоїти їй значення Новий заголовок, після чого передати MyTitleText як параметра процедури. Іншими словами, процедурі можна передати ім'я строкової змінної або звичайний текст, поміщений в лапки (строкову константу).

Щоб викликати процедуру (скажімо, з процедури події Click кнопки), спробуйте ввести наступний фрагмент (див. вікно програми на наступному малюнку):

 

 

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

 

 

Як бачите, цього разу лапки не використовуються. Також слід звернути увагу на відсутність дужок навколо параметра (хоча аргумент, якому він передається, поміщений в дужки). Ваша форма має бути схожа на мал. 4.8.

Параметри, що передаються функціям, повинні полягати в дужки. Параметри процедур в дужки не полягають. Крім того, якщо передається декілька параметрів, їх слід розділяти комами. Наприклад, у вас є процедура 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

Зверніть увагу на те, що параметри поміщені в дужку і розділені комами. Кількість параметрів визначається при оголошенні функції. Одні функції викликаються з декількома параметрами, інші - взагалі без параметрів.


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

mylektsii.su - Мои Лекции - 2015-2023 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал