Первое и последнее пол. значение элементов массива - VB

Узнай цену своей работы

Формулировка задачи:

У меня вышло нечто вот такое:
Листинг программы
  1. Sub obmass(ByRef x() As Integer, ByRef y() As Integer, ByRef polsum As Integer, ByVal a As Integer, ByVal b As Integer, ByVal kolel As Integer)
  2. Dim vxi, vyi As String
  3. Dim p, f, l As Integer
  4. polsum = 0
  5. p = 0
  6. vxi = "" 'Вывод ИКС
  7. vyi = "" 'Вывод ИГРЕК
  8. For i = 0 To (kolel - 1) 'Заполнение x(i) случ. знач.
  9. x(CInt(i)) = CInt(Math.Floor((31) * Rnd())) - 15
  10. vxi = vxi + "|" + CStr(x(i))
  11. Next
  12. For i = 0 To (kolel - 1) 'Первое пол.
  13. If x(i) >= 0 Then
  14. f = i
  15. Exit For
  16. End If
  17. Next
  18. For n = (kolel - 1) To 0 Step -1 'Последнее пол.
  19. If x(n) >= 0 Then
  20. l = n
  21. Exit For
  22. End If
  23. Next
  24. For n = f To l
  25. x(n) = y(n)
  26. polsum = polsum + y(n)
  27. vyi = vyi + CStr(y(n))
  28. Next
  29. ListBox1.Items.Add(vxi)
  30. End Sub
Но оно почему-то не считает сумму эл-тов массива и в новом массиве выдает нули. Дополнительный плюс в карму, если поможете избавиться от лишних циклов. Заранее спасибо !

Решение задачи: «Первое и последнее пол. значение элементов массива»

textual
Листинг программы
  1. Sub Task(A() As Integer)
  2. Dim flg As Boolean
  3.     f% = 0
  4.     l% = 0
  5.     For i% = 1 To UBound(A, 1)
  6.         If flg Then
  7.            If A(i%) > 0 Then l% = A(i%)
  8.         Else
  9.            If A(i%) > 0 Then
  10.               flg = True
  11.               f% = A(i%)
  12.            End If
  13.         End If
  14.     Next i%
  15.     Debug.Print f%; " "; l%
  16. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы