Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 120
Благодарности: 22

Профиль | Цитировать


vivat, наслаждайтесь
Код: Выделить весь код
Function GetCountEvenItems(ByRef An() As Double) As Long
Dim evenCount As Long
Dim i As Long
    evenCount = 0
    For i = 0 To UBound(An)
        If (An(i) / 2 - An(i) \ 2) = 0 Then
            evenCount = evenCount + 1
        End If
    Next i
    GetCountEvenItems = evenCount
End Function

Function MinimumOfSumNearlessItems(ByRef An() As Double) As Double
Dim minSumNearlessItems As Double
Dim i As Long
    minSumNearlessItems = (An(0) + An(1))
    For i = 1 To UBound(An)
        If (An(i - 1) + An(i)) < minSumNearlessItems Then
            minSumNearlessItems = (An(i - 1) + An(i))
        End If
    Next i
    MinimumOfSumNearlessItems = minSumNearlessItems
End Function

Function Maximum(ByRef An() As Double) As Double
Dim maxItem As Double
Dim i As Long
    maxItem = An(0)
    For i = 0 To UBound(An)
        If An(i) > maxItem Then
            maxItem = An(i)
        End If
    Next i
    Maximum = maxItem
End Function

Sub TestStart()
Dim tmp() As Double
Dim n As Long
Dim i As Long
    'Общая инициализация массива An
    Randomize
    n = Val(Rnd() * 100 & "")
    ReDim tmp(n)
    For i = 0 To n
        tmp(i) = Val((Rnd() * 100)) * IIf((Rnd() * 100) > 50, 1, -1)
    Next i
    'Массив в окно Immediate (для проверки правильности)
    For i = 0 To n
        Debug.Print "Элемент: A" & i & " = " & tmp(i)
    Next i
    'Вариант_А
    'Результат в окно Immediate (вызывается по нажатию Ctrl+G)
    Debug.Print "Максимальный элемент массива: " & Maximum(tmp())
    'Вариант_Б
    'Результат в окно Immediate (вызывается по нажатию Ctrl+G)
    Debug.Print "Минимальная сумма соседних элементов массива: " & MinimumOfSumNearlessItems(tmp())
    'Вариант_В
    'Результат в окно Immediate (вызывается по нажатию Ctrl+G)
    Debug.Print "Количество четных элементов в массиве: " & GetCountEvenItems(tmp())
End Sub
Результат одного из запусков рядышком
читать дальше »

Элемент: A0 = 9
Элемент: A1 = 30
Элемент: A2 = -14
Элемент: A3 = 27
Элемент: A4 = -78
Элемент: A5 = -23
Элемент: A6 = -97
Элемент: A7 = -39
Элемент: A8 = -37
Элемент: A9 = 29
Элемент: A10 = -34
Элемент: A11 = -90
Элемент: A12 = -25
Элемент: A13 = -2
Элемент: A14 = -94
Элемент: A15 = 92
Элемент: A16 = -52
Элемент: A17 = 25
Элемент: A18 = 39
Элемент: A19 = -15
Элемент: A20 = 47
Элемент: A21 = 67
Элемент: A22 = -77
Элемент: A23 = -37
Элемент: A24 = 11
Элемент: A25 = 27
Элемент: A26 = -14
Элемент: A27 = 94
Элемент: A28 = 63
Элемент: A29 = -90
Элемент: A30 = -98
Элемент: A31 = -28
Элемент: A32 = -95
Элемент: A33 = -71
Элемент: A34 = -73
Элемент: A35 = 42
Элемент: A36 = 17
Элемент: A37 = 69
Элемент: A38 = 30
Элемент: A39 = 44
Элемент: A40 = -11
Элемент: A41 = -15
Элемент: A42 = 55
Элемент: A43 = 0
Элемент: A44 = 79
Элемент: A45 = 25
Элемент: A46 = -76
Элемент: A47 = -87
Элемент: A48 = 91
Элемент: A49 = -46
Элемент: A50 = 21
Максимальный элемент массива: 94
Минимальная сумма соседних элементов массива: -188
Количество четных элементов в массиве: 20

Отправлено: 10:36, 29-12-2010 | #10