Сформировать вектор из элементов, что представляют среднее арифметическое массивов А, В, С - VB

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

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

Помоги пожалуйста сделать задание! Сформировать вектор Р из элементов, что представляют собой среднее арифметическое массивов А, В, С соответственно. Определить длину вектора Р. Заранее благодарна!

Решение задачи: «Сформировать вектор из элементов, что представляют среднее арифметическое массивов А, В, С»

textual
Листинг программы
Function avg_vect(A() As Double, B() As Double, C() As Double) As Double()
 
Dim P() As Double
 
   '::: Îïðåäåëÿåì ГЈГ°Г*Г*èöû ГЁГ±Гµ. Г¬Г*ññèâîâ
 
   na% = UBound(A, 1)
   nb% = UBound(B, 1)
   nc% = UBound(C, 1)
   
   '::: ïðåäâГ*ðèòåëüГ*îå âûäåëåГ*ГЁГҐ ГЇГ*ìÿòè
   
   ReDim P(1 To na% + nb% + nc%) As Double
 
   '::: Г±Г·ГЁГІГ*ГҐГ¬ ñðåäГ*ГЁГҐ
 
   sa# = avg(A)
   sb# = avg(B)
   sc# = avg(C)
 
   o% = 0
   
   '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ A -> P
   
   For i% = 1 To na%
       If Abs(sa# - A(i%)) <= 0.00000000000001 Then
          o% = o% + 1
          P(o%) = A(i%)
       End If
   Next i%
   
   '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ B -> P
   
   For i% = 1 To nb%
       If Abs(sb# - B(i%)) <= 0.00000000000001 Then
          o% = o% + 1
          P(o%) = B(i%)
       End If
   Next i%
   
   '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ C -> P
   
   For i% = 1 To nc%
       If Abs(sc# - C(i%)) <= 0.00000000000001 Then
          o% = o% + 1
          P(o%) = C(i%)
       End If
   Next i%
   
   If o% = 0 Then
   
      MsgBox "ГЌГЁ îäèГ* ýëåìåГ*ГІ èñõîäГ*ûõ Г¬Г*ññèâîâ Г*ГҐ ñîâïГ*Г« Г±Г® ñðåäГ*ГЁГ¬"
      
      End
      
   Else
   
      '::: ÎñâîáîæäГ*ГҐГ¬ ëèøГ*ГѕГѕ ГЇГ*ìÿòü
   
      ReDim Preserve P(1 To o%) As Double
      
   End If
   
   avg_vect = P
 
End Function
 
'::: ГђГ*Г±Г·ГҐГІ ñðåäГ*ГҐГЈГ® Г§Г*Г*Г·ГҐГ*ГЁГї
 
Function avg(X() As Double) As Double
 
   n% = UBound(X, 1)
   
   s# = 0
   
   For i% = 1 To n%
       s# = s# + X(i%)
   Next i%
   
   avg = s# / n%
 
End Function
 
Sub Test()
 
Dim A(3) As Double
Dim B(3) As Double
Dim C(3) As Double
 
Dim P()  As Double
 
    A(1) = 1
    A(2) = 2
    A(3) = 3
    
    B(1) = 11
    B(2) = 22
    B(3) = 33
    
    C(1) = 111
    C(2) = 111
    C(3) = 111
 
    P = avg_vect(A, B, C)
    
    Debug.Print "ГђГ*çìåðГ*îñòü= "; UBound(P, 1)
    
    For i% = 1 To UBound(P, 1)
        Debug.Print "P("; i%; ")="; P(i%)
    Next i%
    
End Sub

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


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

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

14   голосов , оценка 4.429 из 5
Похожие ответы