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

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

Вызов подпрограммы типа Function

Чтобы вызвать TotalTax в процедуре события, используйте оператор, аналогичный следующему:

lblTaxes.Text = TotalTax(500)

Этот оператор вычисляет общую сумму налогов, взимаемых с $500, а затем присваивает результат свойству Text объекта lblTaxes. Функция TotalTax также может принимать переменную в качестве аргумента, как показано в следующих операторах:

Dim TotalCost, SalesPrice As Single
SalesPrice = 500
TotalCost = SalesPrice + TotalTax(SalesPrice)

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

Использование процедуры типа Function для выполнения вычислений

В следующем упражнении вы добавите в программу "Семерка" функцию, которая будет вычислять долю выигрышей в игре, т.е. процентное выражение игр, в которых появляется хотя бы одна семерка. Для этого требуется добавить в стандартный модуль функцию с именем HitRate и открытую переменную Spins. Затем вызывать функцию HitRate каждый раз при щелчке на кнопке Крутить. Результаты будут отображаться в новой метке на форме, которую вы создадите.

Функция для вычисления соотношения выигрышей и проигрышей
  1. Отобразите форму программы "Семерка". Появится интерфейс пользователя нашего игрового автомата.
  2. Создайте с помощью элемента управления Label новую метку под меткой Wins. Установите для этой метки следующие свойства:

    Объект Свойство Установка
    Label5 Font Arial, Bold Italic (Жирный курсив), 12-point (12 пунктов)
    ForeColor Red (на закладке Custom)
    Name lblRate
    Text "0.0%"
    TextAlign MiddleCenter

    Ваша формы должна выглядеть примерно так:


  3. Щелкните в Обозревателе решений на модуле Module1.vb, а затем на кнопке View Code (Просмотреть код). В Редакторе кода появится стандартный модуль Module1.
  4. После оператора Public Wins As Short введите следующее объявление открытой переменной:

    Public Spins As Short

    Теперь стандартный модуль включает две открытые переменные ( Wins и Spins ), которые будут доступны всем процедурам проекта. Spins будет использоваться как счетчик для хранения числа сыгранных вами игр.

  5. Добавьте в модуль пустую строку, а затем введите следующее объявление функции:

    Function HitRate(ByVal Hits As Short, ByVal Tries As Short) As String
    	Dim Percent As Single
    	Percent = Hits / Tries
    	Return Format(Percent, "0.0%")
    End Function

    После того, как вы введете первую строку кода функции, Visual Basic автоматически добавит оператор End Function. После ввода остальной части кода функции ваш экран должен стать идентичным следующему.


    Функция HitRate определяет процентное соотношение выигрышей, поделив аргумент Hits на аргумент Tries, а затем форматирует представление результата с помощью функции Format. Функция HitRate объявлена как строковая, так как функция Format возвращает строковое значение. Аргументы Hits и Tries - это места хранения двух коротких целых переменных, которые передаются в функцию при ее вызове. Функция HitRate является функцией общего назначения и может быть использована с любыми целыми числами или переменными, а не только с Wins и Spins.

  6. Снова отобразите форму, а затем сделайте двойной щелчок мышью на кнопке Крутить формы Счастливая семерка, чтобы вывести на экран процедуру события Button1_Click.
  7. Под четвертой строкой процедуры события ( Label3.Text = CStr(Int(Rnd() * 10)) ) введите следующий оператор:

    Spins = Spins + 1

    Этот оператор увеличивает переменную Spins каждый раз, когда пользователь щелкает на кнопке Крутить, и в поля вывода чисел выводятся новые значения.

  8. Прокрутите окно Редактора кода вниз, а затем в качестве последней строки процедуры события Button1_Click (между операторами End If и End Sub ) введите следующий оператор:

    lblRate.Text = HitRate(Wins, Spins)

    При вводе функции HitRate обратите внимание, как Visual Studio автоматически отображает имена и типы аргументов только что созданной вами функции HitRate (это очень удобная подсказка).

    Целью этого оператора является вызов функции HitRate с использованием переменных Wins и Spins в качестве ее аргументов. Возвращаемый результат - это процентное соотношение в строковом формате, и это значение при каждой игре присваивается свойству Text метки lblRate формы. Это все, что касается данной задачи!

  9. Чтобы сохранить файлы вашего проекта, щелкните на кнопке Save All (Сохранить все).

Теперь запустите эту программу.

Жанболат Шаймерден
Жанболат Шаймерден

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

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов