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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2018, 01:53   #1
tomp171
Новичок
Джуниор
 
Регистрация: 22.01.2018
Сообщений: 2
По умолчанию VBA, цикл FOR, последовательности

Sub s()
Dim i As Integer
Dim a As Integer
n = Array(-4, -2, 4, 5, 2, 5, 1)
For i = 1 To 7
i =
If (i) >= 0 Then
a = a + 1
End If
Next i
MsgBox a
End Sub

Вот, накидал, но не знаю, как "заставить" i брать числа из массива по очереди.
Найти количество положительных чисел в последовательности из n чисел (последовательность вводится пользователем).
tomp171 вне форума Ответить с цитированием
Старый 22.01.2018, 02:25   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если я правильно понял, то можно применить любой из вариантов:
Код:
Sub test1()
    Dim i As Integer, a As Integer, n()
    n = Array(-4, -2, 4, 5, 2, 5, 1)
    For i = LBound(n) To UBound(n)
        If n(i) >= 0 Then a = a + 1
    Next
    MsgBox a
End Sub
Код:
Sub test2()
    Dim a As Integer, q
    For Each q In Array(-4, -2, 4, 5, 2, 5, 1)
        If q >= 0 Then a = a + 1
    Next
    MsgBox a
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.01.2018, 02:50   #3
tomp171
Новичок
Джуниор
 
Регистрация: 22.01.2018
Сообщений: 2
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Если я правильно понял, то можно применить любой из вариантов:
Код:
Sub test1()
    Dim i As Integer, a As Integer, n()
    n = Array(-4, -2, 4, 5, 2, 5, 1)
    For i = LBound(n) To UBound(n)
        If n(i) >= 0 Then a = a + 1
    Next
    MsgBox a
End Sub
Код:
Sub test2()
    Dim a As Integer, q
    For Each q In Array(-4, -2, 4, 5, 2, 5, 1)
        If q >= 0 Then a = a + 1
    Next
    MsgBox a
End Sub
Огромное спасибо...а я не додумался)
tomp171 вне форума Ответить с цитированием
Старый 22.01.2018, 06:46   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если требуется просто узнать количество неотрицательных элементов в массиве, то можно и так (без явных циклов):
Код:
a = UBound(Filter(Array(-4, -2, 4, 5, 2, 5, 1), "-", False)) + 1
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество четных элементов последовательности VBA Алёна_ Помощь студентам 0 03.12.2015 10:37
Последовательности VBA duducka Помощь студентам 1 11.12.2012 15:44
цикл: в линейной последовательности поменять местами 1-й и N-й, 2-й и N-1 й и т.д. ВДПУ Помощь студентам 14 30.05.2011 00:16
Последовательности, цикл for Agiza Помощь студентам 2 10.10.2010 12:40
VBA (сумма элементов последовательности) SOMBRE Помощь студентам 2 18.04.2010 15:26