- •Омский государственный технический университет
- •А.М. Минитаева, л.А. Климович
- •Учебное пособие
- •Информатика и программирование
- •Лабораторная работа №2. Форматирование текста в текстовом процессоре
- •Численность населения
- •Список оборудования
- •Значения элементокоэффициентов Кэ для деталей ступенчатых валов
- •Учебно-тематический план по информатике
- •Лабораторная работа №4. Редактор формул microsoft equation 3.0
- •628400, Г. Омск, ул. Мира, д.25, тел.(3282) 24-11-97
- •Уважаемый ________!
- •План выпуска продукции по цехам
- •Расход материалов по каждому виду продукции
- •Потребности предприятия в материалах
- •Сводная ведомость результатов экзаменационной сессии
- •Ведомость на выплату стипендии
- •Результаты выборов в Государственную Думу рф в 2007 году
- •Критерии оценки презентации
- •Некоторые классы объектов языка программирования Visual Basic for Application
- •InsertUserForm…
- •ViewTools…
- •Контрольные вопросы
- •Библиографический список
- •Содержание
- •Приложение 1 Интегрированная среда программирования
- •Visual Basic
- •Стандартные элементы управления Visaul basic
- •Управляющие структуры
- •Организация пользовательского интерфейса. Диалоговые окна
- •Формы как пользовательские окна диалога
- •Редактор кода
- •Приложение 2 примеры макросов для приложений microsoft ofice1
Управляющие структуры
Все языки программирования (высокого уровня и ассемблерные) имеют управляющие структуры, позволяющие изменять порядок выполнения, перечисленных в программном коде процедуры или функции, команд.
Управляющие структуры VB функционально эквивалентны подобным структурам в языке программирования Бейсик, за исключение For-EachNext.
Ниже перечислены основные управляющие структуры VB:
If-Then-Else Выполняет группу операторов, если соблюдено некоторое условие.
Select Case В зависимости от значения некоторой переменной или результата проверки условия выполняет одну из нескольких возможных групп операторов.
GoTo Выполняет изменение порядка выполнения операторов без проверки какого-либо условия.
For-Next Выполняет группу операторов заданное число раз, известное до начала выполнения цикла.
While-Wend Выполняет группу операторов, пока соблюдается некоторое условие.
Do-Loop Выполняет группу операторов, пока соблюдается или не соблюдается некоторое условие.
For-Each-Next Выполняет действие над каждым объектом семейства или элементом массива.
Exit Выполняет выход из цикла, а также из процедуры или функции.
Структура принятия решения If-Then-Else. Условный оператор If-Then-Else изменяет порядок выполнения программы в зависимости от результатов проверки некоторого условия и дает возможность выбирать из двух альтернативных ветвей кода процедуры на основе оценки того, является ли указанное условие равным True. Синтаксическая конструкция данного оператора имеет две формы:
безальтернативную, содержащую два типа:
линейный: If <условие> Then <выражение>
блочный: If <условие> Then
Блок_операторов
End If
альтернативную, содержащую также два типа:
линейный: If <условие> Then <выражение_1> Else <выражение_2>
блочный: If <условие> Then
Блок_операторов_1
Else
Блок_операторов_2
End If
Дополнительное условие ElseIf. Средствами структуры принятия решения If-Then-Else можно организовать выполнение операторов в зависимости от соблюдения определенного условия. Рассмотрим другой вариант ее использования, на этот раз с ключевым словом ElseIf. Данная конструкция If...Then...ElseIf с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False. Синтаксис оператора, определяющего несколько групп операторов, из которых в зависимости от соблюдения условия должна быть выполнена только одна:
If <условие_1> Then
Блок_операторов_1
ElseIf <условие_2> Then
Блок_операторов_2
Else
Блок_операторов_n
End If
Управляющая структура Select Case. Структура Select Case позволяет в зависимости от значения переменной или выражения выполнить один из нескольких фрагментов программы. Ее действие подобно действию структуры If-Then-Else, в которой условие переопределяется ключевым словом Elself. Структура Select Case работает с единственным оцениваемым выражением, которое проверяется однажды, наверху структуры. Затем Visual Basic сравнивает результат этого выражения со значениями для каждого Case структуры. Если встречается совпадение, выполняется группа операторов, ассоциированных с этим Case.
Синтаксис этого оператора следующий:
Select Case <оцениваемое_выражение>
Case <список_выражений_1>
Блок_операторов_1
Case <cписок_выражений_2>
Блок_операторов_2
. . .
Case <список_выражений_n>
Блок_операторов_n
End Select
Операторы передачи управления. Операторы передачи управления применяются в программе для реализации безусловных алгоритмических конструкций. Они выполняют переход с одного участка программы на другой без проверки какого-либо условия. Оператор безусловного перехода имеет следующий вид:
GoTo <идентификатор>,
где GoTo – ключевое слово, идентификатор – одна из меток программы.
Метка помещается слева от программного оператора и отделяется от него двоеточием.
Управляющая структура For-Next. Данная структура позволяет выполнять несколько команд заданное число раз. Синтаксис цикла For-Next следующий:
For <СчетчикЦикла> = <НачальноеЗначение> To _
<КонечноеЗначение> [Step Шаг]
Блок операторов
[Exit For]
Next <[СчетчикЦикла]>
Параметры СчетчикЦикла, НачальноеЗначение, КонечноеЗначение, Шаг – числовые. Если ключевое слово Step отсутствует, то значение шага равно единице.
Управляющая структура While-Wend. Действие этой структуры подобно действию For-Next, но группа операторов выполняется не заданное число раз, а до соблюдения определенного условия. Синтаксис данной структуры следующий:
While <условие>
<блок операторов>
Wend
Управляющая структура Do-Loop. Рассматриваемая структура похожа на структуру While-Wend, однако дополнительно обладает двумя важными особенностями. Во-первых, условие завершения цикла Do-Loop можно задавать не только в его начале, но и в конце.
Условие в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Во-вторых, условие можно сделать критерием как выполнения цикла Do-Loop, так и его завершения. Последняя возможность в цикле While-Wend также доступна – чтобы цикл выполнялся, пока не соблюдено некоторое условие, его надо указать в структуре While с логическим оператором Not.
В Visual Basic оператор цикла Do-Loop имеет две разновидности Do While … Loop и Do Until … Loop.
Циклы Do While/Until имеют следующий синтаксис:
Do While / Until <условие>
<блок операторов>
[Exit Do]
Loop
или
Do
<блок операторов>
[Exit Do]
Loop While / Until <условие>
Управляющая структура For-Each-Next. Это самый мощный цикл Visual Basic For-Each-Next. Аналогичные структуры в других языках программирования встречаются очень редко. Структура For-Еach-Next предназначена для выполнения одной и той же группы действий над каждым объектом семейства или элементом массива. Это особенно выгодно, если точно не известно, сколько элементов содержит коллекция. Синтаксис оператора For-Each-Next следующий:
For Each <элемент> In <коллекция>
<блок операторов>
Next <элемент>
Оператор Exit. С помощью этого оператора осуществляется выход из процедуры или функции. А также в случаях, когда необходимо прервать выполнение цикла до его завершения.
Команда Exit завершает выполнение цикла и передает управление следующей за циклом конструкции. Синтаксис этого оператора внутри цикла For выглядит так:
Exit For.
Внутри цикла Do синтаксис оператора Exit Do:
For <СчетчикЦикла> = <НачальноеЗначение> To
<КонечноеЗначение> [Step Шаг]
Блок операторов_1
[Exit For]
Блок операторов_2
Next [СчетчикЦикла]
Do [{While / Until} <условие>]
Блок операторов_1
[Exit Do]
Блок операторов_2
Loop [{While / Until} <условие>]
Например:
For nCounter=100 To 1 Step –10
nDecades(nCounter) = nCounter * 2
If nDecades(nCounter) > 20 Then Exit For
Next
Оператор Exit служит также для выхода из процедур Sub и Function.
Синтаксис операторов в этом случае соответственно Exit Sub и Exit Function.
Эти операторы могут находиться в любом месте тела процедуры. Они используются и в том случае, когда процедура выполнила нужные действия и из нее необходимо выйти.