Лабораторная работа №5 Программирование алгоритмов циклической структуры. Простые циклы
Цель:
Изучить процесс построения алгоритмов циклической структуры. Научиться составлять программы, организующие циклические вычисления на языке VBA.
Результат обучения:
-
уметь составлять алгоритмы циклической структуры;
-
знать синтаксис операторов Do … Loop, For … Next;
-
уметь использовать эти операторы при организации циклов в программах.
Изучение организации циклических вычислений на примерах
Цикл — типичная структура, характерная для программ, реализуемых на ЭВМ. Возможны три способа организации циклических структур алгоритмов:
Тело цикла — это повторяющаяся последовательность действий. Логический блок предназначен для управления циклом. Логический блок определяет количество проходов в цикле.
В цикле «До» условие окончания цикла расположено после тела цикла. Это означает, что тело цикла выполниться хотя бы один раз. В цикле «Пока» условие окончания цикла расположено до тела цикла, поэтому возможны варианты, когда цикл не выполнится ни разу.
В Бейсик эти структуры реализуются с помощью операторов цикла.
Операторы цикла Do…Loop
Синтаксис цикла с предусловием:
Do While | Until Условие
Операторы – тело цикла
Loop
Синтаксис цикла с постусловием:
Do
Операторы – тело цикла
Loop While | Until Условие
В этих выражениях:
Do – выполнить, ключевое слово, обозначающее начало цикла;
Loop – петля, ключевое слово, означает возврат к началу цикла;
While – пока; с этим ключевым словом операторы цикла будут выполняться пока условие выполняется. При первом невыполнении условия цикл прекращается и выполняется строка кода, следующая после Loop;
Until – до, пока не. С этим ключевым словом операторы цикла будут циклически выполняться при невыполнении условия (False). При первом выполнении условия (True) цикл прекращается, и выполняется строка кода, следующая после Loop.
Условие – логическое выражение, принимающее одно из двух значений – True, если условие выполняется или False, если условие не выполняется; проверяется после каждого выполнения цикла.
Пример 1.
Условие задачи:
Написать программу табулирования функции Y = x – sin x – 0.25.
Схема алгоритма:
Переменная Х изменяется в цикле и по значению этой переменной определяется условие окончания цикла.
Разработка формы
На форму установлены три текстовых поля для ввода исходной информации: TextBox1 для Х начального, TextBox2 для Х конечного, TextBox3 для шага изменения аргумента. Вывод осуществляется в текстовое поле TextBox4. Для того чтобы в текстовом поле были представлены расчеты всех точек интервала, необходимо свойству MultiLine присвоить значение true. В этом случае можно вывести несколько строчек в текстовое поле. Результатом будет текстовая строка r. Текстовая строка r формируется в цикле:
r = r + Str(X) + “ “ + Str(Y) + VBCrLf
В этой строке суммируются строковые значения переменных Х и Y. В конце каждой строки добавляется константа vbCrLf, которая является признаком конца строки и переносит курсор на начало новой строки Образована от слов Carrifge (каретка) –Cr, Left (налево) – Lf. Т. е. каретка налево.
Программа, организующая цикл с помощью оператора цикла с предусловием условием:
Private Sub CommandButton1_Click()
Dim Xn As Single, Xk As Single, Dx As Single, r As String
Dim X As Single, Y As Single
' X — текущее значение аргумента
‘Xn — начальное значение аргумента
‘Xk — конечное значение аргумента
‘Dx — шаг изменения аргумента
‘Y — значение функции
Xn = Val(TextBox1.Text) ‘Ввод исходной информации
Xk = Val(TextBox2.Text)
Dx = Val(TextBox3.Text)
r = "" ‘Обнулили текстовую переменную
X = Xn ‘Присвоили начальное значение аргументу
Do While X <= Xk ‘Проверка условия окончания цикла расположена до начала тела цикла
‘Начало тела цикла
Y = X - Sin(X) - 0.25 ‘Рассчитали значение функции}
r = r + Str(X) + " " + Str(Y) + vbCrLf ‘Записали результат в текстовую переменную
X = X + Dx ‘Текущее значение аргумента увеличили на шаг
‘Конец тела цикла
Loop
TextBox4.Text = r ‘Вывод результата в текстовое поле
End Sub
Программа, организующая цикл с помощью оператора цикла с постусловием:
Private Sub CommandButton1_Click()
Dim Xn As Single, Xk As Single, Dx As Single, r As String
Dim X As Single, Y As Single
Xn = Val(TextBox1.Text)
Xk = Val(TextBox2.Text)
Dx = Val(TextBox3.Text)
r = ""
X = Xn
Do
Y = X - Sin(X) - 0.25
r = r + Str(X) + " " + Str(Y) + vbCrLf
X = X + Dx
Loop Until X > Xk ‘Проверка условия окончания цикла расположена после тела цикла
TextBox4.Text = r
End Sub