Программирование с использованием массивов.

Массивом называется последовательность элементов, обозначаемых одним именем, где каждый элемент имеет свое определенное место. Это место в последовательности определяется комбинацией индексов. Количество индексов определяет размерность массива. Произведения диапазонов изменения индексов определяет размер массива - количество элементов в массиве. Например, вектор одномерный массив, так как для определения места любого элемента требуется только один индекс, размер массива равен . Таблица двумерный массив, размер массива равен .

Чтобы получить доступ к нужному элементу, нужно указать имя массива и комбинацию индекс. Индексы записывается через запятую (если размерность массива больше 1) в круглых скобках после имени массива. Если нужно присвоить, например, значение 5 третьему элементу массива A, нужно написать: A(3) = 5.

При выполнении этого оператора будет найден массив A, найдено соответствующее 3-му элементу место в памяти и в это место запишется число 5.

Индекс может быть переменной. Если нужно всем пяти элементам массива A присвоить значение 5, можно написать

 

FOR I = 1 TO 5

A(I) = 5

NEXT I

 

Имя массива образуется так же как имя переменной. Массивы определяются в операторе описания массивов DIM. В операторе DIM указываются имя массива и в круглых скобках границы изменения индексов.

Например, оператор

 

DIM A(1 ТО 3), B(1 ТО 4, 1 ТО 5)

 

описывает два числовых массива: A состоящий из трех элементов и B содержащий 4 строки и 5 столбцов. Можно указать только верхние границы, в этом случае нижние границы будут равны нулю.

В соответствии с оператором DIM в памяти ЭВМ выделяется место для размещения этих массивов. Так, для массива A будут выделено место в памяти для трех элементов, для массива B – для двадцати элементов. Под двумерный массив выделяется линейный участок памяти, в котором массив располагается по строкам.

При описании динамических массивов (количество элементов задается переменной, значение которой определяется до описания массива) используется оператор ReDIM.

Пример:

k = Cells(2, 1): m = Cells(2, 1)

ReDim a(1 To k), b(1 To k), C(1 To m), D(1 To m)

 

В VISUAL BASICе обработка массивов, а также ввод – вывод массивов осуществляется поэлементно.

Например, ввод одномерного массива A, содержащего 11 элементов, расположенных в диапазоне ячеек Excel A1 A11, можно осуществить при помощи операторов

dim a(10)

for i = 0 to 10

a(i)=cells(i,1)

next i

 

Ввод двумерного массива B(4,5) , содержащего 20 элементов, расположенных в диапазоне ячеек Excel A1 E4, можно осуществить при помощи операторов

dim b(1 то 4, 1 то 5)

for i = 1 to 4

for j = 1 to 5

b(i,j)=cells(i,j)

next j

next i

 

Ввод двумерного массива в приведенной программе осуществляется по строкам. Однако ввод этого массива можно осуществить и по столбцам:

dim b(1 то 4, 1 то 5)

for j = 1 to 5

for i = 1 to 4

b(i,j)=cells(i,j)

next i

next j

Вывод двумерных массивов в ячейки Excel можно осуществлять также, как по строкам, так и по столбцам, либо вообще в любом другом порядке.

Пример 7. Даны два массива xi и yi (i=1,10). Составить программу для вычисления

 

 

Программа для примера 7

sub pr7()

dim x(10), y(10)

m = cells(1, 2): n = cells(2, 2)

s=0

for i=1 to 10

x(i)=cells(3,i+1): y(i)=cells(4,i+1)

s=s+x(i)^2-n*y(i)

next i

t=m*s: cells(5,1)= " t= ": cells(5,2)= t

end sub

Рис. 2.6. Блок - схема программы на обработку массивов

Пример 8. Найти сумму элементов каждой строки массива C(4,5).

Sub Pr8()

dim c(4,5), s(4)

for i = 1 to 4

s(i)=0

for j = 1 to 5

c(i,j)=cells(i, j): s(i) = s(i)+c(i,j)

next j

cells(i, j)=” ”: cells(i, j+1)= s(i)

next i

end sub

 

 

 

Рис. 2.7. Блок - схема циклического вычислительного процесса с применением двумерного массива