Из массива 10 чисел, вывести на экран 3 наибольших числа - VB

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

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

Помогите пожалуйста с лабой. Буду очень благодарен. Суть такая: 1) при массив из 10 чисел, вывести на экран 3 наибольших числа и их положение в массиве.

Решение задачи: «Из массива 10 чисел, вывести на экран 3 наибольших числа»

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim a, i
  3. a = Array(1, 3, 2, 5, 4)
  4. Print "Исходный массив"
  5. For Each i In a: Print i;: Next
  6.  
  7. a = LargeInd(a, 3)
  8. Print vbLf; "Наибольшие и их позиции"
  9. For i = LBound(a) To UBound(a)
  10.     Print a(i, 1), a(i, 2)
  11. Next
  12.  
  13. End Sub
  14.  
  15. Function LargeInd(a, n As Long) As Variant()
  16.  
  17. 'Функция для поиска n наибольших значений из массива (или коллекции) а
  18. 'Возвращает двумерный массив Variant(1 to n, 1 to 2),
  19. 'в первом столбце - значения по убыванию,
  20. 'во втором - их порядковые номера в исходном массиве (коллекции).
  21. 'Функция названа по аналогии с функцией НАИБОЛЬШИЙ (LARGE) в Excel.
  22.  
  23. Dim x, i&, j&, k&, ind&
  24. ReDim b(1 To n, 1 To 2)
  25.  
  26. For Each x In a
  27.     ind = ind + 1   'порядковый номер очередного элемента
  28.    For i = 1 To j  'j - число уже найденных наибольших
  29.        If x > b(i, 1) Then
  30.             j = j + 1
  31.             If j > n Then j = n
  32.             For k = j To i + 1 Step -1
  33.                 b(k, 1) = b(k - 1, 1)
  34.                 b(k, 2) = b(k - 1, 2)
  35.             Next
  36.             b(i, 1) = x
  37.             b(i, 2) = ind
  38.             GoTo next_x
  39.         End If
  40.     Next
  41.     If i <= n Then j = i: b(i, 1) = x: b(j, 2) = ind
  42. next_x:
  43. Next
  44. LargeInd = b
  45. End Function

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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