Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~02.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.38 Mб
Скачать

Функції

Функції багато в чому схожі на процедури. Існує лише одна принципова відмінність - при виклику вони повертають значення. Функція отримує один або декілька об'єктів даних, званих аргументами, і виконує з ними деякі дії. Їх результат повертається функцією. Можливо, це звучить декілька туманно, але насправді у функціях немає нічого складного. Краще всього розглянути роботу функцій на конкретному прикладі. Давайте напишемо функцію для обчислення кубічного кореня:

1. Створіть новий проект командою File > New Project.

2. Якщо модуль My Libгагу відсутній в проекті, додайте його - для цього слід клацнути правою кнопкою миші у вікні проекту і виконати команду Add > Module з контекстного меню.

3. Коли з'явиться діалогове вікно Add Module, перейдіть на вкладку Existing. Потім знайдіть файл MyLibrary.Bas і натисніть кнопку Open, щоб включити модуль в проект.

4. Двічі клацніть на файлі MyLibrary.Bas у вікні проекту. Відкривається вікно програми. Вставте наступний фрагмент в секцію(Declarations):

Public Function CubeRoot

Visual Basic автоматично створює шаблон наступного виду:

Public Function CubeRoot()

End Function

5. Вставте в шаблон наступний фрагмент (мал. 4.2):

Public Function CubeRoot(x as Double) As Double

If x = 0 Then

CubeRoot = 0

Exit Function

End If

CubeRoot = 10 ^ ((Log(Abs(x)) / Log(10)) / 3)

If x < 0 Then

CubeRoot = - CubeRoot

End If

End Function

Мал. 4.2. Вікно програми з функцією для обчислення кубічного кореня.

6. Виконайте команду File > Save MyLibrary.

Перш ніж розглядати цей приклад, давайте коротко розглянемо приведений вище код. Функція отримує аргумент х і намагається вичислити його кубічний корінь. Тип значення, який повертається функцією (у нашому прикладі Double - числовой тип, який може працювати з дуже великими і дуже малими, а також дробовими числами), вказується в заголовку функції після ключового слова As. Текст функції закінчується командою End Function, а не End Sub. Зверніть увагу на три рядки, в яких привласнюється значення змінної CubeRoot. Значення функції повертається у вигляді змінної, ім'я якої співпадає з ім'ям функції (у нашому прикладі - CubeRoot). Якби наша функція називалася TimesTwo(), то і значення поверталося б в змінній TimesTwo (наприклад, TimesTwo = х*2).

Перш ніж приступати до обробки аргументу, бажано перевірити отримані дані. Спочатку ми перевіряємо, чи рівний аргумент 0 - як відомо, кубічний корінь з 0 дорівнює 0, тому ми можемо відразу присвоїти змінній CubeRoot, яка повертає значення та вийти із функції, не виконуючи подальших обчислень. Для виходу з функції застосовується команда Exit Function.

Математичне обґрунтування нас зараз не цікавить. Команда CubeRoot = 10 ^ ((Log(Abs(x)) / Log(10)) / 3) повертає кубічний корінь аргументу х.

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

CubeRoot = - CubeRoot

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

7. Двічі клацніть на формі Form1 у вікні проекту - форма з'являється у вікні конструктора.

8. Задайте властивості Caption значення Робота з програмною бібліотекою.

9. Створіть на формі кнопку. Задайте її властивості Name значення cmdCubeRoot, а властивості Caption - значення Кубічний корінь.

10. Двічі клацніть на кнопці cmdCubeRoot - відкривається вікно програми з процедурою події cmdCubeRoot_Click().

11. Вставте в процедуру наступний фрагмент:

Dim Y As Double

Y = CubeRoot(27)

Print Y

Зразковий вид вікна програми показаний на мал. 4.3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]