Пример решения экономической задачи с разветвлением

Лабораторная работа №3

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

Цель: приобрести умения и навыки создания приложений на базе разветвляющихся алгоритмов.

Назначение: научиться создавать проекты для разветвляющихся процессов. Полученные умения позволят лучше понять сущность разветвляющихся процессов как при решении задач на компьютере, так и в повседневной профессиональной деятельности.

Общие рекомендации

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

Для организации разветвляющегося вычислительного процесса в системах программирования VBA или VB применяются условные операторы и оператор выбора.

В рассматриваемых языках программирования применяются три формы условных операторов – однострочная, блочная простая и блочная расширенная.

Однострочная форма используется в простейших случаях, когда в одной или в каждой из двух ветвей имеется не более одного оператора. В этом случае фрагмент алгоритма решения этой задачи имеет вид, представленный на рис 3.1.

               
   
 
 
Оператор 1
 
Оператор 2
 
   

 


Рис. 3.1. Блок-схема алгоритма однострочной формы разветвления

Синтаксис оператора разветвления для рассмотренного случая имеет следующий вид:

If <Условие> Then <Оператор1> [Else <Оператор2>]

 

Примечание: Следует обратить внимание на то, что в этом случае нет операции закрытия разветвления оператором End If.

Если при разветвлении на две ветви в каждой ветви разветвляющегося вычислительного процесса нужно выполнить несколько действий (использовать несколько операторов), то используют простую блочную форму, фрагмент алгоритма которого представлен на рис 3.2.

 
 

 


Рис. 3.2. Блок-схема фрагмента алгоритма
блочной формы разветвления
.

 

Синтаксис оператора разветвления для рассмотренного случая имеет следующий вид:

 

If <Условие> Then

<Оператор1>

<Оператор2>

<ОператорМ>

[Else

<ОператорA>

<ОператорB>

<ОператорN>]

End If

 

Каждый оператор после слов Then и Else необходимо записывать в отдельной строке. Если по каким-либо причинам возникает необходимость записать несколько операторов в одной стоке, то они должны быть разделены символом «:» (двоеточие).

В блочной форме оператор разветвления, как и в однострочной, может иметь сокращенную форму, в которой конструкция Else отсутствует.

Расширенная блочная форма оператора разветвления используется в случаях, когда необходимо организовать более двух ветвей вычислений (на схеме показано разветвление на четыре ветви).

 
 

 


и т. д.

Рис. 3.3. Блок-схема фрагмента алгоритма
блочной расширенной формы разветвления

 

 

Синтаксис такого оператора имеет следующий вид:

If <Условие1> Then

<Оператор1>

<Оператор2>

<ОператорM>

ElseIf <Условие2> Then

<ОператорA>

<ОператорB>

...

<ОператорN>

[Else

<ОператорI

<ОператорII

<ОператорK>]

End If

 

Многоточие после конструкции ElseIf обозначают, что эта конструкция может повторяться несколько раз для разных условий.

Разветвление в программном коде, кроме оператора IfThenElseEnd If, можно организовать с применением функцииIIf, которая имеет следующий синтаксис:

 

Znach = IIf(<Условие>, Оп1, Оп2)

 

Эта функция возвращает значение Znach, тип которого определяется типом данных, формируемых операндами Оп1 и Оп2.

С помощью функции IIf можно организовать разветвление больше, чем на две ветви. Для этого необходимо использовать вложения функции в функцию следующим образом:

 

Znach=IIf(<Условие1>, Оп1, IIf(<Условие2>,Оп2,Оп3))

 

Количество таких вложений определяется условиями задачи.

Разветвляющийся вычислительный процесс можно реализовать в VBA также с помощью оператора выбора Select Case. При этом количество ветвей может быть довольно большим. Для такого случая стандартом на графическое представление алгоритмов предусмотрена конструкция, представленная на рис. 3.4.

 


Рис. 3.4. Блок-схема фрагмента алгоритма,
обеспечивающего несколько выходов

 

Каждый выход из блока в этом случае должен сопровождаться соответствующими значениями условий, определяющими логический путь в общей схеме алгоритма.

Синтаксис оператораSelect Case имеет следующий вид:

 

Select Case <Выражение>

Case <1-ое значение выражения>

Группа операторов 1

Case <2-ое значение выражения>

Группа операторов 2

. . .

Case Else

Группа операторов N

End Select,

 

где <Выражение> может быть выражением любого типа (символьного, целого, вещественного, строкового и т. д.).

<Значение выражения> в операторе Case может быть:

а) конкретным значением:

Case 1: Оп.1

Case 2, 3: Оп.2

б) диапазоном значений:

Case 1 To 15 Оп.1

Case 16 To 31 Оп.2

в) с применением операторов отношений (=, <, >, <=, >=, <>)

Case Is < 15 Оп.1

Case Is >=15 Оп.2

Преимуществом такого способа организации разветвлений является его наглядность, информативность и компактность самого оператора.

 

Пример решения экономической задачи с разветвлением

 

Постановка задачи

Разработать проект кассового аппарата супермаркета. В проекте предусмотреть организацию следующих скидок:

– на объем покупки;

– на тип покупателя;

– на день недели.