Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Помогите с задачей на VBA (http://forum.oszone.net/showthread.php?t=192446)

harleysoft 27-11-2010 20:44 1552957

Помогите с задачей на VBA
 
Всем доброго времени суток!
Т.к. я не бум-бум в VBA поэтому решил сюда написать.
Нужно написать программу нахождения суммы большего и меньшего из трех чисел.
Собственно кто поможет решить проблему?

KnRSU 30-11-2010 15:05 1555095

Код:

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.

Время: 10:04.
© OSzone.net 2001-