AndVGri
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Lexy4ka Private Const halfPi As Double = 1.5707963267949 'Метод, вычисляющий среднегармоническое и число 'значений функции больших среднегармонического 'предполагается, что аргументы функции расположены 'в столбце 1, начиная со строки 2 Public Sub HarMeanReport() Dim vLast As Long, vCount As Long, i As Long Dim Result() As Double, vCurrent As Double Dim GreateCount As Long 'определяем последнюю строку с данными vLast = Cells(2&, 1&).End(xlDown).Row ReDim Result(0& To vLast - 2&) vCount = 0& 'цикл вычисления функции For i = 2& To vLast 'проверим на (n + 1 / 2) * Pi vCurrent = Cells(i, 1&).Value / halfPi If ((vCurrent - VBA.Fix(vCurrent)) = 0&) And ((VBA.Fix(vCurrent) Mod 2&) = 0&) Then Cells(i, 2&).Value = "НЕТ" Else Cells(i, 2&).Value = Math.Sin(Math.Sin(Cells(i, 1&).Value) * Math.Tan(Cells(i, 1&).Value)) 'заносим значения функции > 0 в массив If Cells(i, 2&).Value > 0# Then Result(vCount) = Cells(i, 2&).Value vCount = vCount + 1& End If End If Next i 'отсечка по числу значений > 0 ReDim Preserve Result(0& To vCount - 1&) 'получить и сохранить среднегармоническое vCurrent = Application.WorksheetFunction.HarMean(Result) Cells(vLast + 2&, 2&).Value = vCurrent 'определить и сохранить число значенией больших среднегармонического GreateCount = 0& For i = 0& To vCount - 1& If Result(i) > vCurrent Then GreateCount = GreateCount + 1& Next i Cells(vLast + 3&, 2&).Value = GreateCount End Sub | Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 04:34 12-03-2007 | Исправлено: AndVGri, 04:38 12-03-2007 |
|