Практическое занятие №3. Программирование ветвлений Задача. Брокер получает процент от суммы сделки. Для сделок, сумма которых составляет меньше 150т.р. вознаграждение брокера составит 5%, если сумма договора составляет от 150 т.р. до 500 т.р. – 4,5%, а для сделок, сумма которых составляет больше 500 т.р. – 3,5%. Составить программу для расчёта вознаграждения брокера. | С помощью линейных алгоритмов решаются самые примитивные задачи. Более сложные и серьезные задачи решаются с помощью более сложных алгоритмов, в которых последовательность выполнения команд зависит от выполнения или не выполнения некоторых условий. Такого рода задачи называются нелинейными. Алгоритмы в данных задачах называются алгоритмами ветвления. Прежде чем рассматривать алгоритмы ветвления, объясним понятие логического выражения. Это выражения неарифметического типа, такие выражения называют также условными. Рассмотрим операции сравнения: Операция | Описания операции | > | Больше | > = | Больше или равно | < | Меньше | < = | Меньше или равно | < > | Не равно | = | Равенство | Наиболее простым шагом в рассмотрении нелинейных алгоритмов является оператор условного перехода. Данный оператор имеет две формы синтаксиса: упрощённая однострочная форма и более сложная ступенчатая или многострочная. Однострочная форма имеет следующий синтаксис: IfУсловноеВыражение ThenОператор1[Else Оператор2] Многострочная форма синтаксиса более сложная: IfУсловноеВыражение Then ПоследовательностьОператоров1 [Else ПоследовательностьОператоров2] End if На схеме показаны основные конструкции условного перехода. Часто на практике приходится решать задачи, когда нужно проверить несколько условий. Тогда условные переходы получаются вложенными друг в друга. На блок–схеме это выглядит следующим образом  Такая ступенчатая схема в программном коде выглядит так: If Условие1 Then СписокОператоров1 Elseif Условие2 Then СписокОператоров2 Elseif Условие3 Then СписокОператоров3 …………………….. End if В такой многоступенчатой схеме было применено ключевое слово Elseif, которое переводится как ИначеЕсли. Заметим, что вся эта многоступенчатая схема заканчивается только одним End if. Составим блок-схему для нашей задачи:  è Откройте приложение MS Excel. è Выполните команду СервисàМакросàРедактор Visual Basic или нажмите <Alt+F11>. è Добавьте форму (команда Insertà UserForm) è Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm) è Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewàToolBox), следующие объекты управления: 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] [, Справка, Раздел]) è Сохраните файл под именем «Брокерское вознаграждение» |