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