Массивом называется упорядоченная последовательность величин, обозначаемая одним именем. Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти.
1 |
|
Рис. 2.5. Блок - схема циклического вычислительного процесса
Чтобы получить доступ к нужной ячейки, нужно указать имя массива и его индекс. Индекс записывается в круглых скобках после имени массива.
Если нужно присвоить, например, значение 5 третьему элементу массива A, нужно написать
A(3) = 5
При выполнении этого оператора будет найден массив A, отсчитана третья ячейка памяти и в нее присвоено значение 5.
Индекс может быть переменной. Если нужно всем пяти элементам массива A присвоить значение 5, можно написать
FOR I = 1 TO 5
A(I) = 5
NEXT I
Имя массива образуется так же как имя переменной. В BASICе массивы могут быть одномерные и двумерные и т.д. В двумерном массиве каждый элемент идентифицируется номером строки и номером столбца, на пересечении которых он расположен. При записи элемента массива индекс (индексы) записывается в круглых скобках после имени массива. Если индексов несколько, то они разделяются запятой. Массивы определяются в операторе описания массивов DIM. В операторе DIM указываются имя массива и в круглых скобках границы изменения индексов.
|
|
Например, оператор
DIM A(1 ТО 3), B(1 ТО 4, 1 ТО 5)
описывает два числовых массива: A состоящий из трех элементов и B содержащий 4 строки и 5 столбцов. Можно указать только верхние границы, в этом случае нижние границы будут равны нулю.
В соответствии с оператором DIM в памяти ЭВМ выделяется место для размещения этих массивов. Так, для массива A будут выделены три ячейки памяти, для массива B - двадцать ячеек. Под двумерный массив выделяется линейный участок памяти, в котором массив располагается по строкам.
В BASICе обработка массивов, а также ввод – вывод массивов осуществляется поэлементно.
Например, ввод одномерного массива A, содержащего 11 элементов, можно осуществить при помощи операторов
DIM A(10)
FOR I = 0 TO 10
INPUT A(I)
NEXT I
Ввод двумерного массива B (4,5) можно осуществить при помощи операторов
DIM B(1 ТО 4, 1 ТО 5)
FOR I = 1 TO 4
FOR J = 1 TO 5
INPUT B(I,J)
NEXT J
NEXT I
Ввод двумерного массива в приведенной программе осуществляется по строкам.
Вывод двумерных массивов для повышения наглядности рекомендуется осуществлять по строкам, начиная вывод каждой новой строки массива в новую строку экрана.
Использование оператора PRINT USING при выводе массивов позволяет выводить массивы в удобной для восприятия форме. Например, таблицa элементов массива B выводится на экран операторами
|
|
DIM В(1 ТО 4, 1 ТО 4)
P =.5
FOR I=1 TO 4
FOR J=1 TO 4
P=P+1: В(I,J) = P
PRINT USING "##.##"; В(I,J);
NEXT J: PRINT
NEXT I: PRINT
END
На экране элементы массива расположатся так:
1.50 2.50 3.50 4.50
5.50 6.50 7.50 8.50
9.50 10.50 11.50 12.50
13.50 14.50 15.50 16.50
Оператор PRINT осуществляет только возврат каретки перед выводом новой строки.
Пример 7. Даны два массива x i и y i (i=1,10). Составить программу для вычисления
Программа для примера 7 (см. на рис. 2.6):
DIM X(10), Y(10)
INPUT "M,N"; M,N
DATA 8.12, -3.54, 7.73, -0.37, -76.8, 99, 54.87, 1.61, 58.3, 9.74
DATA 7.46, 63.74, -5.83, 7.66, -33.8, 3.99, 154.7, 31.22, -9.33, 21.12
FOR I=1 TO 10
READ X(I)
NEXT I
FOR I=1 TO 10
READ Y(I)
NEXT I
S=0
FOR I=1 TO 10
S=S+X(I)^2-N*Y(I)
NEXT I
T=M*S
PRINT " T= "; T
END
Рис. 2.6. Блок - схема программы на обработку массивов
Пример 8. Найти сумму элементов каждой строки массива C (4,5).
Программа для примера 8 (см. рис. 2.7.):
DIM C(4,5), S(4)
DATA 2, 4, 6, 8, 10
DATA -1, -3.4, -6, 7, 9
DATA -2, -4, 6, -8, -10
DATA 1, 3, 5.1, 12, 15
FOR I = 1 TO 4
FOR J = 1 TO 5
READ C(I,J)
NEXT J, I
FOR I = 1 TO 4
S(I)=0
FOR J = 1 TO 5
S(I) = S(I)+C(I,J)
NEXT J
PRINT S(I);
NEXT I: PRINT
END