Автор Тема: Помогите найти ошибку в программе(((  (Прочитано 3630 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн МалаЯ

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Определить среднее арифметическое элементов, попавших в интервал (5;15).Для элементов, кратных 7, в двух одномерных массивах разной длины.


Sub oops2()
Const n = 10, n1 = 15
Dim a(n) As Integer
Dim b(n1) As Integer
Dim i As Integer
Dim Sr As Double
Dim S As Double
Dim k As Integer
For i = 1 To n
Cells(i, 5) = Int(Rnd * 100 - 50)
a(i) = Cells(i, 5)
Cells(i, 6) = Int(Rnd * 100 - 50)
b(i) = Cells(i, 6)
Next i
S = 0
k = 0
If a(i) > 5 And a(i) < 15 And a(i) Mod 7 = 0 Then
If b(i) > 5 And b(i) < 15 And b(i) Mod 7 = 0 Then
S = S + a(i)
S = S + b(i)
k = k + 1
If k = 0 Then
MsgBox ("no")
Else
Sr = S / k
Cells(1, 7) = Sr
End If
End Sub


Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
Re: Помогите найти ошибку в программе(((
« Ответ #1 : 13 Декабря 2010, 13:39:03 »
много ошибок

Sub oops2()

Dim a(10) As Integer
Dim b(15) As Integer
Dim S As Integer
Dim C As Integer
Dim i As Integer

For i = 1 To 10
  Cells(i, 5) = Int(Rnd * 20)
  a(i) = Cells(i, 5)
Next i

For i = 1 To 15
  Cells(i, 6) = Int(Rnd * 20)
  b(i) = Cells(i, 6)
Next i

For i = 1 To 15
  If i < 11 Then
    If a(i) = 7 Or a(i) = 14 Then
      S = S + a(i)
      C = C + 1
      Cells(i, 5).Interior.Color = vbGreen
    End If
  End If
  If b(i) = 7 Or b(i) = 14 Then
    S = S + b(i)
    C = C + 1
    Cells(i, 6).Interior.Color = vbGreen
  End If
Next i

If C = 0 Then
  MsgBox ("no elements")
Else
  MsgBox (S / C)
  End If

End Sub

Оффлайн МалаЯ

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Помогите найти ошибку в программе(((
« Ответ #2 : 13 Декабря 2010, 20:06:19 »
Огромное спасибо!!! :D