Цель: научиться составлять циклические алгоритмы и программы используя, оператор цикла с предусловием.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ:
Оператор цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может ни разу не выполниться. В языке программирования Visual Basic, цикл с предварительным условием может быть организован четырьмя способами: с помощью операторов условного и безусловного перехода, с помощью операторов цикла DO WHILE …LOOP, DO UNTIL…LOOP, WHILE…WEND. Оператор WHILE…WEND полностью соответствует оператору DO WHILE …LOOP, за исключением ключевых слов.
Рассмотримосновные форматы перечисленных выше операторов цикла с предварительным условием. Первый оператор имеет следующий формат:
DO WHILE <условие>
<тело цикла>
Условие, расположенное после ключевого слова WHILE представляет собой логическое выражение. Его значение вычисляется при каждом выполнении цикла. Пока условие соблюдается, (логическое выражение является истинным – True), выполняются операторы, составляющие тело цикла. Как только логическое выражение станет ложным, произойдет выход из цикла и управление будет передано на оператор, расположенный после ключевого слова LOOP.
В качестве примера рассмотримпрограмму, вычисляющую значения функции на промежутке [a,b] c шагом h. Пусть функция имеет следующий вид:
x2, y=−x3, 3x, |
x<−1 −1≤x<1 . x≥1 |
Составим блок-схему алгоритма и программу решения данной задачи. Переменной - параметру цикла должно быть присвоено значение до начала работы цикла. Также, данная переменная должна изменять свое значение (в большую или меньшую сторону, в зависимости от условия), чтобы не произошло «зацикливание» программы. Форма приложения изображена на рисунке 17.
Рис. 17. Изображение формы со списками.
Блок – схема алгоритма будет иметь следующий вид:
В приведенной выше блок-схеме, жирным подчеркнутым курсивом отмечены блоки, отвечающие за организацию цикла с предусловием. Программный код решения задачи будет иметь следующий вид:
Private Sub Command1_Click()
Dim a As Single, b As Single, h As Single Dim x As Single, y As Single a = CSng(Text1.Text) b = CSng(Text2.Text) h = CSng(Text3.Text)
x = a
Do While x <= b
If x < -1 Then
y = x * x
y = 3 * x
Else y = -x ^ 3
List1.AddItem (CStr(x)) List2.AddItem (CStr(y))
x = x + h
Private Sub Command2_Click()
Рассмотренная выше задача может быть решена вторым способом. Блок – схема и рисунок формы остаются без изменения. Используемый здесь оператор цикла с предусловием будет иметь следующий формат: DO UNTIL <условие>
<тело цикла>
Данный оператор работает следующим образом. Пока <условие>, расположенное после ключевого слова UNTIL не соблюдается – выполняются операторы, составляющие тело цикла. Как только логическое выражение, записанное в условии станет истинным, то есть будет соблюдаться – произойдет выход из цикла и управление будет передано на следующий оператор, находящийся после ключевого слова LOOP. Программный код приложения, использующего оператор DO UNTIL…LOOP имеет вид:
Private Sub Command1_Click()
Dim a As Single, b As Single, h As Single Dim x As Single, y As Single a = CSng(Text1.Text) b = CSng(Text2.Text) h = CSng(Text3.Text)
x = a
Do Until x > b
If x < -1 Then y = x * x
y = 3 * x
Else y = -x ^ 3
List1.AddItem (CStr(x)) List2.AddItem (CStr(y))
x = x + h
Private Sub Command2_Click()
Оператор WHILE…WEND имеет следующий формат:
WHILE <условие>
<тело цикла>
Данный оператор работает следующим образом. При соблюдении условия, расположенного после ключевого слова WHILE, выполняется тело цикла. Как только условие перестанет соблюдаться (станет ложным), произойдет выход из цикла и управление будет передано на оператор, находящийся после ключевого слова WEND. Проиллюстрируем работу данного оператора на примерах. Программный код представленной выше задачи при помощи оператора WHILE…WEND будет иметь вид:
Private Sub Command1_Click()
Dim a As Single, b As Single, h As Single Dim x As Single, y As Single a = CSng(Text1.Text) b = CSng(Text2.Text) h = CSng(Text3.Text)
x = a
While x <= b
If x < -1 Then y = x * x
y = 3 * x
Else y = -x ^ 3
List1.AddItem (CStr(x)) List2.AddItem (CStr(y))
x = x + h
Private Sub Command2_Click()
Теперь рассмотрим пример вычисления факториала целого положительного числа N. Факториал числа N представляет собой произведение целых положительных чисел с шагом единица от единицы до N и обозначается следующим образом:
N N
N!= ∏i =1⋅2⋅...⋅ N , где символ ∏i означает произведение целых чисел
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.