Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по VBasic.doc
Скачиваний:
10
Добавлен:
17.09.2019
Размер:
1.16 Mб
Скачать

Урок 18

Цель урока. Дальнейшее изучение циклических алгоритмов. Научить студентов использовать циклы Do для выполнения операторов при определенных условиях, вложенные циклы для выполнения сложных задач.

Циклы с условием

При программировании повторяющихся действий не всегда известно заранее, сколько же раз их надо повторить. В таких случаях применяют цикл с условием.

Цикл с условием – многострочный оператор, первая строка которого начинается с ключевого слова Do (выполнить), а последняя строка начинается с ключевого слова Loop (петля). Он выполняется до тех пор, пока указанное в цикле условие не примет значение True(истина) или наоборот False(ложь).

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

Этот оператор имеет 4 различные формы.

Форма 1.

Do While УсловноеВыражение

…….

……

Loop

Повторяющиеся операторы выполняются, пока значение

УсловногоВыражения = TRUE

Как только оно станет = FALSE,

цикл завершается.

Если УсловноеВыражение изначально = FALSE, то цикл не выполняется ни разу.

Пример1:

Do While Img1.Left < Form1.Width Картинка движется по форме,

Img1.Left = Img1.Left +1 пока не доходит до правого края формы

Loop

Форма 2.

Do Until УсловноеВыражение

…….

……

Loop

Повторяющиеся операторы выполняются, пока значение

УсловногоВыражения = FALSE.

Как только оно станет = TRUE,

цикл завершается.

Если УсловноеВыражение изначально = FALSE, то цикл не выполняется ни разу.

Пример2:

Do Until Img1.Left > Form1.Width Картинка движется по форме,

Img1.Left = Img1.Left +1 пока не доходит до правого края формы

Loop

Задание1. Создайте проект, в котором при запуске спрашивается при помощи Окна Ввода пароль, выход из цикла происходит при правильном вводе.

В операторе DO предусмотрена возможность для экстренного выхода из цикла, когда необходимо прервать цикл, независимо от условия. Это оператор Exit Do.

Задание2. В предыдущем задании предусмотрите экстренный выход из цикла и завершение программы, если в Окне ввода была нажата кнопка Cancel. Функция InputBox возвращает пустую строчку, если была кнопка Cancel.

Существуют еще две формы оператора DO. Они аналогичны двум первым, но проверка условия осуществляется не до, а после выполнения операторов тела цикла. Значит, тело цикла обязательно хоть один раз будет выполнено.

Форма 3.

Do

…….

……

Loop While УсловноеВыражение

Повторяющиеся операторы выполняются, пока значение

УсловногоВыражения = TRUE

Как только оно станет = FALSE,

цикл завершается.

Если УсловноеВыражение изначально = TRUE, то цикл выполняется 1 раз.

Форма 4.

Do

…….

……

Loop Until УсловноеВыражение

Повторяющиеся операторы выполняются, пока значение

УсловногоВыражения = FALSE.

Как только оно станет = TRUE,

цикл завершается.

Если УсловноеВыражение изначально = TRUE, то цикл выполняется 1 раз.

Задание3. Создайте проект, который подсчитывает среднее арифметическое вводимых чисел (количество чисел неизвестно). На форме должна быть командная кнопка и два текстовых окна, где отображаются массив вводимых чисел и их среднее значение. Ввод чисел продолжается, пока не нажата кнопка Cancel.