- •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, но имеет более прозрачный вид, т.к. реализует схему алгоритма разветвляющегося вычислительного процесса с несколькими выходами.
