Теория. Операторы цикла.


Цикл - это одна и та же последовательность команд, повторяемая определенное число раз. Повторяющиеся операторы называются телом цикла. Visual Basic предоставляет возможность использовать два типа циклов. Если число повторений цикла известно заранее или может быть вычислено, то целесообразно использовать оператор цикла For...Next. Если же момент завершения цикла зависит от выполнения некоторого условия, то применяется оператор цикла Do...Loop.


Оператор цикла For...Next


Оператор цикла For...Next является самым старым и в тоже время основным оператором цикла, реализованным во всех языках программирования.

Синтаксис оператора:
Код: (vb)
For Счетчик = Начальное значение To Конечное значение [Step Шаг]
Тело цикла
Next Счетчик

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

Примеры организации цикла:

Инкрементный цикл с шагом 1
Код: (vb)
For i = 0 To 10
MsgBox i
Next i

Инкрементный цикл с шагом 5
Код: (vb)
For i = 0 To 10 Step 5
MsgBox i
Next i

Декрементный цикл с шагом 2
Код: (vb)
For i = 10 To 0 Step -2
MsgBox i
Next i


Оператор цикла Do...Loop


Цикл Do...Loop, уточняемый оператором While, выполняется до тех пор, пока верно условие, задаваемое в цикле. Если же конструкция цикла уточняется оператором Until, то цикл выполняется до тех пор, пока заданное условие ложно.
Синтаксис:
Код: (vb)
Do While (Until) условие
операторы
[Exit Do]
операторы
Loop

Данный тип цикла называется циклом с предусловием, т.к. сначала проверяется условие, а после, если оно верно (ложно), выполняются операторы. Этот цикл может и не выполниться ни одного раза, если условие ложно (верно) при первой же проверке.
Существует также цикл с постусловием, когда сначала выполняется тело цикла, а после проверяется условие продолжения цикла. Этот цикл в любом случае выполниться ХОТЯ БЫ ОДИН РАЗ.
Синтаксис цикла с постусловием:
Код: (vb)
Do
операторы
[Exit Do]
операторы
Loop While (Until) условие


Приложение



Компонент Флажок (CheckBox)


Назначение
Флажки - это элементы управления, которые можно отмечать (ставить "галочку"), выбирая из ряда опций одну или несколько. CheckBox может иметь два различных состояния - отмеченное и не отмеченное. Собственно, он может иметь и третье состояние. В этом случае элемент управления отображается как отмеченный, но недоступный. Установить такое состояние элемента управления можно только программно.

События
Важнейшим для флажка, как и для кнопки, является событие click.

Свойства
Единственным важным свойством элемента управления CheckBox является его значение (Value). В зависимости от того, отмечен флажок или нет.

Style Внешний вид. При graphical имеет вид выпуклой или утопленной кнопки. На которых можно размещать изображение. Standard/graphical
Value Состояние: сброшен, установлен, недоступен 0-Unchecked
1-Checked
2-Grayed


Компонент Переключатель (OptionButton)


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

События
Так же, как и для элемента управления CheckBox, для переключателей важно только одно событие - Click.

Свойства
Важнейшим свойством переключателей является свойство Value. С его помощью можно определить состояние переключателя. Это свойство может принимать значения True И False.

Value True/false


Практическая работа



Программа Флажки и Радиокнопки


* Установить 3 флажка и 2 группы радиокнопок, по 4 в каждом, компоненты изображение и этикетка.
* Одна из групп радиокнопок регулирует цвет этикетки: при нажатии радиокнопки меняется цвет этикетки (4 варианта цвета)
* Другая группа радиокнопок загружает в компонент Изображение различные изображения (рисунки или фотографии).
* Первый флажок блокирует доступ к обеим группам радиокнопок
* Второй флажок разрешает пользоваться радиокнопками цвета
* Третий флажок разрешает пользоваться радиокнопками изображениия



Задачи на цикл For...Next


На форме расположить 5 текстовых поля и кнопку "Расчет". В первое поле пользователь вносит начальное значение множества. Во второе - конечное значение множества. В третье - шаг расчета (проводите проверку при вводе шага, на кратность разницы начального и конечного значений с вводимым шагом). После нажатия кнопки "Расчет", вывести в четвертое поле сумму элементов множества, выполняющих условие: начальное значение + i*шаг, причем i = 0..n (реализовать с помощью инкрементного цикла). В пятое поле - произведение элементов множества, удовлетворяющих условию: конечное значение - i*шаг, причем i = 0..n(реализовать с помощью декрементного цикла).


Задачи на цикл Do...Loop


* Написать программу, которая будет прибавлять к заданному числу по 5 и выводить результаты подсчетов на форму, пока не получит число больше 30.
* Написать программу, которая будет допускать к 3 текстовым полям только при введении в контрольное текстовое поле вашего имени. Например так: начальная форма содержит кнопку, этикетку и текстовое поле, причем поле заблокировано. Вы щелкаете на кнопке Доступ, на этикетке возникает надпись: ,Ты кто?" и становится доступным поле ввода. Вводите имя. Если оно совпадает с тем, кому разрешен доступ, открывается 2-ая форма с 2 текстовыми полями. Запрограммируйте 3 имени, на которые ваша программа будет ругаться при блокировке доступа (например, ,А тебя вообще чтоб тут не было!") с использованием цикла Do...Loop. На другой форме в первое окно введите рост, во второе - вес, третье создайте под пароль. Доступ к этикетке сделайте только по паролю. Если отношение веса к росту 1, выведите на этикетке текст:"Порядок", если оно 2- выведите ,Больше занимайся физкультурой", если больше 2 - , Считай, что ты покойник!", если оно меньше 1 напишите ,Ветром не сдувает?".



Автор: Dusk & Never
Information
  • Posted on 31.01.2010 19:12
  • Просмотры: 593