ГЛАВА 12
МАССИВЫ
Краткое содержание: DIM.
Допустим, у Вас имеется список из чисел, каким-то образом описыва-
ющих 10 человек. Для записи их в память компьютера Вы должны будете за-
вести переменную на каждого человека. Это не удобно, так как приходится
обращаться к данным, называя каждый раз новую переменную. Например:
bloggsl, bloggs2 и т.д. до bloggslO. Как это неудобно, Вы можете убедиться
из программы:
5 REM This programm will not work
10 FOR N-l TO 10
20 READ bloggs N
30 NEX N
40 DATA 10,2,5,19,16,3,11,1,0,6
Имеется специальный аппарат для подобного случая, это применение
массивов. Переменные в массиве являются его элементами, обладают
общим именем и различаются только номером записываемым после имени
(индексом).
В нашем примере имя будет "В" (подобно управляющим переменным в
FOR-NEXT утверждениях, имя массива должно быть уникальным в данной
программе). И десятью переменными будут В(1),В (2) и т.д. До В(10).
Элементы массивов называют индексируемыми переменными. Перед
использованием массива необходимо зарезервировать под него память.
Это делается в операторе DIM (от английского DIMENSION). В нашем слу-
чае это будет оператор DIM В(10), который определяет массив с именем "В"
и размерностью 10 (т.е. 10 индексируемых переменных В(1), В(2).....В(10)) и
присваивает всем элементам массива значение 0.
И так, теперь мы можем записать:
10 FOR Nel ТО 10
20 READ B(N)
30 NEXT N
40 DATA 10,2,5,19,16,3,11,1,0,6
Можно также объявлять массивы с более чем одной размерностью.
Например в двухмерном массиве первый индекс можно сравнить с номе-
ром строки, а второй с позицией в строке. Такой массив как бы описывает
страницу. Если ввести третье измерение для номера страницы, то массив
будет описывать книгу в виде:
(номер страницы, номер строки, номер столбца)
Объявим двухмерный массив X" с размерностью 3 и 6:
DIM С(3,6)
Что даст 3*6 « 18 индексируемых переменных:
С(1,1),С(1,2),... ,С(1,6)
С(2,1),С(2,2),... ,С(2,6)
С(3,1),С(3,2),... ,С(3,6)
Могут быть также строковые массивы. Строки в таких массивах отлича-
ются от скалярных тем, что имеют фиксированную длину, а присваивание им
значения осуществляется с усечением справа или добавлением до полной
длины пробелами. Имя строкового массива образуется добавлением справа
к имени специального символа, перечеркнутой буквы S ("$").
Допустим Вам необходимо объявить массив А$ на 5 строк по 10 симво-
лов в каждой, Вы должны записать:
DIM А$(5,10)
Телерь Вы можете обращаться как целиком к отдельной строке, так и к
каждому символу в строке:
А$< 1 )жА$(1,1) А$ (1,2)... А$(1,10)
А$(2)«А$(2,1)А$<2,2)... А$(2,10)
A$(5)*SA$(5,1)A$(5,2)... А$(5,10)
Можно также рассматривать элемент строкового массива как массив
символов. Пусть объявлен массив А$(2,7), можно записать и так А(2Х7) Сле-
дующая программа:
10 LET А$(2)e" 1234567890"
20 PRINT А$(2),А$(2,7)
даст "123456789 7"
Можно использовать также сечения массивов:
А$(2,4 ТО 8)«А$(2) (4 ТО 8)«"45678м
Помните, что в строковых массивах все строки имеют фиксированную
длину. Эту длину определяет последнее число размерности массива в опе-
раторе DIM. Если объявлен одномерный массив, то он определяет массив
символов: DIM А$(10).