ВУЗы и колледжи

Помогите составить алгоритм. Вводится последовательность из М чисел. Найти два наибольших числа и их порядковые номера.

Алгоритмизация и программирование задач циклической
структуры на MATLAB.
на киберфоруме лучше спросить
Маден Альжанов
Маден Альжанов
77 166
Лучший ответ
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
Наташа ***
Наташа ***
68 638
n=0;
k=0;
while n==0
k=k+1;
M(k)=input('Введите очередное число последовательности М: ');
n=2;
while n~=0 & n~=1
n=input('Ввод закончен? ("1" - да, "0" - нет): ');
end
end
[N,s]=sort(M);
disp(['Наибольшие числа: ',num2str(N(end-1:end))])
disp(['их порядковые номера: ',num2str(s(end-1:end))])