В языке Visual Basic есть больше десяти встроенных финансово-математических функций. Рассмотрим, например, использование трех функций: Pmt, PV, Rate.
Функция Pmt(rate,nper,pv) возвращает в банк величину периодического взноса, который должен выплачивать клиент, чтобы в определенный срок вернуть банку взятые у него деньги (кредит). В функции:
rate - банковская процентная ставка. Если клиент выплачивает взнос ежемесячно, а банк берет 10 % годовых, то значение rate равно 0,01;
nper - общее число периодов выплат. Если кредит взят на два года, то значение rate равно 24;
pv - величина кредита, т. е. сумма, которую клиент взял в банке.
Функция PV(rate,nper,pmt) возвращает величину приведенной стоимости (кредита) при заданной величине периодической выплаты pmt.
Функция Rate(nper,pmt,pv) возвращает величину банковской процентной ставки, относящейся к периоду выплаты.
Пример Windows-приложения
На рис. 34 приведен пример программы расчета выплаты с использованием финансовой функции -Pmt(r, n, v).
Рис. 34
Программный код приложения:
Private Sub Command1_Click() 'Выплата
г = Val(Text1.Text)
n = Val(Text2.Text)
v = Val(Text3.Text)
r = r/1200
p = -Pmt(r, n, v)
Text4.Text = Str(p)
End Sub
Private Sub Command2_Click() 'Очистка
Textl.Text =""
Text2.Text =""
Text3.Text =""
Text4.Text =""
End Sub
Private Sub Command3_Click() 'Кнопка "ВЫХОД"
End
End Sub
Упражнение 5
• Сделать приложение по рис. 34.
• Запустить приложение, проверить работу.
• Используя функции обработки строк, форму и код приложения (см. рис. 32), дополнить его кнопкой и процедурой, позволяющей подсчитывать число символов в фамилии, имени, отчестве и выводить в первое отдельное поле первые буквы (инициалы), а во второе отдельное поле - фамилию, имя, отчество в виде одной строки, используя конкатенацию. Примерный вид дополнения формы изображен на рис. 35.
Рис. 35
• По аналогии с приложением на рис. 34 сделать программу с использованием финансовых функций PV(rate,nper,pmt) или Rate(nper,pmt,pv).
Задания для самостоятельной работы
1. Подсчитать, сколько раз каждый символ русского алфавита встречается в заданной строке. Прописные и строчные символы считать одинаковыми.
2. Для заданной строки символов строчные буквы латинского алфавита преобразовать в прописные, а прописные — в строчные.
3. Вывести на экран заданную строку символов в обратном порядке.
4. Для заданного предложения вывести каждое слово в отдельную ячейку. Подсчитать количество слов в предложении.
5. Удалить из произвольного текстового выражения все пробелы. Подсчитать количество пробелов.
6. Для заданных фамилии, имени и отчества студента вывести на экран только фамилию и инициалы.
7. Написать заданное слово вразрядку (буквы отделены друг от друга пробелом). Определить количество букв в слове.
8. Ввести с клавиатуры 2 строки: фамилия, имя, отчество и номер группы. Получить строку вида: ФИО — студент группы 101ххх. Определить длину полученной строки.
9. Ввести с клавиатуры 2 строки. Определить, входит ли вторая строка в состав первой. Если да, то с какой позиции.
10. Преобразовать заданное число в строку. Сформировать строку вида: ххх рублей. Определить длину полученной строки.
11. Определить, какая из двух заданных строк длиннее. Результаты вывести в виде: первая строка (текст) длиннее второй (текст). Определить длину результирующей строки.
12. Подсчитать количество гласных и согласных букв в заданном слове.
Лабораторная работа №6
«Программирование ветвлений»
Цель работы. Ознакомиться с условным оператором IF, оператором перехода Select Case.
Условные выражения
При решении большинства задач часто приходится выбирать, по какому из нескольких путей нужно идти к решению. Для реализации условия выбора в языке существует вид выражений - условные выражения.
Простое условие - это два выражения, между которыми помещается знак сравнения. Выражениями могут выступать числа, числовые переменные, функции, арифметические выражения, строки. Операции сравнения и их знаки приведены в таблице:
Операция | Описание операции |
> | Больше чем |
>= < | Больше или равно |
Меньше чем | |
<= | Меньше или равно |
= | Равно |
< > | Не равно |
Простое условие, в зависимости от того, выполняется оно или нет, имеет значение True или False - Истина или Ложь. Примеры простых условий и их значений приведены в таблице.
2.9990<2.9991 | имеет значение True | |
3.14<=3.14 | имеет значение True | |
-Y^2>Abs(Y) | имеет значение False | |
"abc"="abc" | имеет значение True | |
"-abc"="abc" | имеет значение False |
Сложное условие - это последовательность простых условий или других выражений, заключенных в круглые скобки, которые соединены между собой знаками логических операций: AND - логического умножения, OR - логического сложения, NOT - логического отрицания. Каждое условное выражение вычисляется, а результатом является одно из двух значений: True или False - Истина или Ложь.
Правила вычисления значений логических выражений нужно знать так же, как таблицу умножения.
А | В | A AND В |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
А | В | A OR В |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
A | NOT A |
True False | False True |
Примеры сложных условий и их значений.
(X"2>0)OR(X^2=0) имеет значение True (Y^2>=0)AND(Abs(Z)>=0)3.14<=3.14 имеет значение True NOT(Len("abcd")>0) имеет значение False |
Условный оператор IF
Простые и сложные условия являются элементами условного оператора, позволяющего в программном коде выполнять ветвления. Условный оператор имеет две формы: однострочную и многострочную.
Синтаксис однострочной формы:
If Условное Выражение ThenОператор 1 [ElseОператор2] |
Синтаксис многострочной формы:
IfУсловное Выражение Then Группа операторов [ElseГруппа операторов] End If |
Оператор условного перехода используется в приложении, показанном на рис. 36. В этой программе в текстовое окошко Text вносится число от 0 до 24, а в графическом окошке высвечивается фотография утреннего неба, если вводится число из интервала [5... 8], дневного неба, если вводится число из интервала [8... 18], вечернего или ночного неба, если вводится число из интервалов соответственно [18... 21] и [21... 5].
Рис. 36
В проекте использованы объекты: Label, Text, CommandBаtton, PictureBox, Image.
Код проекта:
Private Sub Command1_Click() 'Выбрать ФОТО
If ((Val(Text1.Text) > 5) And (Val(Text1.Text)<=8))
Then Image1.Picture =Picture1(0).Picture
If ((Val(Text1.Text) > 8) And (Val(Text1.Text) <= 18))
Then Image1.Picture = Picture1(1).Picture
If ((Val(Text1.Text) > 18) And (Val(Text1.Text) <= 21))
Then Imagel.Picture=Picture1(2).Picture
If (((Val(Text1.Text) > 21) And (Val(Text1.Text) <= 24))
Or ((Val(Text1.Text) > 0) And (Val(Text1.Text) <= 5)))
Then Image1.Picture = Picture1(3).Picture
End Sub
Private Sub Command2_Click() 'Выход
End
End Sub
Оператор перехода CASE
Для альтернативы, или выбора варианта, существует оператор перехода Select Case. Его синтаксис:
Select CaseПеременная СаsеЗначение1 Если Переменная=3начение1, то выполняется эта группа операторов Case СаsеЗначение2 Если Переменная=3начение2, то выполняется эта группа операторов Case СаsеЗначение3 Если Переменная=Значение3, то выполняется эта группа операторов [Case Else Если Переменная не равна ни одному из употребляемых значений] End Select |
Пример использования оператора перехода Select Case и двух новых инструментов в наборе Тоllbох - OptionButton (Кнопка-переключатель) и Frame (Рамка) (рис. 37) показан в приложении, форма которого представлена на рис. 38.
Рис. 37
Рис. 38
В приложении в зависимости от выбора кнопки переключателя выводится соответствующий рисунок.
Код программы:
Dim АА As Byte 'описание глобальной переменной
Private Sub F_Case() 'функция выбора варианта рисунка по значению АА Select Case АА
Case 1
Image1.Picture = Picture1(0).Picture
Case 2
Image1.Picture = Picture1(1). Picture
Case3
Image1.Picture = Picture1(2).Picture
Case 4
Image1.Picture = Picture1(3). Picture
End Select
End Sub
Private Sub Option_1 Click()
AA= 1
F_Case
End Sub
Private Sub Option2_Click()
AA = 2
F_Case
End Sub
Private Sub Option3_Click()
AA = 3
F_Case
End Sub
Private Sub Option4_Click()
AA = 4
F_Case
End Sub
Private Sub Command5_Click() 'кнопка "Выход"
End
End Sub
Оператор перехода GoTo
В Visual Basic есть еще один, хотя и не очень популярный, оператор перехода GoTo, который называется оператором безусловного перехода. Его синтаксис:
Метка 11: IF a>b then GoToМетка22 GoTo Метка11 … Метка22: |
Упражнение 6
• Сделать приложение по рис. 36.
• Запустить приложение, проверить работу.
• Используя в качестве основы форму и код приложения, приведенного на рис. 36, сделать приложение по рис. 38.