Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник лабораторок2013-3.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7.33 Mб
Скачать

If условие Then

вариант 1

Else

вариант 2

End If

Синтаксис оператора при такой форме записи отличается наличиемслужебных слов End If, которые необходимы для того, чтобы можно былоопределить, где заканчивается данный оператор. Механизм работы условногооператора при блочной форме записи не отличается от механизма приоднострочной, но блочная форма записи часто бывает удобней длявосприятия и понимания текста программы.

Тот вид условного оператора, который описан выше, называетсяполным условным оператором (это относится и к однострочной, и к блочнойформе записи). Наряду с ним в программировании используется исокращенный условный оператор. Общий вид сокращенного условногооператора (для однострочной формы записи) следующий:

If условие Then вариант

В этом случае механизм работы условного оператора изменится следующим образом. Если условие, находящееся после служебного слова If,является истинным, то выполняется тот вариант, который указан после словаThen (в данном случае описываемый вариант так же может представлятьсобой один оператор или группу операторов). Но если условие, находящеесяпосле If, оказывается ложным, то данный оператор не выполняет никакихдействий и программа переходит к выполнению следующего оператора. Приблочной форме записи сокращенный условный оператор в общем виде будетвыглядеть следующим образом:

IfусловиеThen

вариант

EndIf

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

If условие 1 Then

вариант 1

ElseIf условие 2 Then

вариант 2

Else

вариант 3

EndIf

Для такого условного оператора применяется следующий механизм работы. В начале проверяется условие 1, находящееся в верхней строке оператора после служебного слова If. Если это условие истинно (его значение равно True), то выполняется вариант 1, расположенный между служебными словами Then и ElseIf.

Если же исходное условие 1 ложно (его значение равно False), то производится новая проверка. На этот раз проверяется условие 2. Если значение этого условия равно True, то выполняется вариант 2, находящийся между вторым служебным словом Then и Else. Если же условие 2 тоже оказывается ложным, то выполняется вариант 3, расположенный между служебными словами Else и End If.

Порядок выполнения.

1. Создать интерфейс заданной программы, который должен включать следующие элементы:

1.1. Три текстовых окна. В первое окно Textbox1 будет вводиться исходная сумма. Во втором окне Textbox2 будет выводится сумма скидки. Это окно по умолчанию сделаем невидимым, так как в случае отсутствия у пользователя права на скидку в наличии окна Textbox2 на экранной форме нет смысла. Это окно будет становиться видимым только в том случае, если сумма заказа превышает 10000 руб.

Для того чтобы сделать окно Textbox2 невидимым, в окне свойств для данного объекта найдем свойство Visible и установим для него значение False. При работе в режиме проектирования программы это окно все равно будет оставаться видимым, но как только мы запустим программу на выполнение, это окно «исчезнет» с экранной формы и «проявится» только при указанном выше условии.

В третьем текстовом окне Textbox3 будет отображаться стоимость покупки с учетом положенной клиенту скидки, которая равна исходной сумме покупки за вычетом этой скидки. Если скидка клиенту не положена, то величина, отображаемая в текстовом окне Textbox3, будет равна исходной величине, вводимой в окно Textbox1.

1.2. Три надписи Label1, Label2 и Label3, которые поясняют пользователю назначение каждого из текстовых окон. Для текста первойнадписи Label1 («Введите сумму заказа») зададим синий цвет, для текстоввторой и третьей надписи (вывод результатов расчетов) зададим красныйцвет. Вторую надпись Label2 («Сумма скидки составляет») подобно окнуTextbox2, также сделаем по умолчанию невидимой, так как ее наличие имеет смысл только при сумме заказа, превышающей 10000 руб. Третьянадпись Label3 сообщает об итоговой сумме покупки.

1.3. Четыре экранные кнопки CommandButton1, CommandButton2, CommandButton3 и CommandButton4. Щелчок на кнопке CommandButton1 («Расчет») позволяет подсчитать сумму скидки и итоговую стоимость покупки с учетом скидки. Кнопка CommandButton2 («Сброс») очищает все три текстовых окна и делает невидимым второе текстовое окно и вторую надпись, для того чтобы подготовить программу к новому вводу данных и дальнейшим расчетам. Кнопка CommandButton3 («Об авторе») выводит на экран дополнительное диалоговое окно со сведениями о разработчике программы. Кнопка CommandButton4 («Выход») закрывает основную экранную форму.

Пользовательский интерфейс программы приведен на рис.1.

Рис. 1.

  1. Написать программный код для чего начнем с кнопки CommandButton1. В процедуре CommandButton1_Click, описывающей реакцию этой экранной кнопки на щелчок левой кнопкой мыши введем следующие локальные переменные: Sum – исходная стоимость приобретаемой продукции; Skidka – размер скидки, положенной клиенту фирмы; Itog – итоговая стоимость приобретаемой продукции, вычисляемая с учетом скидки. Описываем Sum как переменную целого типа, а переменные Skidka и Itog – как вещественные переменные двойной точности.

  2. Затем выполнить с помощью функции Val преобразование значения исходной суммы, введенного в окно Textbox1, из текстовой формы в числовую и присвоить получившееся числовое значение переменной Sum.

  3. Создаем в процедуре условный оператор и в заголовке этого оператора после служебного слова If записываем следующее условие: Sum>10000.

  4. Дальнейший ход действий в программе должен зависеть от значенияпеременной Sum. Если значение этой переменной более 10000, то еобходимо выполнить следующие действия:

1. Вычислить величину скидки, взяв 5 % от исходной суммы, и

присвоить полученное значение переменной Skidka.

2. Подсчитать итоговую стоимость приобретаемой продукции, которая

будет равна исходной за вычетом скидки. Полученное значение присвоить

переменной Itog.

3. Сделать видимыми текстовое окно Textbox2 и соответствующую

ему надпись Label2.

4. Надписи Label2 присвоить значение: «Сумма скидки составляет».

5. Преобразовать вычисленную сумму скидки и итоговую стоимость из

числовой формы в текстовую с помощью функции Str и вывести эти

текстовые величины соответственно в окнах Textbox2 и Texbox3.

Все эти действия записываются в условном операторе послеслужебного слова Then.

  1. Если сумма приобретаемой продукции меньше 10000, то нужно сделать следующее:

1. Присвоить переменной Itog значение, равное переменной Summa,

так как итоговая сумма будет равна исходной ввиду отсутствия скидки,преобразовать это значение переменной Itog в текстовую форму и вывестиэто значение в окне Textbox3.

2. Сделать видимой надпись Label2 и присвоить этой надписиследующее значение: «Извините, скидка Вам не положена».

Эти действия записываются в условном операторе после служебногослова Else.

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

If Sum > 10000 Then

Skidka = Sum * 0.05

TextBox2.Text = Str(Skidka)

TextBox2.Visible = True

Itog = Sum - Skidka

TextBox3.Text = Str(Itog)

Label2.Caption = " Суммаскидкисоставляет"

Label2.Visible = True

Else

Itog = Sum

TextBox3.Text = Str(Itog)

Label2.Visible = True

Label2.Caption = "Извините, скидка Вам не

положена"

End If

  1. Далее, записываем код процедуры для экранной кнопки CommandButton2. Эта процедура должна делать следующее:

1. Очистить все имеющиеся в программе текстовые окна – TextBox1,TextBox2 и Textbox3.

2. Сделать невидимой надпись Label2 и текстовое окно Textbox2до следующего ввода исходных данных.

В случае с первой операцией свойству Text всех трех текстовых оконприсваивается «нулевое» значение. Для выполнения второй операциисвойству Visible обоих рассматриваемых объектов присваиваетсязначение False. Затем пишем процедуры для экранных кнопокCommandButton3 («Об авторе») и CommandButton4 («Выход»).

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

После написания программного кода для всех четырех экранныхкнопок создание программного модуля для данного проекта можно считатьзавершенным

  1. Сопоставить полученный текст программного модуля с приводенным ниже:

Private Sub CommandButton1_Click()

Dim Sum As Integer

Dim Skidka, Itog As Double

Sum = Val(TextBox1.Text)

If Sum > 10000 Then

Skidka = Sum * 0.05

TextBox2.Text = Str(Skidka)

TextBox2.Visible = True

Itog = Sum - Skidka

TextBox3.Text = Str(Itog)

Label2.Caption = " Суммаскидкисоставляет"

Label2.Visible = True

Else

Itog = Sum

TextBox3.Text = Str(Itog)

Label2.Visible = True

Label2.Caption = "Извините, скидка Вам не положена"

End If

End Sub

Private Sub CommandButton2_Click()

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

Label2.Visible = False

TextBox2.Visible = False

End Sub

Private Sub CommandButton3_Click()

MsgBox ("ПрограммуразработалА.Н. Маслобоев")

End Sub

Private Sub CommandButton4_Click()

End

End Sub

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

  2. Продемонстрировать преподавателю работы программы на тестовых примерах.

Контрольные вопросы

1. Что такое условный переход?

2. Какую функцию реализует условный переход?

3. Какую последовательность команд нужно использовать в программе для реализации условного перехода?

4. Как вывести в среде VBA на экран окно программного кода?

5. ………………………..?

6. Какое свойство определяет видимость или невидимость объекта?

7. ………………………..?.

8. …………………………?

9. Что содержит Toolbox?

10. ………………………….?

Литература/источники

1. Программирование на VBA и создание макросов,

http://www.lessons-tva.info/edu/e-inf2/m2t3_7.html

2. Самоучитель программирования на VBA в MS Office, http://www.libray.narod.ru/rapid/vba_programmirovanie_office.htm

3. Стив Камминг «VBA для чайников»

http://www.proklondike.com/books/vb/vb_Cummings_VBA_Dummies.html

4 Программирование на VBA,

http://itteach.ru/vba/programmirovanie-na-vba

ПРИЛОЖЕНИЕ

к сборнику методических указаний по выполнению практических (лабораторных) работ