Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.38
Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.38

Для решения этой задачи введем данные, как показано на рис. 10.1.

Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications

Рис. 10.1. Решение задачи о неравномерных платежах

Ссуда введена в ячейке В2 со знаком минус, так как эти деньги у вас забирают в ячейку В8, где вычисляется разность между текущим объемом вклада и размером ссуды, введем формулу =Доход (в7 ; В2 : В5; D2 : D5). В данном случае найденное значение равно 857.91. Так как результат положителен, данная сделка выгодна.

Отметим, что метод Rows возвращает строки диапазона платеж, а свойство Count считает число элементов объекта. Таким образом, njiaTeac.Rows.Count определяет число строк в диапазоне платеж. Если требуется найти число столбцов диапазона платеж, то нужно использовать конструкцию платеж.Со1шпп8.Соип1

10. Операторы цикла

Рассмотрим пример использования оператора Exit For. Функция Тест ([2]) определяет номер первого вхождения элемента Ъ в вектор а. Если среди компонент вектора а нет элементов, равных Ь, функция Тест принимает значение, равное минус единице.

Function Тест(a As Variant, b As Variant) _

As Integer Dim i, n As Integer, t As Boolean n = a.Rows.Count*a.Columns.Count

t = False For i = 1 To n If a(i) = b Then Тест = i t = True Exit For End If Next i

If t = False Then Тест = -1 End Function

Приведем еще один пример использования оператора цикла ([2]). Пусть нужно вычислить

Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications

где х - вектор из п компонент; Ъ и с - матрицы размерности тхт, причем п - 3, т = 2.

Введем в диапазон а1:АЗ компоненты вектора х, а в диапазоны в1:С2 и б1:Е2 - компоненты матриц Ъ и с соответственно. Найдем значение я тремя способами.

Первый способ. На листе модуля вводится следующая функция пользователя:

68 Программирование в среде Visual Basic for Applications

Option Base 1

Function Q(x, b, с As Variant) As Double

Dim si, s2, s3 As Double, i, j, n, m As Integer

n = x.Rows.Count

m = b.Rows.Count

si = 0

For i = I To n

si = si + x(i) Next i s2 = 0

For i = 1 To m For j = 1 To m

s2 = s2 + b(i, j) * с(i, j) Next j Next i s3 = 0

For i = 1 To n

s3 = s3 + x(i) л 2 Next i

Q = (2 * si + s2 74 2)/(l + s3) End Function


⇐ Предыдущая Следующая ⇒
 
 
 
Powered by Exponenta