Не знаю как найти среднее геометрическое элементов - VB

Узнай цену своей работы

Формулировка задачи:

"Есть двумерный массив. Нужно найти среднее арифметическое выше главной диагонали и среднее геометрическое выше побочной."
Листинг программы
  1. Sub Vice()
  2. Dim i, j, fox1, fox2 As Integer
  3. Const m As Integer = 3
  4. Dim Mas(1 To m, 1 To m) As Integer, Sum1, Sum2, MedArif, MedGeom, S As String
  5. For i = 1 To m
  6. For j = 1 To m
  7. n = n + 1
  8. Mas(i, j) = InputBox("Введите " & j & "-й элемент " & i & " -й строки")
  9. Next j
  10. Next i
  11. 'находим кол-во элементов выше главной диагонали и их сумму
  12. For i = 1 To m
  13. For j = 1 To m
  14. Sum1 = 0
  15. If j > i Then ' все, что выше главной диагонали
  16. Sum1 = Sum1 + Mas(i, j) '...сумму
  17. fox1 = fox1 + 1 'количество элементов...
  18. End If
  19. Next j
  20. Next i
  21. MedArif = Sum1 / fox1 'среднее арифметическое элементов выше главной диагонали
  22. ' вот дальше не знаю. По какому принципу идем дальше? Как определить геометрическую прогрессию? Ведь ее может и не быть?? Или я что недопонимаю.
  23. 'находим сумму и кол-во элементов выше побочной, верно?
  24. For i = 1 To m
  25. For j = 1 To m
  26. If i + j - 1 < m Then
  27. Sum2=Sum2+Mas(i,j)
  28. Fox2=fox2+1
  29. S = S & "Cреднее арифметическое элементов выше гл. диагонали " & MedArif & "; " & "Среднее геометрическое выше побочной" & MedGeom
  30. MsgBox S

Решение задачи: «Не знаю как найти среднее геометрическое элементов»

textual
Листинг программы
  1. Sub Zero()
  2.    Dim i As Integer, j As Integer, n As Integer
  3.    Const m As Integer = 3
  4.    Dim Mas(1 To m, 1 To m) As Integer
  5.    Dim Sum As Double, Pro As Double
  6.    Dim MedArif As Double, MedGeom As Double
  7.    Dim S As String
  8.    
  9.    Randomize
  10.    For i = 1 To m
  11.         For j = 1 To m
  12.              ' Mas(i, j) = InputBox("Введите " & j & "-й элемент " & i & " -й строки")
  13.              Mas(i, j) = Int(Rnd * 9 + 1)
  14.               S = S & Mas(i, j) & vbTab
  15.         Next j
  16.         S = S & vbCrLf
  17.    Next i
  18.  
  19.    'кол-во элементов выше гл. диаг. и их сумма
  20.   For i = 1 To m
  21.         For j = 1 To m
  22.               If i < j Then
  23.                   n = n + 1
  24.                   Sum = Sum + Mas(i, j)
  25.               End If
  26.         Next j
  27.    Next i
  28.    MedArif = Abs(Sum / n) 'сред.арифм.
  29.  
  30.    'среднее геом. выше побочной вычислял по этой формуле [url]http://www.fxyz.ru/формулы_по_математике/'средние_величины/среднее_геометрическое/[/url]
  31.    n = 0
  32.     Pro = 1
  33.     For i = 1 To m
  34.          For j = 1 To m
  35.              If i + j - 1 < m Then
  36.                   n = n + 1
  37.                   Pro = Pro * Mas(i, j)
  38.              End If
  39.          Next j
  40.     Next i
  41.     MedGeom = Pro ^ Abs(1 / n)
  42.  
  43.     S = S & "Сред. ариф. выше главной диагонали " & MedArif & vbCrLf
  44.     S = S & "Сред. геом. выше побочной  " & MedGeom
  45.     MsgBox S
  46.  
  47. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы