Вопрос № 179002: Здавствуйте помогите пожалуйста!! на VBA Напишите программу, меняющую местами минимальный и максимальный элементы вектора. Поиск минимального и максимального элементов оформите в виде процедур....
Вопрос № 179002:
Здавствуйте помогите пожалуйста!! на VBA Напишите программу, меняющую местами минимальный и максимальный элементы вектора. Поиск минимального и максимального элементов оформите в виде процедур.
Const n As Integer = 20 ' Размерность матрицы (вектора) X
Const loX As Single = -20 ' Минимум значения элемента в матрице X Const upX As Single = 20 ' Максимум значения элемента в матрице X
ReDim X(n - 1) As Single ' Описание массивов указанной размерности
Call MatRand(X, n, loX, upX) ' Заполняем матрицу случайными числами в указанном диапазоне
Range("A1:IV65000").ClearContents ' Выв
од в задании не оговорен, вывожу результаты на текущий лист таблицы Call OutMass1(X, n, 0, 3)
' Меняем местами ПЕРВЫЕ макс и мин элементы вектора jMin = i_Min(X, n) jMax = i_Max(X, n) S = X(jMin) X(jMin) = X(jMax) X(jMax) = S
Call OutMass1(X, n, 0, 4)
End Sub
' подпрограмма заполняет вектор MM(n-1)случайными целыми числами в указанном диапазоне от lo до up Sub MatRand(MM, n, lo, up) Randomize For
i = 0 To n - 1 ' Заполняем вектор случайными числами в указанном диапазоне MM(i) = (up - lo + 1) * Rnd + lo Next End Sub
' функция ищет номер ПЕРВОГО минимального элемента вектора Function i_Min(MM, n) j = 0 For i = 0 To n - 1 If MM(j) > MM(i) Then j = i Next i_Min = j End Function
' функция ищет номер ПЕРВОГО максимального элемента вектора Functi
on i_Max(MM, n) j = 0 For i = 0 To n - 1 If MM(j) < MM(i) Then j = i Next i_Max = j End Function
' Вывод вектора в таблицу Sub OutMass1(MM, n, D1, D2) ' Вывод в задании не оговорен, вывожу на текущий лист таблицы
For i = 0 To n - 1 Range("A1").Offset(i + D1, j + D2) = MM(i) Next
End Sub
----- Нет времени на медленные танцы
Ответ отправил: Megaloman, Профессионал
Ответ отправлен: 08.06.2010, 20:34
Номер ответа: 262010
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 262010
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.