Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 17:12   #1
Evgen.O
 
Регистрация: 11.12.2011
Сообщений: 8
По умолчанию Перевод кода с VBA на С++

Даны целые числа a1, a2, … Известно, что a1 > 0 и что среди a2,a3,… есть хотя бы одно отрицательное число. Пусть a1,…,an – члены данной последовательности, предшествующие первому отрицательному члену (n заранее неизвестно).Получить max(a1^2,......,an^2)

Код:
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
Evgen.O вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод кода на С PhysX Помощь студентам 0 02.12.2011 17:46
Перевод кода под VBA naboman Microsoft Office Excel 2 01.06.2011 19:59
Перевод программного кода из VBA в VB (6.0) zxspec Помощь студентам 2 05.02.2009 00:39
Перевод кода ELL Помощь студентам 0 07.06.2008 01:36