Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabyInf2010221.doc
Скачиваний:
31
Добавлен:
26.02.2016
Размер:
3.42 Mб
Скачать

Лабораторное занятие № 14 (1 час) Тема: «Программирование циклов»

Цель занятия: составление программ в VBA циклических алгоритмов

Задание:

  1. Изучить итеративные операторы в VBA

  2. Рассмотреть циклы со счетчиком и циклы с условием

  3. Составить программы на циклы в VBA

  4. Оформить отчет

Теоретические сведения

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

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

For I% =1 To 10

Me.Print I %

Next I %

For и Next являются зарезервированными словами и их необходимо использовать совместно. Операторы между For и Next называют телом цикла, а всю управленческую структуру циклом For-Next.

Слово For устанавливает переменную счётчик. Сначала Visual Basic присваивает переменной-счетчику начальное значение (в примере эта переменная I), затем проверяет, превышает ли счетчик конечное значение. Если нет, то Visual Basic обрабатывает все операторы между строками For и Next, затем к значению счетчика добавляется единица и цикл повторяется. Блок-схема работы определенного цикла представлена на рисунке 14.1.

Не всегда в программе требуется увеличить счетчик на единицу. Для таких целей в цикле For - Next используется зарезервированное слово Step. Например:

For I%=10 To 1 Step -1

Me.Print I%

Next I%.

Циклы, размещенные один в другом, называются вложенными. Рассмотрим пример формирования таблицы умножения.

For I% =1 To 10

Me.Print 2*I %

Next I %.

Рисунок 14.1. Блок-схема цикла For-Next

Данный фрагмент кода выдает таблицу умножения на два. Чтобы сформировать полную таблицу умножения необходимо вложить данный цикл внутрь другого.

For J% =2 To 10

For I% =1 To 10

Me.Print J%*I %

Next I %.

Me.Print

Next J %.

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

Циклы называются неопределенными, если они выполняются нефиксированное количество раз.

Синтаксис для цикла Do – Until выглядит следующим образом:

Do

Выражение Visual Basic

Loop Until проверка выполнения условия

Блок - схема для цикла Do - Until с проверкой в конце цикла представлена ан рисунке 14.2.

При работе неопределенного цикла, в цикле что-то должна меняться иначе будет бесконечный цикл. Для остановки бесконечного цикла можно использовать комбинацию клавиш Ctrl + Break или пункт End из меню Run или же просто закрыть при­ложение.

Рисунок 14.2. Блок-схема цикла Do – Until

Приведем пример. Необходимо из списка подсчитать количество слов до слова «ZZZ».

Sym=0

Do

A$ = InputBox$(«Name»)

Sym = Sym + 1

Loop Until A$ = «ZZZ»

Print «Total»; Sym

Проблема со­стоит в том, что цикл обрабатывается на один проход больше чем необходимо. Пользователь вводит первое имя, и счетчик получит значе­ние «1». Далее, поскольку проверка происходит в конце цикла, счетчик увеличится ещё на одну единицу. Поэтому, когда цикл завершается, значение счетчика становится равным двум вместо одного. Одним из решений этой проблемы является уменьшение значение счетчика на единицу после завершения его работы. Кроме того, Visual Basic для решения поставленной задачи позволяет просто передвинуть проверку условия на начало цикла.

Sym = 0

A$ = InputBox$(«Name»)

Do InputBox$ = «ZZZ»

Sym = Sym + 1

A$ =InputBox$(«Name»)

Loop

Теперь пользователь набирает первое значение перед началом цикла. После этого в программе выполняются первая проверка. Цикл начинает работу и к счетчику добавляется единица, если условие не было выполнено.

Еще одним неопределенным циклом является цикл Do While. Данный цикл отличается от рассмотренных раннее зарезервированным словом While вместо Until. Блок схема для цикла Do -While с проверкой условия в начале цикла представлена на рисунке 14.3.

Рисунок 14.3. Блок-схема цикла Do – While

Любой цикл Do - Until легко превратить в цикл Do -While изменив логическое выражение на противоположное. Представленные ниже выражения работают одинаковым образом.

Do Do

. . . . . .

Loop Until x$<> « » Loop While x$= « ».

Кроме того, в выражении можно использовать условия And, Or, Not. Например, предположим, что необходимо продолжить работу цикла до тех пор, пока число больше нуля и поле ввода пустое.

Do While Number>0 And Text1.Text= « ».

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