Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввод одномерных массивов. Вывод одномерных массивов

Лекция № 28

Использование массивов

Объявление массивов

Оператор Option Base

 

Обычно в VBA используются массивы с нулевой базой, что не совсем удобно. Было бы гораздо удобнее, если бы элементы массива нумеровались, начиная с 1, а не с 0.

VBA позволяет задавать начальное число для элементов массива. Можно задавать нижнее число для индексов массива при объявлении массива или использовать директиву компилятора Option Base для указания того, должна ли нумерация индексов начинаться с 0 или с 1.

Директива компилятора Option Base имеет следующий синтаксис:

 

Option Base 0/1

 

Option Base 0

 

– установка по умолчанию;

 

Option Base 1

 

– индексы массива начинаются с 1.

 

 

Для объявления массивов используется оператор Dim. С помощью Dim можно объявлять как одномерные, так и многомерные массивы.

Объявление массива с помощью оператора Dim имеет следующий синтаксис:

 

Dim имя массива ([ измерения массива ]) [As Type]

Измерения массива могут быть заданы следующим образом:

 

нижний диапазон ТО верхний диапазон, нижний диапазон ТО верхний диапазон…

 

или

 

верхний диапазон, верхний диапазон…

 

Следующие примеры являются допустимыми объявлениями массива:

 

Dim str_array(l To 100) As String

 

Dim str_Multiplication(0 To 15, 0 To 15) As String

 

 

После объявления массива использовать его в коде VBA довольно просто. Для доступа к элементу массива необходимо указать имя массива, за которым следует значение индекса, заключенное в круглые скобки.

Обращение к элементу массива имеет следующий синтаксис:

 

имя массива (индексl, индекс2,...)

 

Необходимо предоставлять значение индекса для каждого измерения массива при каждом обращении к какому-либо элементу в массиве. Например, для двумерного массива необходимо всегда определять два индекса-Допустимым индексом является любая переменная VBA или выражение, имеющее результатом целое число в диапазоне объявленных измерений массива. Например, допустимым значением индекса для одномерного массива объявленного с индексами 1-10, может быть любое выражение VBA, имеющее результатом целое число в диапазоне от 1 до 10. Использование меньшего или большего индекса, чем диапазон для определенного изменения в массиве, приводит к ошибке.


 

 

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

Так как элементы массивов обозначены одним именем и различаются их местом расположения (индексом), алгоритм задачи, основывается на циклическом повторении некоторых операций, причем переменной цикла, как правило, является индекс.

Пример подобного алгоритма – ввод одномерного массива А, содержащего n элементов, а память ЭВМ. Блок-схема решения такой задачи представляет собой одиночный цикл.

В зависимости от применяемого оператора ввода возможны два варианта программы:

а) программа с оператором ввода InputBox:

 

Dim n As Integer

Dim i As Integer

Dim Int_Array() As Integer

n = InputBox("Введите количество элементов массива")

ReDim Int_Array(n)

For i = 1 To n

Int_Array(i) = InputBox("Введите значение " & i & "-го элемента массива", "Ввод элементов массива ")

Next i

 

б) программа с оператором ввода Cells:

 

Dim n As Integer

Dim i As Integer

Dim Int_Array() As Integer

n = InputBox("Введите количество элементов массива")

Dim str_msg As String

For i = 1 To n

Int_Array(i) = Cells (1,i)

Next i

 

Первый вариант рекомендуется использовать при вводе небольших по размеру массивов. Ввод каждого элемента массива осуществляется непосредственным набором цифр на клавиатуре. Ошибочно введенное число записывается в память ЭВМ и для исправления его нужно начать выполнять программу с самого начала, что вовсе не гарантирует от появления новой ошибки при вводе.

В варианте программы с использованием оператора Cells числа записываются в операторе в рабочем листе Excel (в примере элементы забиваются в 1-ой строке, начиная с 1-го столбца). Ошибки могут быть выявлены и исправлены до начала вычислений

Возможен и третий способ ввода элементов массива – когда элемент массива вычисляется по какой-либо формуле, где аргументом является индекс:

 

Dim n As Integer

Dim i As Integer

Dim Int_Array() As Integer

n = InputBox("Введите количество элементов массива")

ReDim Int_Array(n)

For i = 1 To n

Int_Array(i) =...

Next i

 

Вывод элементов одномерного массива осуществляется через строковую переменную str_msg, которая первоначально берется пустой str_msg = "". При этом вывод осуществляется в диалоговое окно

 

str_msg = ""

For j = 1 To n

str_msg = str_msg & Int_Array(j) & ", "

Next j

MsgBox "Введено: " & str_msg,, "Вывод ранее введенного массива"

 

С помощью оператора Cells массив можно вывести в рабочий лист Excel:

 

For j = 1 To n

Cells (2, j) = Int_Array(j)

Next j

 

В приведенном куске программы вывод будет осуществляться во вторую строку, начиная с 1-го столбца.

 

Пример 24. Ввод-вывод одномерного массива

Sub DemoStatArray()

Dim n As Integer

Dim i As Integer

Dim Int_Array() As Integer

n = InputBox("Введите количество элементов массива")

ReDim Int_Array(n)

Dim str_msg As String

For i = 1 To n

Int_Array(i) = InputBox("Введите значение " & i & "-го элемента массива", "Ввод элементов массива ")

Next i

str_msg = ""

For j = 1 To n

str_msg = str_msg & Int_Array(j) & ", "

Next j

MsgBox "Введено: " & str_msg,, "Вывод ранее введенного массива"

End Sub

 

 

 

 

<== предыдущая лекция | следующая лекция ==>
Статические и динамические массивы | Ввод и вывод двумерных массивов
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 7710; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.