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

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

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

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

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

textual
Листинг программы
  1. Function avg_vect(A() As Double, B() As Double, C() As Double) As Double()
  2.  
  3. Dim P() As Double
  4.  
  5.    '::: Îïðåäåëÿåì ГЈГ°Г*Г*ГЁГ¶Г» ГЁГ±Гµ. Г¬Г*ññèâîâ
  6.  
  7.    na% = UBound(A, 1)
  8.    nb% = UBound(B, 1)
  9.    nc% = UBound(C, 1)
  10.    
  11.    '::: ïðåäâГ*ðèòåëüГ*îå âûäåëåГ*ГЁГҐ ГЇГ*ìÿòè
  12.  
  13.    ReDim P(1 To na% + nb% + nc%) As Double
  14.  
  15.    '::: Г±Г·ГЁГІГ*ГҐГ¬ ñðåäГ*ГЁГҐ
  16.  
  17.    sa# = avg(A)
  18.    sb# = avg(B)
  19.    sc# = avg(C)
  20.  
  21.    o% = 0
  22.    
  23.    '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ A -> P
  24.  
  25.    For i% = 1 To na%
  26.        If Abs(sa# - A(i%)) <= 0.00000000000001 Then
  27.           o% = o% + 1
  28.           P(o%) = A(i%)
  29.        End If
  30.    Next i%
  31.    
  32.    '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ B -> P
  33.  
  34.    For i% = 1 To nb%
  35.        If Abs(sb# - B(i%)) <= 0.00000000000001 Then
  36.           o% = o% + 1
  37.           P(o%) = B(i%)
  38.        End If
  39.    Next i%
  40.    
  41.    '::: ÑáðГ*ñûâГ*ГҐГ¬ ñðåäГ*ГЁГҐ ГЁГ§ C -> P
  42.  
  43.    For i% = 1 To nc%
  44.        If Abs(sc# - C(i%)) <= 0.00000000000001 Then
  45.           o% = o% + 1
  46.           P(o%) = C(i%)
  47.        End If
  48.    Next i%
  49.    
  50.    If o% = 0 Then
  51.    
  52.       MsgBox "ГЌГЁ îäèГ* ýëåìåГ*ГІ èñõîäГ*ûõ Г¬Г*ññèâîâ Г*ГҐ ñîâïГ*Г« Г±Г® ñðåäГ*ГЁГ¬"
  53.      
  54.       End
  55.      
  56.    Else
  57.    
  58.       '::: ÎñâîáîæäГ*ГҐГ¬ ëèøГ*ГѕГѕ ГЇГ*ìÿòü
  59.  
  60.       ReDim Preserve P(1 To o%) As Double
  61.      
  62.    End If
  63.    
  64.    avg_vect = P
  65.  
  66. End Function
  67.  
  68. '::: ГђГ*Г±Г·ГҐГІ ñðåäГ*ГҐГЈГ® Г§Г*Г*Г·ГҐГ*ГЁГї
  69.  
  70. Function avg(X() As Double) As Double
  71.  
  72.    n% = UBound(X, 1)
  73.    
  74.    s# = 0
  75.    
  76.    For i% = 1 To n%
  77.        s# = s# + X(i%)
  78.    Next i%
  79.    
  80.    avg = s# / n%
  81.  
  82. End Function
  83.  
  84. Sub Test()
  85.  
  86. Dim A(3) As Double
  87. Dim B(3) As Double
  88. Dim C(3) As Double
  89.  
  90. Dim P()  As Double
  91.  
  92.     A(1) = 1
  93.     A(2) = 2
  94.     A(3) = 3
  95.    
  96.     B(1) = 11
  97.     B(2) = 22
  98.     B(3) = 33
  99.    
  100.     C(1) = 111
  101.     C(2) = 111
  102.     C(3) = 111
  103.  
  104.     P = avg_vect(A, B, C)
  105.    
  106.     Debug.Print "ГђГ*çìåðГ*îñòü= "; UBound(P, 1)
  107.    
  108.     For i% = 1 To UBound(P, 1)
  109.         Debug.Print "P("; i%; ")="; P(i%)
  110.     Next i%
  111.    
  112. End Sub

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


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

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

14   голосов , оценка 4.429 из 5

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

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

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