- •Лабораторная работа №1 Интегрированная среда разработки vba
- •Среда vba
- •Пример разработки приложения
- •Программирование алгоритмов линейной структуры
- •Типы данных
- •Комментарии
- •Оператор присваивания
- •Ввод данных
- •Вывод данных
- •Программирование линейного алгоритма
- •Лабораторная работа №3 Алгоритмизация и программирование разветвляющихся вычислительных процессов
- •Изучение правил построения алгоритма разветвляющейся структуры и записи программы с использованием оператора If…Then…Else.
Ввод данных
Ввести данные в программу можно с помощью текстового поля TextBox, как это делалось в предыдущей лабораторной работе. Для ввода используется свойствоTextтекстового поля.
Х = TextBox1.Text
В результате такого действия в переменную Х будет записана строковая величина, введенная в текстовое поле. Если ввести требуется число, то необходимо преобразовать строку в число. Для этого можно воспользоваться функцией Val.
Х = Val(TextBox1.Text)
Ввести данные можно с помощью функции InputBox. ФункцияInputBoxвыводит на экран диалоговое окно, содержащее сообщение, поле ввода и две кнопкиOkиCancel. Она устанавливает режим ожидания ввода данных пользователем и нажатия кнопки. При нажатии на кнопкуOkвозвращает значение типаString, если в поле ввода введен текст. Если в поле ввода введено число, то это будет число. При нажатии кнопкиCancelвозвращается пустая строка.
InputBox(Promt[,Title] [,Default] [,Xpos] [,Ypos] [,Helpfile,Context])
Promt— строковое выражение, отображаемое как сообщение в диалоговом окне.
Title— строковое выражение, отображаемое в строке заголовка диалогового окна.
Default— строковое выражение, отображаемое в поле ввода как используемое по умолчанию.
Xpos,Ypos— позиции вывода окна.
Helpfile,Context— имя справочного файла и номер раздела справочной службы.
То, что записано в квадратных скобках, можно опускать. Пример:
Dim N As String, D As Single
N=InputBox(«Введите пароль»)
D=InputBox(«Введите диаметр»)
Вывод данных
Вывести данные можно в компоненты Label,TextBox. Для этого используются свойстваCaptionиText, например,
Label1.Caption= “Программа наVBA”
Label1.Caption = Str (X)
TextBox1.Text = “Программа на VBA”
TextBox1.Text=Str(X)
Вывести данные можно в диалоговое окно. Процедура MsgBoxвыводит на экран диалоговое окно, содержащее сообщение.
MsgBox (Promt [, Buttons] [,Title] [, Helpfile, Context])
Promt—строковое выражение, отображаемое как сообщение в диалоговом окне.
Buttons— числовое выражение, определяющее количество и тип отображаемых кнопок.
Title— текст в заголовке.
Helpfile,Context— определяет файл справочной системы и номер соответствующего раздела.
Пример:
MsgBoxStr(a+b) + " , Пример", , "Заголовок"
Здесь выводится сумма двух переменных и слово пример. Слово «Заголовок» выводится в строке заголовка окна.
Пример обработчика события, содержащего процедуру MsgBox |
Рабочее окно |
Окно процедуры MsgBox |
Private Sub CommandButton1_Click() a = Val(TextBox1.Text) b = Val(TextBox2.Text) MsgBox Str(a + b) + " , Пример" , , "Заголовок" End Sub |
|
|
Программирование линейного алгоритма
Алгоритм, в котором все действия выполняются последовательно одно за другим, называется линейным. Приведем пример программы, в которой реализуем линейный алгоритм.
Пример.
Условие задачи:
Какого роста цен за год можно ожидать, если правительство гарантирует, что инфляция в новом году составит р%?
Если за каждый месяц цены возрастут в 1 + р/100 раз, то за год рост цен составит (1+р/100)12раз или прирост в процентах
Поясним формулу. За один месяц цены возрастут на р/100 и составят 1 + р/100. Для того чтобы сократить изложение, обозначим эту величину за Х.
Х = 1 + р/100
Единица — это условная цена единицы товара. В следующем месяце цены возрастут на тот же процент, но уже от имеющихся цен на остаток месяца: Х* р/100. Цены будут иметь значение Х + Х * р/100 или Х*(1 + р/100).
Х*(1 + р.100) = Х2
В следующем (третьем месяце) цены будут иметь значение:
Х2 + Х2*р/100 = Х2*(1+р/100) = Х3
И так далее. В конце 12-го месяца года цена единицы товара будет равна Х12 или(1 + р/100)12. Очевидно, что рост цены будет равен (1 + р/100)12 – 1.
Чтобы получить прирост в процентах, необходимо умножить на 100%.
Схема алгоритма:
Разработка пользовательской формы
Форма |
На форму установлены компоненты |
|
Label1 — свойствоCaption= «Введите процент месячной инфляции». TextBox1 — все свойства без изменений. Label2 — свойствоCaption= «Годовой рост цены». Label1 — свойствоCaptionочищено. CommandButton1 — свойствоCaption= «Ok».
|
Обработчик события (ClickдляCommandButton1)
Рабочее окно |
Обработчик события |
|
Private Sub CommandButton1_Click() ‘Заголовок процедуры Dim p, a As Single , s As Single ‘ Описание переменных ‘ p — процент инфляции в месяц. ‘a — кратность роста цен. S — рост цен за год в процентах. p=Val(TextBox1.Text) ‘Ввод числа из окна редактора a= (1 +p/ 100) ^ 12 ‘Оператор присваивания s= (a- 1) * 100 ‘Оператор присваивания Label3.Caption = s ‘Вывод в метку EndSub При выводе числа в метку функция Str() не нужна! |