Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_5_Простые циклы.doc
Скачиваний:
9
Добавлен:
30.11.2018
Размер:
239.1 Кб
Скачать

8

Лабораторная работа №5 Программирование алгоритмов циклической структуры. Простые циклы

Цель:

Изучить процесс построения алгоритмов циклической структуры. Научиться составлять программы, организующие циклические вычисления на языке VBA.

Результат обучения:

  • уметь составлять алгоритмы циклической структуры;

  • знать синтаксис операторов DoLoop, ForNext;

  • уметь использовать эти операторы при организации циклов в программах.

Изучение организации циклических вычислений на примерах

Цикл — типичная структура, характерная для программ, реализуемых на ЭВМ. Возможны три способа организации циклических структур алгоритмов:

Тело цикла — это повторяющаяся последовательность действий. Логический блок предназначен для управления циклом. Логический блок определяет количество проходов в цикле.

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

В Бейсик эти структуры реализуются с помощью операторов цикла.

Операторы цикла 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