Из массива 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д