8.1.3 Элементы Список, Счетчик, Выключатель
Упражнение 14.
Работу с элементами управления Список ,Счетчик и Выключатель рассмотрим на примере программы для расчетов ипотечных кредитов.
Постановка задачи. Известны: цена приобретаемого имущества; величина первоначального взноса, выраженная в процентах; годовая ставка (в процентах); срок погашения ссуды (в месяцах или в количестве лет).
Требуется разработать программу с диалоговым окном, вычисляющую: величину периодических выплат; общую сумму выплат; общую сумму комиссионных и величину начального взноса.
Метод. Для расчета
величины постоянных периодических выплат в библиотеке Visual Basic есть специальная
функция Pmt (аналог функции
Excel ППЛАТ). Ее
синтаксис следующий:
Pmt(Ставка, Кпер, Нз, [Бз [,
Тип]])
Где Ставка – процентная ставка за период;
Кпер – количество периодов выплат для погашения кредита;
Нз - сумма, которую нужно
погасить;
Бз - баланс наличности, который нужно достичь после последней выплаты;
Тип - признак того, когда производится выплата (0 - в конце периода, 1 – в начале периода платежа).
Разработка формы пользователя
В диалоговом окне должны быть предусмотрены элементы для ввода исходных данных и для вывода результатов. Для ввода данных используем три элемента Поле (для ввода цены имущества, величины первого взноса, и количества периодов выплаты). Для удобства установки количества периодов выплаты поместим в форму элемент Счетчик. Для указания типа периодов (месяцы или годы) используем два элемента Переключатель. Для указания, когда производится платеж (в начале периода или в конце) используем элемент Выключатель. Для ввода годовой процентной ставки применим элемент Список. Для вывода рассчитанных величин используем элементы Надпись. Для управления расчетом поместим элемент Кнопка. Вторую кнопку используем для выхода из программы. После размещения в форме всех элементов управления и установки свойств Caption для элементов управления и самой формы она будет выглядеть примерно так, как изображено на рис.8.3.
Рис. 8.3. Форма пользователя для расчета ипотеки
Для определения свойств элементов управления и обрабатываемых событий составим таблицу.
Таблица 8.3
Элемент |
Присваеваемое имя |
Значение
свойства |
Обрабатываемое
событие | |
UserForm |
Ipoteca |
Caption –Расчет по ипотечному кредиту |
Initialize: 1. Установка границ элемента Счетчик 2. Определение значений для элемента Список 3. Удаление текста из надписей, в которые выводится результат. |
|
TextBox1 |
TextBox1 |
|
Change: 1.
Записывает свое значение в элемент Счетчик |
|
ToggleButton1 |
ToggleButton1 |
ControlTipText – “Щелкните, чтобы
переключить” |
Click: 2.
Устанавливает значение признака (1 –если платеж делается в
начале периода и 0 –если в конце) |
|
SpinButton1 |
SpinButton1 |
|
Change: 3. Записывает свое значение в элемент TextBox1 |
|
CommandButton1 |
CommandButton1 |
|
Click: Подготовка переменных и выполнение расчетов |
|
CommandButton2 |
CommandButton2 |
|
Click: Завершает работу программы |
|
ListBox1 |
ListBox1 |
ControlTipText – “Выберите из списка
величину ставки” |
|
|
Далее выполните следующие действия:
1.
Для процедуры обработки события Initialize Формы запишите следующий код
программы:
Private Sub
UserForm_Initialize()
‘Назначение значений элементу Список
ListBox1.List = Array(3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15)
‘Установка минимального и максимального значения счетчику
SpinButton1.Min = 0
SpinButton1.Max = 1000
OptionButton1.Value =
True
Label1.Caption =
"Месяцев"
ToggleButton1.Caption = "В начале
периода"
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Label11.Caption = ""
End Sub
2.
Для
процедуры обработки события Change элемнта TextBox1 запишите следующий код:
Private Sub
TextBox1_Change()
If TextBox1.Text = "" Then Exit
Sub
SpinButton1.Value =
CInt(TextBox1.Text)
End Sub
Private Sub SpinButton1_Change()
TextBox1.Value = SpinButton1.Value
End Sub
4.
Для
процедуры обработки события Click элемента Кнопка запишите код:
Private Sub
CommandButton1_Click()
Dim Ставка As Double
Dim Кпер As Integer
Dim Тип As Byte
Dim Нз As Double
Нз = TextBox2.Value - TextBox2.Value *
TextBox3.Value / 100
Label9.Caption = Нз
Ставка = ListBox1.Value
Ставка = Ставка / 100
If OptionButton1.Value = True
Then
Ставка = Ставка / 12
End If
Кпер = TextBox1.Value
If ToggleButton1.Value = True Then Тип = 1 Else
Тип = 0
Label7.Caption = Int(Pmt(Ставка, Кпер, -Нз, ,
Тип))
Label8.Caption = Label7.Caption *
Кпер
Label11.Caption = Label8.Caption -
Label9.Caption
End Sub
5.
Для процедуры обработки события Click другого элемента Кнопка запишите
код:
Private Sub
CommandButton2_Click()
End
End Sub
6.
На рабочем листе Лист1 поместите кнопку формы и назначьте
для нее макрос для обработки события Щелкнуть. Запишите код:
Sub Кнопка1_Щелкнуть()
‘ Показать форму
Ipoteca.Show
End Sub
7.
Перейдите
на рабочий лист Лист1 и щелкните на размещенной в нем форме. На экране появится
созданная форма (рис.8.4).
8.
Введите
данные для расчета и проверьте, правильно ли выполняются вычисления. В случае
необходимости отладьте программу.
Рис.8.4. Вид диалогового окна с результатами
расчета
Задание для
самостоятельной работы
Разработайте программу с диалоговым окном
для расчета величины постоянных периодических выплат при погашении кредита.
Исходными данными для расчета являются:
·
Величина кредита;
·
Количество выплат за год;
·
Срок
кредита (в количестве годов);
·
Годовая процентная ставка.
В программе предусмотрите проверку корректности
вводимых данных и выдачу сообщения пользователю в случае некорректных
данных.
Предыдущая Следующая В содержание темы