массивы данных (простой статический)
Страница 1 из 1
массивы данных (простой статический)
Когда необходимо использовать набор из нескольких однотипных переменных, для одинаковой задачи, очень удобно использовать массивы.
Массив это таблица значений. Если обычная переменная хранит только одно значение, то массив может хранить несколько значений.
Доступ к определённому значению производиться по индексу. Или проще говоря номеру элемента.
Давайте познакомимся с простым статическим массивом.
создание массива
Массив создаёться так же как обычная переменная, но после идентификатора добавляеться диапазон или, говоря по иному, размер массива.
Вот например создадим массив из 10 элементов.
По умолчанию первый элемент имеет индекс 0.
А значит их ровно 10, от 0, до 9.
а вот так создадим диапазон значений от 1 до 10
Я рекомендую всегда обозначать начальное значение, для большего понимания кода.
использование массива
Массив можно сразу инициировать значениями.
Список значений заключаеться в фигурные скобочки "{" и "}". Значение отделяеться от других запятой ",".
Вот простая программка, которая печатает список знакомых девушек.
Она нам выведет следующее:
В примере мы получаем значения элемента массива girls указывая его номер.
Так например
Но ведь писать десять строк не смешно.
А в цикле вышло очень даже красиво и экономично.
измерения
У массивов может быть несколько измерений.
Сейчас мы познакомились только с первым. Но можно создать и второе измерение.
Вот например создадим поле 10x10
Но доступ к каждому осуществляеться по двойному индексу. Или с указанием обоих измерений.
Например чтобы узнать, что находиться в поле с координатами x=10 y=5 напишем
Вот урезанный и упращонный фрагмент простой игрушки.
В этом примере сразу два массива. В одном figura храниться символ, который будет выводиться на экран. А во втором pole - код фигуры, которая находиться в конкретной позиции.
Два измерения это не придел, их может быть 3 или даже 10.
Думаю, что 10 измерений вам хватит. Я не могу вообразить, для каких расчётов нужно столько измерений! Наверное их оставили прозапас.
изменение размера массива
Может возникнуть необходимость изменить размер массива. Допустим массив слишком мал, или наоборот слишком велик.
Для того, чтобы создать массив, размер которого можно изменять, нужно использовать вместо dim redim
Стоит отметить то, что когда изменяеться размер массива, все данные будут потеряны.
Дело в том, что фактически создаёться новый массив, а старый удаляеться.
Чтобы сохранить данные, нужно использовать ключевое слово preserve
Я бы не рекомендовал использовать эту возможность слишком часто. Ваша программа значительно потеряет в быстродействии. Посмотрите в сторону списков, они более удобны для добавления и удаления элементов.
получение верхнего и нижнего индекса
Когда мы передаём массив в функцию, то его размер нам, может быть, неизвестен.
Или возможно размер массива был изменён...
В любом случае имееться возможность получить нижний и верхний индекс, с помощью функций LBound и UBound.
очистка массива
Функция erase очищает значения элементов массива.
Массив это таблица значений. Если обычная переменная хранит только одно значение, то массив может хранить несколько значений.
Доступ к определённому значению производиться по индексу. Или проще говоря номеру элемента.
Давайте познакомимся с простым статическим массивом.
создание массива
Массив создаёться так же как обычная переменная, но после идентификатора добавляеться диапазон или, говоря по иному, размер массива.
Вот например создадим массив из 10 элементов.
- Код:
dim array( 9 ) as integer
По умолчанию первый элемент имеет индекс 0.
А значит их ровно 10, от 0, до 9.
а вот так создадим диапазон значений от 1 до 10
- Код:
dim array( 1 to 10 ) as integer
Я рекомендую всегда обозначать начальное значение, для большего понимания кода.
использование массива
Массив можно сразу инициировать значениями.
Список значений заключаеться в фигурные скобочки "{" и "}". Значение отделяеться от других запятой ",".
Вот простая программка, которая печатает список знакомых девушек.
- Код:
' список девушек
dim girls(1 to 10) as string = {"Катя", "Маша", "лена", "Оля", "Наташа", "Света", "Аня", "Даша", "Таня", "Аня"}
' перечислим всех их
dim i as integer
for i = 1 to 10
print i, girls(i)
next
Она нам выведет следующее:
1 Катя
2 Маша
3 лена
4 Оля
5 Наташа
6 Света
7 Аня
8 Даша
9 Таня
10 Аня
В примере мы получаем значения элемента массива girls указывая его номер.
Так например
- Код:
print girls(1)
Катя
Но ведь писать десять строк не смешно.
- Код:
print girls(1)
print girls(2)
...
print girls(9)
print girls(10)
А в цикле вышло очень даже красиво и экономично.
измерения
У массивов может быть несколько измерений.
Сейчас мы познакомились только с первым. Но можно создать и второе измерение.
Вот например создадим поле 10x10
- Код:
dim pole( 1 to 10, 1 to 10 ) as integer
Но доступ к каждому осуществляеться по двойному индексу. Или с указанием обоих измерений.
Например чтобы узнать, что находиться в поле с координатами x=10 y=5 напишем
- Код:
print pole(10,5)
Вот урезанный и упращонный фрагмент простой игрушки.
- Код:
' фигуры
dim figura(0 to 2) as string = {".", "0", "="}
' создаём поле
dim pole( 1 to 10, 1 to 10 ) as integer
' переменные для координат
dim x as integer
dim y as integer
' раставим фишки
for x = 1 to 10
pole(x, 1) = 1
pole(x, 10) = 2
next
' прорисуем поле
for y = 1 to 10
' курсор на строчку
locate y + 5, 10
for x = 1 to 10
' выводим фигуру
print " " & figura( pole(x, y )) & " ";
next
next
В этом примере сразу два массива. В одном figura храниться символ, который будет выводиться на экран. А во втором pole - код фигуры, которая находиться в конкретной позиции.
Два измерения это не придел, их может быть 3 или даже 10.
Думаю, что 10 измерений вам хватит. Я не могу вообразить, для каких расчётов нужно столько измерений! Наверное их оставили прозапас.
изменение размера массива
Может возникнуть необходимость изменить размер массива. Допустим массив слишком мал, или наоборот слишком велик.
Для того, чтобы создать массив, размер которого можно изменять, нужно использовать вместо dim redim
- Код:
' создаём пустой массив
redim girls(0) as string
' изменяем размер массива
redim girls(1 to 100) as string
Стоит отметить то, что когда изменяеться размер массива, все данные будут потеряны.
Дело в том, что фактически создаёться новый массив, а старый удаляеться.
Чтобы сохранить данные, нужно использовать ключевое слово preserve
- Код:
' изменяем размер, скопировав данные
redim preserve girls(1 to 100) as string
Я бы не рекомендовал использовать эту возможность слишком часто. Ваша программа значительно потеряет в быстродействии. Посмотрите в сторону списков, они более удобны для добавления и удаления элементов.
получение верхнего и нижнего индекса
Когда мы передаём массив в функцию, то его размер нам, может быть, неизвестен.
Или возможно размер массива был изменён...
В любом случае имееться возможность получить нижний и верхний индекс, с помощью функций LBound и UBound.
- Код:
sub foot( array() as string )
' нижний индекс
dim min as integer = LBound(array)
' верхний индекс
dim max as integer = UBound(array)
dim i as integer
for i = min to max
print i, array(i)
next
end sub
очистка массива
Функция erase очищает значения элементов массива.
- Код:
erase girls
Re: массивы данных (простой статический)
Глава под конец откровенно скомкана.
У меня пропало желание продолжать её сейчас.
Возможно я к ней ещё вернусь.
А пока пусть будет лучше так, чем никак вообще!
можете добавить, про массивы ещё интересненькое. И конечно же спрашивайте о непонятном!
У меня пропало желание продолжать её сейчас.
Возможно я к ней ещё вернусь.
А пока пусть будет лучше так, чем никак вообще!
можете добавить, про массивы ещё интересненькое. И конечно же спрашивайте о непонятном!
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения