harleysoft |
27-11-2010 20:44 1552957 |
Помогите с задачей на VBA
Всем доброго времени суток!
Т.к. я не бум-бум в VBA поэтому решил сюда написать.
Нужно написать программу нахождения суммы большего и меньшего из трех чисел.
Собственно кто поможет решить проблему?
|
Код:
Function ВернутьБольшееИлиМеньшееИзТрёхЧисел(ByVal ПервоеЧисло As Double, ByVal ВтороеЧисло As Double, ByVal ТретьеЧисло As Double, Optional ByVal ВернутьБольшее As Boolean = True) As Double
Dim Result As Double
Dim arr() As Double
Dim i As Byte
ReDim arr(2)
arr(0) = ПервоеЧисло
arr(1) = ВтороеЧисло
arr(2) = ТретьеЧисло
Result = arr(0)
For i = 1 To UBound(arr)
If ВернутьБольшее Then
If arr(i) > arr(i - 1) Then
Result = arr(i)
End If
Else
If arr(i) < arr(i - 1) Then
Result = arr(i)
End If
End If
Next i
ВернутьБольшееИлиМеньшееИзТрёхЧисел = Result
End Function
Sub ТестНаписаннойФункции()
Dim a As Double
Dim b As Double
Dim c As Double
'Инициализируем генератор произвольных чисел (только для теста вышеприведенной функции)
Randomize
Debug.Print "Тест начат"
'Присвоим стартовые «рандомные» значения трём переменным
a = Rnd() * 100
b = Rnd() * 100
c = Rnd() * 100
Debug.Print "Большее из чисел " & a & ", " & b & ", " & c
'Вызовем функцию «ВернутьБольшееИлиМеньшееИзТрёхЧисел» без 4 параметра (он опциональный, без него она возвращает БОЛЬШее значение из трёх указанных)
Debug.Print ВернутьБольшееИлиМеньшееИзТрёхЧисел(a, b, c)
Debug.Print "Меньшее из чисел " & a & ", " & b & ", " & c
'Вызовем функцию «ВернутьБольшееИлиМеньшееИзТрёхЧисел» указав 4-ым параметром значение False, чтобы она вернула наименьшее значение из трёх указанных
Debug.Print ВернутьБольшееИлиМеньшееИзТрёхЧисел(a, b, c, False)
Debug.Print "Тест завершен"
End Sub
функция «ВернутьБольшееИлиМеньшееИзТрёхЧисел» и есть решение Вашей проблемы
первые 3 параметра числа целые или с плавающей точкой,
а четвертый параметр указывает искать большее (по-умолчанию) или меньшее (при указании четвертым параметром значения False) значение из первых трёх параметров
|
harleysoft |
09-12-2010 14:48 1561876 |
KnRSU, Спасибо!
|
Время: 10:04.
© OSzone.net 2001-