Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End Function. Private Sub Command1_Click()



Private Sub Command1_Click()

Debug.Print perimetr(10, 4) + perimetr(20, 30) + perimetr(3, 8)

End Sub

Здесь щелчком по кнопке Command1 мы запускаем вычисление суммы периметров трех прямоугольников: 10*4, 20*30 и 3*8. А для того, чтобы узнать, как вычислять perimetr, компьютер заглядывает в определение функции, выделенное мной полужирным шрифтом.

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

· В заголовке функции после скобок с параметрами должен быть указан тип функции (у нас это Long).

· Внутри определения функции ей хотя бы раз должно быть присвоено какое-нибудь значение, как если бы это была не функция, а обычная переменная (у нас этим занимается оператор perimetr=2*(dlina+shirina)).

Обращение к функции также отличается от обращения к процедуре. Если обращение к процедуре - самостоятельный оператор (Portos, Aramis из 10.2, Рисуем_мой_значок 100, 200, vbBlue из 10.5), то обращение к функции - это обычно составная часть выражения (10+Abs(-20), Debug.Print perimetr(10,4) + perimetr(20, 30)).

Рассмотрим другой пример функции:

Задача: Напишите функцию Ответ, которая бы в ответ на вопрос человека "Какое сегодня число?" принимала значение правильной даты, а ответом на любой другой вопрос должно служить "Не знаю".

Вот программа:

Dim q As String

Private Function Ответ(Вопрос As String) As String

If Вопрос = "Какое сегодня число?" Then Ответ = Date Else Ответ = "Не знаю"

End Function

Private Sub Command1_Click()

q = InputBox("Задайте вопрос")

Debug.Print Ответ(q)

End Sub

Здесь щелчком по кнопке Command1 мы вызываем появление на экране окна InputBox с предложением задать вопрос. Введенный нами вопрос запоминается в переменной q. Следующая строка (Debug.Print Ответ(q)) вызывает к жизни нашу функцию. При этом компьютер, выполняя тело функции, вместо параметра Вопрос работает с переменной q, так как именно она была указана в обращении к функции. Получается очень удобно: когда мы пишем функцию, нам не нужно заботиться о том, какие имена переменных будут использованы при обращении к функции, мы просто даем параметру любое пришедшее в голову имя. И наоборот, когда мы пишем обращение к функции, нам не нужно заботиться о том, какие имена имеют параметры в заголовке функции.

Задание 128: Напишите функцию, вычисляющую любое число Фибоначчи. Например, fib(8) - это 8-е число Фибоначчи.

Указание: Если будете использовать массив, то дайте ему имя, отличающееся от имени функции, например, f.





Дата публикования: 2014-12-28; Прочитано: 199 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...