
- •5. Проектирование разветвляющихся вычислительных процессов
- •5.1. Условный оператор
- •5.2. Проектирование приложения, реализующего разветвляющийся вычислительный процесс
- •Используемые переменные
- •5.2.5. Интерфейс с пользователем
- •5.2.6. Код программы
- •5.2.7. Реализация проекта
- •5.2.8. Анализ проекта
- •5.2.9. Выполнение программы и анализ полученных результатов
- •5.4. Пример использования оператора выбора
- •6. Проектирование приложений с циклами
- •6.1. Назначение операторов цикла
- •6.2. Условные циклы
- •6.3. Проектирование приложения на базе условного цикла с верхним окончанием
- •Используемые переменные
- •6.3.5. Интерфейс с пользователем
- •6.3.6. Код программы
- •6.3.7. Анализ проекта
- •6.3.8. Выполнение программы и анализ полученных результатов
- •6.4. Проектирование приложения с использованием условного цикла с нижним окончанием
- •Используемые переменные
- •6.4.5. Интерфейс с пользователем
- •6.4.6. Код программы
- •6.4.7. Анализ проекта
- •6.4.8. Выполнение программы и анализ полученных результатов
- •Планируемые расходы на ремонт офиса
- •6.5. Цикл со счетчиком
- •6.6. Проектирование приложения с использованием цикла со счетчиком
- •6.6.7. Реализация проекта
- •6.6.8. Анализ проекта
- •6.6.9. Выполнение программы и анализ полученных результатов
- •Остаток товаров на 17.09.01
- •7. Массивы данных
- •7.1. Общие сведения о сложных типах
- •Стоимость товаров
- •7.2. Описание и обращение к массивам
- •7.3. Динамические массивы
- •7.4. Использование массивов при решении экономической задачи
- •Используемые данные
- •7.4.5. Интерфейс с пользователем
- •7.4.6. Код программы
- •7.4.7. Реализация проекта
- •7.4.8. Анализ проекта
- •7.4.9. Выполнение программы и анализ полученных результатов
- •Прайс-лист
- •8. Массивы элементов управления
- •8.1. Назначение и создание массивов элементов управления
- •"Группа переключателей"
- •8.2.4. Структура данных
- •Используемые данные
- •8.2.5. Интерфейс с пользователем
- •8.2.6. Код программы
- •8.2.7. Реализация проекта
- •8.2.8. Анализ проекта
- •8.2.9. Выполнение программы и анализ полученных результатов
- •9. Пользовательский тип данных
- •9.1. Определение и обращение
- •9.2. Оператор присоединения With
- •10. Файлы
- •10.1. Назначение файлов
- •10.2. Операции с файлами
- •10.3. Режимы доступа
- •10.4. Файлы с произвольным доступом
- •10.5. Проектирование приложения с файлами
- •10.5.1. Постановка задачи
- •10.5.2. Экономико-математическая модель
- •10.5.3. Алгоритм решения задачи
- •10.5.4. Структура данных
- •10.5.5. Интерфейс с пользователем
- •10.5.6. Код проекта
- •10.5.7. Реализация проекта
- •10.5.8. Анализ проекта
- •9.5.9. Выполнение программы и анализ полученных результатов
- •Данные по заказу на крепежные изделия
- •11. Процедуры и функции
- •11.1. Назначение процедур и их виды
- •11.2. Описание процедур
- •11.3 Вызов процедуры
- •11.4. Функции
- •11.5. Использование процедур и функций при решении экономической задачи
- •11.5.1. Код проекта
- •11.5.2. Реализация проекта
5.2.9. Выполнение программы и анализ полученных результатов
На рис. 5.5 приведен результат решения задачи при следующих значениях показателя:
план:10,
факт:12,
т.е. план перевыполнен на 20%, что отражено в области вывода результата.
Рис. 5.5. Результат вычисления процента выполнения
производственной программы
Для проверки работоспособности программы по другим ветвям нужно произвести вычисления по данным, когда факт меньше плана, а также равен ему. Исходные данные и соответствующие значения результата приведены в табл. 5.3
Таблица 5.3
Данные проверки работоспособности
программы
План |
Факт |
Результат |
10 |
12 |
План перевыполнен на 20% |
10 |
9 |
План недовыполнен на 10% |
10 |
10 |
План выполнен на 100% |
После произведенной проверки можно использовать разработанное приложение для реальных данных при анализе выполнения производственной программы для принятия соответствующих управленческих решений.
5.3. Оператор выбора
Разветвляющийся вычислительный процесс может быть реализован в Visual Basic также с помощью оператора выбора, который имеет вид:
Select Case <Выражение>
[Case <Список_сравнения1>
<Операторы1>]
...
[Case Else
<ОператорыN>]
End Select
где <Выражение> может быть выражением любого типа (целого, вещественного, строкового и т.д.).
<Список_сравнения> состоит из элементов сравнения, разделенных запятой.
Элемент сравнения может быть записан в одном из трех видов:
выражение, представляющее одно значение для проверки на совпадение (например, 3, х+7);
конструкция <Выражение1> To <Выражение2> представляет интервал значений для проверки попадания в диапазон (например, 1 To 5);
конструкция Is <Операция сравнения> <Выражение> представляет значения, удовлетворяющие условию, задаваемому сравнением (например, Is > 32).
Действие оператора выбора заключается в следующем. Вначале вычисляется выражение, стоящее после ключевых слов Select Case. Затем ищется в списках первое сравнение, которому удовлетворяет полученное значение. Если такое сравнение находится, то выполняются операторы, стоящие в соответствующем блоке Case и управление передается на конец оператора. Если же значение выражения не удовлетворяется ни в одном списке, а имеется конструкция Case Else, то выполняются содержащиеся в ней операторы, в противном случае ни один оператор, содержащийся в операторе выбора, не выполняется.
Таким образом, оператор выбора очень близок по действию к условному оператору и если выражение, стоящее после слов Select Case булевского типа, то полностью с ним совпадает. Оператор выбора целесообразно использовать в тех случаях, когда при разветвлении более двух ветвей, т.е. в сложных разветвляющихся процессах.
5.4. Пример использования оператора выбора
Рассмотренную при изучении условного оператора задачу об определении процента отклонения можно решить, используя оператор Select Case.
Для этого в коде программы во фрагменте вычисления процента отклонения от плана нужно заменить оператор If...End If следующим оператором:
Select Case sngПроцент
Case Is > 100
sngОтклонение = sngПроцент - 100
strОтклонение = "План перевыполнен на " & _
Format(sngОтклонение, "0.00") & "%"
Case Is < 100
sngОтклонение = 100 - sngПроцент
strОтклонение = "План недовыполнен на " & _
Format(sngОтклонение, "0.00") & "%"
Case Else
strОтклонение = "План выполнен на 100%"
End Select
В этом случае программа будет работать точно также как и при использовании оператора If, но имеет более прозрачный вид, т.к. реализует схему алгоритма разветвляющегося вычислительного процесса с несколькими выходами.