Не знаю как найти среднее геометрическое элементов - VB
Формулировка задачи:
"Есть двумерный массив. Нужно найти среднее арифметическое выше главной диагонали и среднее геометрическое выше побочной."
Листинг программы
- Sub Vice()
- Dim i, j, fox1, fox2 As Integer
- Const m As Integer = 3
- Dim Mas(1 To m, 1 To m) As Integer, Sum1, Sum2, MedArif, MedGeom, S As String
- For i = 1 To m
- For j = 1 To m
- n = n + 1
- Mas(i, j) = InputBox("Введите " & j & "-й элемент " & i & " -й строки")
- Next j
- Next i
- 'находим кол-во элементов выше главной диагонали и их сумму
- For i = 1 To m
- For j = 1 To m
- Sum1 = 0
- If j > i Then ' все, что выше главной диагонали
- Sum1 = Sum1 + Mas(i, j) '...сумму
- fox1 = fox1 + 1 'количество элементов...
- End If
- Next j
- Next i
- MedArif = Sum1 / fox1 'среднее арифметическое элементов выше главной диагонали
- ' вот дальше не знаю. По какому принципу идем дальше? Как определить геометрическую прогрессию? Ведь ее может и не быть?? Или я что недопонимаю.
- 'находим сумму и кол-во элементов выше побочной, верно?
- For i = 1 To m
- For j = 1 To m
- If i + j - 1 < m Then
- Sum2=Sum2+Mas(i,j)
- Fox2=fox2+1
- S = S & "Cреднее арифметическое элементов выше гл. диагонали " & MedArif & "; " & "Среднее геометрическое выше побочной" & MedGeom
- MsgBox S
Решение задачи: «Не знаю как найти среднее геометрическое элементов»
textual
Листинг программы
- Sub Zero()
- Dim i As Integer, j As Integer, n As Integer
- Const m As Integer = 3
- Dim Mas(1 To m, 1 To m) As Integer
- Dim Sum As Double, Pro As Double
- Dim MedArif As Double, MedGeom As Double
- Dim S As String
- Randomize
- For i = 1 To m
- For j = 1 To m
- ' Mas(i, j) = InputBox("Введите " & j & "-й элемент " & i & " -й строки")
- Mas(i, j) = Int(Rnd * 9 + 1)
- S = S & Mas(i, j) & vbTab
- Next j
- S = S & vbCrLf
- Next i
- 'кол-во элементов выше гл. диаг. и их сумма
- For i = 1 To m
- For j = 1 To m
- If i < j Then
- n = n + 1
- Sum = Sum + Mas(i, j)
- End If
- Next j
- Next i
- MedArif = Abs(Sum / n) 'сред.арифм.
- 'среднее геом. выше побочной вычислял по этой формуле [url]http://www.fxyz.ru/формулы_по_математике/'средние_величины/среднее_геометрическое/[/url]
- n = 0
- Pro = 1
- For i = 1 To m
- For j = 1 To m
- If i + j - 1 < m Then
- n = n + 1
- Pro = Pro * Mas(i, j)
- End If
- Next j
- Next i
- MedGeom = Pro ^ Abs(1 / n)
- S = S & "Сред. ариф. выше главной диагонали " & MedArif & vbCrLf
- S = S & "Сред. геом. выше побочной " & MedGeom
- MsgBox S
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д