2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ошибка в массиве
Сообщение09.06.2011, 17:45 
Задано одномерный масив "b". Сформировать масив "a" за формулою $a = b/maxb$.

Вот код:
код: [ скачать ] [ спрятать ]
Используется синтаксис Visual Basic
Sub mass2()


    Dim b() As Single
    Dim a() As Single
   
  n = (InputBox("размерность"))
  ReDim b(1 To n)
  ReDim a(1 To n)
 
  For i = 1 To n
  b(i) = 120 * Rnd
 
  Next i
  Max = b(1)
 
  For i = 2 To n
 
  If Max < b(i) Then Max = b(i)
 
 
  Next i
  a(i) = b(i) / Max
 
  Cells(i) = a(i)
 
 
 
 

    End Sub


когда программа доходит до $a(i) = b(i) / Max$, вылетает Subscript out of range. Поправте пжлст или подскажите как поправить.

 
 
 
 Re: Ошибка в массиве
Сообщение09.06.2011, 20:47 
caesarus в сообщении #456189 писал(а):
когда программа доходит до $a(i) = b(i) / Max$, вылетает Subscript out of range. Поправте пжлст или подскажите как поправить.

В этот момент i уже равно 11. Вставьте $a(i) = b(i) / Max$ внутрь нового цикла от 1 до n.
И еще, Redim тут не нужен. Определяйте массив оператором
Dim b(10) As Single

 
 
 
 Re: Ошибка в массиве
Сообщение09.06.2011, 20:56 
Используется синтаксис Visual Basic
 For i = 1 To n
    a(i) = b(i) / Max
    Cells(i, 1) = a(i)
Next i


вместо того, что было)) спасибо)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group