Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram

dim

создание массива перед его первым использованием

Аватара пользователя
Anton
Site Admin
Сообщения: 97
Зарегистрирован: Чт фев 08, 2024 7:03 pm

dim

Сообщение Anton »

dim
dim — создание массива перед его первым использованием

Синтаксис
dim array(x,y)
dim array$(x,y)

Описание
Команда dim подготавливает один или несколько массивов (строк, либо чисел) для последующего использования. Эту команду также можно использовать для увеличения существующего массива.

Когда массив создается с помощью оператора dim, выделяется память, и все элементы инициализируются либо 0 (для числовых массивов), либо "" (для строковых массивов). Обратите внимание, что dim резервирует место на один элемент больше, чем указано, например, dim(10) резервирует память для 11 элементов. Это позволяет получить доступ как к элементу 0, так и к элементу 10, что соответствует соглашениям Си и Basic.

Если массив уже существовал, а оператор dim указывает больший размер, чем текущий, массив увеличивается, а все старое содержимое сохраняется. Но обратите внимание, что dim нельзя использовать для уменьшения массива: если указать размер, который меньше текущего, команда dim ничего не сделает.

Наконец: чтобы создать массив, который известен только в пределах одной подпрограммы, следует использовать команду local, которая создает локальные переменные, а также локальные массивы.

Пример

Код: Выделить всё

dim a(5,5)

for x=1 to 5:for y=1 to 5
  a(x,y)=int(ran(100))
next y:next x

printmatrix(a())

dim a(7,7)

printmatrix(a())

sub printmatrix(ar())
  local x,y,p,q
  x=arraysize(ar(),1)
  y=arraysize(ar(),2)
  for q=1 to y
    for p=1 to y
      print ar(p,q),"\t";
    next p
    print
  next q
end sub
В этом примере создается двумерный массив (т.е. матрица) с помощью инструкции dim и заполняется случайными числами. Вторая инструкция dim увеличивает массив, все новые элементы заполняются значением 0.

Подпрограмма printmatrix просто выполняет то, о чем говорит ее название (выводит значение матрицы).
Связанные команды и функции:
arraysize, arraydim, local