Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MP_VB-2.doc
Скачиваний:
13
Добавлен:
18.04.2015
Размер:
341.5 Кб
Скачать

{ Dim | Global } uмя(maxSize) [As тип]

  • двумерного

{ Dim | Global } uмя(maxSize1, maxSize2) [As тип]

Значение в круглых скобках (maxSize) называется размерностью (Dimension) массива. Оно сообщает Visual Basic о том, какой объем памяти нужно отвести под массив. Для двумерного массива размерность определяется как произведение (maxSize1*maxSize2). Переменные maxSize должна быть целого типа. Стандартное объявление создает массив, элементы которого нумеруются от нуля до maxSize. Например, оператор

Dim X(3) As Integer

объявляет одномерный массив с четырьмя элементами: Х(0), Х(1), Х(2) и Х(3). Для того, чтобы нумерация начиналась с единицы необходимо в начале программы указать Option Base 1.

Определение размера массива в период выполнения программы.

Когда массив определяется оператором Dim, то явным образом указывается его размер. Но; не всегда можно заранее предсказать точный размер массива. В отдельных случаях его размер можно взять с запасом. Но при таком подходе обязательно появляются две проблемы. Во-первых, слишком большой массив — пустая трата памяти. А во-вторых, нет гарантии в том, что обьем массива будет достаточен.

В Visual Basic эту проблему решает оператор ReDim, позволяющий переопределять массивы. Оператор ReDim не объявление, а команда, выполняемая только при работе программы. Чтобы им воспользоваться, уберите из объявления массива определение размерности maxSize. Это заставит Visual Basic создать динамический массив (dynamic array); его размер — в отличие от статического — может изменяться. Синтаксис оператора ReDim имеет следующий вид:

ReDim [Preserve] nepeменная (maxSize )

Его синтаксис похож на синтаксис оператора Dim с той разницей, что здесь допускается указывать ключевое слово Preserve, а вместо maxSize можно подставить любое целочисленное выражение. Если в операторе ReDim нет ключевого слова Preserve, предыдущее содержимое массива уничтожается при его переопределении (т.е. массив фактически создается заново). При наличии ключевого слова Preserve, новый массив сохраняет содержимое предыдущего. Однако, если новый размер меньше, чем старый, "лишние" элементы, естественно, отбрасываются.

Массивы объектов

Кроме обычных массивов, хранящих данные различного типа, в Visual Basic разрешается определять массивы объектов (Control arrays) (элементов управления), что весьма удобно, если в программе имеются группы объектов, действующих примерно одинаково. Такие массивы позволяют "привязывать" разные элементы управления к одной процедуре обработки события. Например, если в программе создан массив из трех командных кнопок, щелчок любого из этих объектов вызывает одну и ту же процедуру обработки события Click. Visual Basic дает возможность различать конкретные объекты в массиве — это достигается передачей в процедуру индекса нужного элемента.

Циклы

Цикл Do….Loop позволяет многократно выполнять какую-либо группу операторов. Синтаксис его простейшей формы:

Цикл с предусловием

Do { While | Until } условие выхода

[операторы]...

Loop

Цикл с постусловием

Do

[операторы]...

Loop { While | Until } условие выхода

Ключевое слово Do помечает начало составного оператора, в который входят все операторы вплоть до ключевого слова Loop. Операторы последовательно выполняются программой, пока не встретится ключевое слово Loop; после чего происходит возврат к первому оператору за ключевым словом Do. Закончив цикл, программа продолжается с оператора, стоящего за ключевым словом Loop. После ключевого слова While или Until должно присутствовать условие выхода в форме логического выражения. Группу повторяемых таким образом операторов называют циклом (loop). А когда программа обрабатывает эти операторы, говорят, что она выполняет цикл. Бесконечный цикл — это цикл у которого никогда не выполняется условие выхода.

В Visual Basic организовать выход из цикла можно по-разному. Если используется ключевое слово While (до тех пор, пока…), которое указывается за оператором Do, и условие выхода в форме логического выражения имеет значение True, то операторы, расположенные в теле цикла, выполняются. Если выражение принимает значение False, операторы, расположенные в теле цикла, пропускаются.

Ключевое слово While допустимо указывать и за ключевым словом Loop. Однако тогда эффект будет чуть-чуть другой. В этом случае цикл исполняется по крайней мере один раз, так как условие проверяется после Loop.

В ряде случаев имеет смысл заменить ключевое слово While другим — Until. Последнее инвертирует логику проверки условия.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]