Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на BASIC / Visual Basic / Visual Basic for Applications. Учебный практикум.doc
Скачиваний:
172
Добавлен:
02.05.2014
Размер:
827.9 Кб
Скачать

3.3. Практическое занятие №3. Программирование ветвлений

Задача.

Брокер получает процент от суммы сделки. Для сделок, сумма которых составляет меньше 150т.р. вознаграждение брокера составит 5%, если сумма договора составляет от 150 т.р. до 500 т.р. – 4,5%, а для сделок, сумма которых составляет больше 500 т.р. – 3,5%. Составить программу для расчёта вознаграждения брокера.

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

Прежде чем рассматривать алгоритмы ветвления, объясним понятие логического выражения. Это выражения неарифметического типа, такие выражения называют также условными.

Рассмотрим операции сравнения:

Операция

Описания операции

>

Больше

> =

Больше или равно

<

Меньше

< =

Меньше или равно

< >

Не равно

=

Равенство

Наиболее простым шагом в рассмотрении нелинейных алгоритмов является оператор условного перехода. Данный оператор имеет две формы синтаксиса: упрощённая однострочная форма и более сложная ступенчатая или многострочная.

Однострочная формаимеет следующий синтаксис:

If УсловноеВыражениеThen Оператор1 [ElseОператор2]

Многострочная формасинтаксиса более сложная:

If УсловноеВыражениеThen

ПоследовательностьОператоров1

[Else

ПоследовательностьОператоров2]

End if

На схеме показаны основные конструкции условного перехода.

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

Такая ступенчатая схема в программном коде выглядит так:

IfУсловие1Then

СписокОператоров1

ElseifУсловие2Then

СписокОператоров2

ElseifУсловие3Then

СписокОператоров3

……………………..

End if

В такой многоступенчатой схеме было применено ключевое слово Elseif, которое переводится какИначеЕсли. Заметим, что вся эта многоступенчатая схема заканчивается только однимEnd if.

Составим блок-схему для нашей задачи:

    • Откройте приложение MS Excel.

    • Выполните команду СервисàМакросРедактор Visual Basicили нажмите <Alt+F11>.

    • Добавьте форму (команда Insert UserForm)

    • Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)

    • Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления:Label(Метка),TextBox(Текстовое поле),CommandButton(Командная кнопка).

    • В окне Properties(Свойства) для каждого объекта управления установить свойства, приведённые в таблице 2.

Таблица 2.

Элемент управления

Свойства

Значения

UserForm

Caption

Программирование ветвлений

Label1

Caption

Вычисление вознаграждения брокера

Label2

Caption

Сумма сделки

Label3

Caption

Вознаграждение

TextBox1

Name

txtSummaSdelki

TextBox2

Name

txtNagrada

CommadButton1

Name

cmdRun

Caption

Расчёт

CommadButton2

Name

cmdClear

Caption

Очистка

    • Примерный интерфейс программы может выглядеть так:

    • Код программы:

Private Sub cmdRun_Click()

Dim S As Single

Dim P As Single

S=Val(txtSummaSdelki.Text)

If S<= 150000 Then

P=S*0.05

ElseIf S>= 500000 Then

P=S*0.03

Else

P=S*0.04

End If

txtNagrada.Text = Str(P)

End Sub

    • Сделайте расчёты для трёх случаев.

    • Удалите текстовое поле с именем «txtSummaSdelki» и в коде программы строку «S=Val(txtSummaSdelki.Text)»

    • На место удалённого объекта вставьте метку и именем «lblSummaSdelki» (обратите внимание, впереди стоит латинская буква «L» малая, а не «1 (единица)»)

    • На место удалённой строки в коде программы вставьте следующую запись:

S=InputBox(“Введите значение суммы сделки”)

lblSummaSdelki=Str(S)

В приведённой выше части кода программы использовалась функция InputBox. Данная функция предназначена для ввода данных в программу. Она имеет следующий синтаксис:

InputBox (Запрос [, Заголовок] [, По_умолчанию] [, Xpos] [Ypos] [, Справка, Раздел])

    • Сохраните файл под именем «Брокерское вознаграждение»