Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3975 / 230 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 11:

Использование модулей и процедур

Запуск программы "Семерка"
  1. Чтобы запустить измененную программу "Семерка", щелкните на кнопке Start (Начать).

    Примечание. Готовая программа Final Track Wins расположена в папке c:\vbnet03sbs\Гл.10\final track wins.
  2. Щелкните 10 раз на кнопке Крутить. После того, как вы щелкнете на кнопке Крутить пять раз, число побед останется равным 100.0%. Вы каждый раз выигрываете. Однако если вы продолжите щелкать, то число побед изменится на 83.3%, 71.4%, 75.0% (еще одна победа), 66.7% и 60.0% (всего 6 раз из 10). После 10 игр ваш экран будет выглядеть так, как показано на рисунке ниже.

    Если вы продолжите щелкать, то заметите, что количество выигрышей упадет до 28%. Функция HitRate показывает, что в начале игры вы были слишком удачливы, но затем вам пришлось столкнуться с реальностью.

  3. Когда вы закончите работать с программой, щелкните на кнопке Закрыть. Программа остановится, и вернется среда разработки.


    Совет. Чтобы программа выдавала случайные наборы чисел каждый раз, когда вы ее запускаете, поместите в процедуре события Form_Load оператор Randomize. За дополнительными инструкциями обратитесь к разделу "Следующий шаг: внесение изменений в программу" "Ваша первая программа" .

Подпрограмма типа Sub

Подпрограмма типа Sub похожа на подпрограмму типа Function, за исключением того, что процедура Sub не возвращает значения, связанного с ее именем. Процедуры Sub обычно используются для получения ввода от пользователя, отображения или печати информации, или манипуляций с несколькими свойствами, связанными с каким-либо условием. Процедуры Sub также используются для обработки и возврата одновременно нескольких переменных. Как и функции, процедуры Sub могут с помощью списка аргументов возвращать в вызывающую программу одно или несколько значений.

Синтаксис процедуры Sub

Базовый синтаксис процедуры Sub имеет вид:

Sub название_процедуры ([аргументы])
	операторы_процедуры
End Sub

Важными являются следующие синтаксические элементы:

  • название_процедуры - это имя создаваемой вами процедуры Sub ;
  • аргументы - это необязательный список аргументов (разделенных запятыми, если их больше одного), используемых в процедуре Sub. Каждый аргумент должен быть объявлен с указанием конкретного типа данных. (По умолчанию Visual Studio добавляет к каждому аргументу ключевое слово ByVal, которое указывает на то, что в функцию через данный аргумент передается копия значения, и все изменения значения этого аргумента не будут возвращены в вызывающий код.);
  • операторы_процедуры - это блок операторов, который выполняет работу процедуры.

При вызове процедуры Sub количество и типы аргументов, передаваемых в процедуру, должны совпадать с количеством и типом аргументов, указанных при объявлении процедуры, и вся группа аргументов должна быть заключена в круглые скобки. Если переменные, передаваемые в процедуру Sub, изменяются при ее выполнении, то обновленные переменные не возвращаются, если процедура не объявляет эти аргументы с помощью ключевого слова ByRef. По умолчанию процедуры Sub объявляются в стандартном модуле открытыми, так что они могут вызываться любой процедурой события проекта.

Важно! В Visual Basic .NET все вызовы процедур Sub должны содержать после имени процедуры круглые скобки. Если в процедуру не передается ни одного аргумента, то требуется наличие пустых круглых скобок. Это изменение по сравнению с предыдущими версиями Visual Basic, в которых круглые скобки требовались только тогда, когда в процедуру передавался аргумент по значению. Далее в этой лекции вы узнаете о передаче переменных по ссылке и по значению.

Например, следующая процедура Sub получает строковый аргумент, представляющий имя человека. Если эта процедура Sub объявлена в стандартном модуле, то она может быть вызвана из любой процедуры события программы.

Sub BirthdayGreeting (ByVal Person As String)
	Dim Msg As String
	If Person <> "" Then
		Msg = "С днем рождения " & Person & "!"
	Else
		Msg = "Имя не указано."
	End If
	MsgBox(Msg, , "Наилучшие пожелания")
End Sub

Процедура BirthdayGreeting получает имя приветствуемого человека через аргумент Person - эта строковая переменная передается при вызове процедуры по значению. Если значение Person не пустое (имеет значение, отличное от null ), то указанное в ней имя используется для создания строки сообщения, которое будет отображено с помощью функции MsgBox. Если аргумент равен null, процедура выводит сообщение "Имя не указано".

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?