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

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

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

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

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

textual
Листинг программы
Private Sub Command1_Click()
Dim a, i
a = Array(1, 3, 2, 5, 4)
Print "Исходный массив"
For Each i In a: Print i;: Next
 
a = LargeInd(a, 3)
Print vbLf; "Наибольшие и их позиции"
For i = LBound(a) To UBound(a)
    Print a(i, 1), a(i, 2)
Next
 
End Sub
 
Function LargeInd(a, n As Long) As Variant()
 
'Функция для поиска n наибольших значений из массива (или коллекции) а
'Возвращает двумерный массив Variant(1 to n, 1 to 2),
'в первом столбце - значения по убыванию,
'во втором - их порядковые номера в исходном массиве (коллекции).
'Функция названа по аналогии с функцией НАИБОЛЬШИЙ (LARGE) в Excel.
 
Dim x, i&, j&, k&, ind&
ReDim b(1 To n, 1 To 2)
 
For Each x In a
    ind = ind + 1   'порядковый номер очередного элемента
    For i = 1 To j  'j - число уже найденных наибольших
        If x > b(i, 1) Then
            j = j + 1
            If j > n Then j = n
            For k = j To i + 1 Step -1
                b(k, 1) = b(k - 1, 1)
                b(k, 2) = b(k - 1, 2)
            Next
            b(i, 1) = x
            b(i, 2) = ind
            GoTo next_x
        End If
    Next
    If i <= n Then j = i: b(i, 1) = x: b(j, 2) = ind
next_x:
Next
LargeInd = b
End Function

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


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

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

7   голосов , оценка 3.857 из 5
Похожие ответы