| Уроки, Туториалы, Мануалы со всего света! https://lessons.forumenko.com/ |
|
| Visual Basic - Процедуры и функции https://lessons.forumenko.com/topic54.html |
Страница 1 из 1 |
| Автор: | Turbo-Dizel [ 19-12, 03:29 ] |
| Заголовок сообщения: | Visual Basic - Процедуры и функции |
Процедуры и функции Выражения и операторы - это сырьё для блоков, из которых строится программы, где в роли блоков выступают процедуры и функции. Процедуры и функции В Visual Basic, как и во многих других языках программирования, большинство программ создается из блоков - процедур и функций. Весь программный код находится как бы внутри этих процедур. Если возникает необходимость в решении какой-либо задачи в любом месте программы, то вызывается процедура. В Visual Basic нельзя ввести код между процедурами. Код всегда должен находиться внутри процедуры. Давайте разберёмся с понятиями, и определим, что будет называться процедурой, а что функцией. Процедуры: Процедура - это некий блок кода, который будет выполняться всякий раз при вызове этой процедуры. Каждая процедура начинается зарезервированным словом Sub и заканчивается End. Вот общий синтаксис процедуры: Код: [Private | Public | Friend] [Static] Sub name [(arglist)] [здесь некий код] [Exit Sub] [здесь тоже может быть некий код] End Sub Всё, что заключено в квадратные скобки - является необязательным. Оператор Exit Sub позволяет досрочно выйти из процедуры. Иногда это очень удобно. Слова Public, Private имеют то же значение, что и при объявлении переменных. arglist имеет следующий вид: Код: [Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue] Рассмотрим пример процедуры, которая будет выводить на экран сообщение "Hello World!": Код: Private Sub ShowMessage()  MsgBox "Hello World!" End Sub Что можно сказать об этой процедуре? Процедура имеет тип Private, т.е. доступна будет только из кода именно той формы (модуля), где она объявлена (вспомните типы объявления переменных). Данная процедура не содержит параметров, о чём нам говорят пустые круглые скобки.. Назначение - вывести сообщение Hello World на экран. MsgBox - это встроенная функция Visual Basic, которая выводит на экран окно с сообщением, заданным в качестве параметра. Остальные параметры необязательны (их всего 5). Подробнее о функции MsgBox можно прочитать здесь. Как вызвать процедуру? Для этого достаточно написать имя процедуры: Код: ShowMessage А можно и так: Код: Call ShowMessage' более наглядные вариант Оба этих варианта абсолютно эквивалентны. Но для вызова процедур всё-таки лучше использовать второй вариант. Теперь давайте изменим эту процедуру и добавим к ней параметр, значение которого будет выводиться функцией MsgBox (вместо Hello World): Код: Private Sub ShowMessage(message As String)  MsgBox message End Sub Теперь при вызове процедуры необходимо указать параметр: Код: Call ShowMessage ("Наша первая процедура") Результатом выполнения такой процедуры будет вывод на экран сообщения: "Наша первая процедура". Скобки, окружаемые параметр обязательны, если перед именем процедуры стоит оператор Call. Если Call отсутствует, то скобки ставить не нужно. Давайте рассмотрим подробнее что же происходит при вызове нашей процедуры. Встретив строку с вызовом нашей процедуры Visual Basic проверяет, нужны ли данной процедуре параметры. Убедившись в том, что нужны (параметр message) он передает в процедуру строку "Наша первая процедура". Т.е. фактически в процедуре происходит присвоение переменной message значения "Наша первая процедура". Ну а далее происходит вызов функции MsgBox и вывод сообщения на экран. Если количество параметров, передаваемых при вызове процедуры не совпадёт с количеством параметров в объявлении процедуры - Visual Basic сгенерирует ошибку. Итак, с процедурами разобрались. Настало время разобраться с функциями. Функции: Функция - это некий блок кода, который будет возвращать значение. Этим, и только этим функции отличаются от процедур. Общий синтаксис функции: Код: [Public | Private | Friend] [Static] Function имяфункции _ [(arglist)] [As type] [здесь некий код] [имяфункции = выражение] [Exit Function] [здесь тоже может быть некий код] [имяфункции = выражение] End Function Что значит "будет возвращать значение"? Рассмотрим функцию из урока 8: Код: Public Function MyFunc() As Byte  MyFunc = 234 End Function c = MyFunc() Когда мы говорили о выражениях, мы говорили, что MyFunc - это выражение, со значением 234. Т.е. здесь, функция MyFunc возвращает значение 234 (байт). Чтобы задать это значение, необходимо присвоить имени функции выражение. В нашем случае в качестве выражения выступает число 234. Давайте рассмотрим более практичный пример. Напишем функцию для вычисления квадрата числа. У функции будет 1 параметр типа Integer - число для возведения в квадрат. Функция будет возвращать значение квадрата параметра. Тип возвращаемого значения - Long: Код: Public Function Square(number As Long) As Long  Square = number * number End Function Вызвать функцию можно так: Код: b = Square (5) А можно так, используя нашу процедуру для вывода сообщения на экран: Код: ShowMessage Square (5)
А можно и так: Square 5 В последнем случае возвращённое функций значение уходит в никуда, но сама функция благополучно выполнится. Обратите внимание на отсутствие скобок в последнем вызове. Скобки здесь не обязательны, в отличие от двух предыдущих вызовов. Там скобки обязательны. (ну это и понятно, как бы Visual Basic без скобок догадался, где параметры для ShowMessage, а где для Square). © programmers.kz |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|