Лаб_3_Развилка_VBA
.doc
Лабораторная работа №3
Алгоритмизация и программирование разветвляющихся вычислительных процессов
Цель:
Изучить процесс построения алгоритмов разветвляющейся структуры. Научиться программировать разветвляющиеся алгоритмы с помощью операторов If…Then…Else
Результат обучения:
После успешного завершения занятия пользователь должен:
-
уметь составлять алгоритмы разветвляющейся структуры;
-
знать синтаксис операторов If…Then…Else;
-
уметь записывать алгоритмы разветвляющейся структуры на языке VBA;
Изучение правил построения алгоритма разветвляющейся структуры и записи программы с использованием оператора If…Then…Else.
Алгоритм решения задачи, как правило, представляет собой совокупность стандартных алгоритмических структур. Одной из таких структур является развилка (полная и неполная). Разветвление применяется, когда в зависимости от условия нужно выполнить либо одно, либо другое действие.
Для программирования проверки условия и выбора действия в зависимости от условия используются условные операторы.
Условный оператор:
If <логическое выражение> Then
<Процесс 1>
Else
<Процесс 2>
End If
Если логическое выражение имеет значение True, то выполняется <Процесс 1>. Если логическое выражение имеет значение False, то выполняется < Процесс 2>.
Под обозначением < Процесс 1> и < Процесс 2> понимается последовательность операторов языка VBA.
Условный оператор может использоваться без части Else. В этом случае реализуется структура «развилка неполная».
If <логическое выражение> Then
< Процесс >
End If
Если логическое выражение имеет значение True, то выполняется оператор, стоящий за служебным словом Then, иначе осуществляется переход к оператору, следующему за условным оператором.
Пример 1.
Условие задачи:
Даны числа X, Y, Z. Определить, что больше: сумма этих чисел или их произведение.
Схема алгоритма:
Интерфейс программы |
Программа |
Private Sub CommandButton1_Click() Dim x As Single, y As Single, z As Single Dim s As Single, p As Single x = Val(TextBox1.Text) ‘Ввод исходной информации y = Val(TextBox2.Text) z = Val(TextBox3.Text) p = x * y * z s = x + y + z If s > p Then ‘Оператор, исполняемый в случае, если ‘логическое выражение имеет значение True Label4.Caption = "Сумма больше" Else ‘Оператор, исполняемый в случае, если ‘логическое выражение имеет значение True Label4.Caption = "Произведение больше" End If End Sub |
Пример 2.
Условие задачи:
Даны два числа X и Y. Вычислить квадратные корни данных чисел, если оба значения больше нуля, и оставить числа без изменения, если это не так.
Интерфейс программы
Схема алгоритма |
Программа |
|
Private Sub CommandButton1_Click() Dim x As Single, y As Single x = Val(TextBox1.Text) y = Val(TextBox2.Text) If (x > 0) And (y > 0) Then x = Sqr(x)’ Развилка неполная y = Sqr(y) End If Label5.Caption = "X=" + Str(x) Label4.Caption = "Y=" + Str(y) End Sub |
Самостоятельная работа
Задание:
Составить схему алгоритма, написать и отладить программу в соответствии с вариантом. Не забывайте о комментариях!
№ варианта |
Задача |
1 |
Даны X, Y, Z. Получить минимальное из этих чисел. |
2 |
Даны три числа. Возвести в квадрат те из них, значения которых неотрицательны. |
3 |
Заданы площади круга R и квадрата S. Определить, поместится ли квадрат в круге.. |
4 |
Определить, является возраст вступающего в брак подходящим для выбранной кандидатуры, используя следующее соображение: возраст девушки равен половине возраста мужчины плюс 7. |
5 |
Если сумма трех попарно различных чисел X, Y, Z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае оставить числа неизменными. |
6 |
Даны два числа X, Y. Меньшее заменить суммой этих чисел, большее — их разностью. |
7 |
Даны два числа X, Y. Определить , входит ли большее число в интервал [10; 20]. |
8 |
Дано число Х. Вывести сообщение: число положительное, отрицательное или ноль. |
9 |
На плоскости расположена окружность радиуса R с центром в начале координат. Заданы координаты точки Х, Y. Определить лежит ли она на окружности. Примечание: уравнение окружности — R2 = X2 + Y2 |
10 |
Создать программу расчета площади кольца. Даны радиусы внешней и внутренней окружностей. Организовать проверку радиусов окружностей. Радиус внешней окружности должен быть больше, чем радиус внутренней окружности. Если это условие не выполняется, то необходимо вывести соответствующее сообщение. |
11 |
Создать программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется в том случае, если сумма покупки больше 500 руб., в 5% — если сумма больше 1000 рублей. |
12 |
Написать программу проверки знания начала второй мировой войны. В случае неверного ответа пользователя программа должна выводить правильный ответ. |
13 |
Написать программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: рост (в сантиметрах) – 100. |
14 |
Написать программу, которая сравнивает два числа, введенных с клавиатуры. Программа должна указать, какое число больше, или, если числа равны, вывести соответствующее сообщение. |
15 |
Написать программу, которая проверяет, является ли четным введенное пользователем целое число. |
Контрольные вопросы
-
Как отображается логический блок в схемах алгоритмов?
-
В чем заключается различие между полной и неполной развилкой?
-
Поясните работу условного оператора.
-
Для чего используют логические выражения?
-
Какие символы отношений между величинами Вы знаете?
-
Какие логические операции Вы знаете?
-
Дайте определения логической операции NOT.
-
Дайте определения логической операции AND.
-
Дайте определения логической операции OR.
-
Каков приоритет логических операций?