Программирование с использованием массивов.
Массивом называется последовательность элементов, обозначаемых одним именем, где каждый элемент имеет свое определенное место. Это место в последовательности определяется комбинацией индексов. Количество индексов определяет размерность массива. Произведения диапазонов изменения индексов определяет размер массива - количество элементов в массиве. Например, вектор одномерный массив, так как для определения места любого элемента требуется только один индекс, размер массива равен
. Таблица
двумерный массив, размер массива равен
.
Чтобы получить доступ к нужному элементу, нужно указать имя массива и комбинацию индекс. Индексы записывается через запятую (если размерность массива больше 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. Блок - схема циклического вычислительного процесса с применением двумерного массива