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

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

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

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

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

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

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

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

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

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

               
    Пример решения экономической задачи с разветвлением - student2.ru
 
 
Оператор 1
 
Оператор 2
 
    Пример решения экономической задачи с разветвлением - student2.ru

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

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

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

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

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

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

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

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

If <Условие> Then

<Оператор1>

<Оператор2>

<ОператорМ>

[Else

<ОператорA>

<ОператорB>

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

End If

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

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

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

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

и т. д.

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

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

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

<Оператор1>

<Оператор2>

<ОператорM>

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

<ОператорA>

<ОператорB>

...

<ОператорN>

[Else

<ОператорI

<ОператорII

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

End If

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

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

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

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

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

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

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

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

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

Рис. 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

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

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

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

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

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

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

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

Наши рекомендации