- •Введение. Установка среды программирования
- •2. История языка Basic
- •3. Установка Visual Basic
- •Лабораторная работа №1. Интерфейс Visual Basic. Создание первого проекта
- •Теоретическая часть
- •1 . Первое знакомство
- •5. Стандартная панель инструментов
- •Практическая часть
- •Лабораторная работа №2. Изменение свойств компонентов. Метод Print
- •Теоретическая часть
- •1. Состав панели управления
- •2. Окно свойств и редактора кода
- •3. Свойства элементов управления
- •3.1 Свойства элемента Form
- •3.2 Свойства элемента TextBox
- •3.3. Свойства компонента CommandButton
- •Объект.Print [Список вывода]
- •Объект.Cls Практическая часть
- •Лабораторная работа №3. Работа с простейшим графическим объектом Visual Basic
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №4. Работа с арифметическими выражениями и функциями
- •Теоретическая часть
- •1. Арифметические выражения Visual Basic.
- •2. Встроенные функции Visual Basic
- •3. Функции преобразования
- •Str (число)
- •Val (символьное выражение)
- •Практическая часть
- •Лабораторная работа №5. Решение простейших математических задач с использованием линейных алгоритмов
- •Теоретическая часть
- •1. Типы данных
- •2. Объявление переменных
- •Public / Private / Dim Имя_переменной [As Тип_переменной]
- •Оператор_объявления_типа Строка_интервалов_имен
- •3. Константы Visual Basic
- •4. Область видимости переменной
- •Public / Private / Dim Имя_переменной [As Тип_переменной]
- •Имя_формы.Имя_переменной
- •Практическая часть
- •Лабораторная работа №6. Программирование ветвлений с использованием оператора If
- •Теоретическая часть
- •1. Конструкция If … Then … End If
- •2. Конструкция If … Then … Else … End If
- •3. Конструкция If … Then … Else If… End If
- •Практическая часть
- •Лабораторная работа №7. Программирование ветвлений с использованием оператора Case
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №8. Программирование циклов
- •Теоретическая часть
- •1. Цикл For…Next
- •2. Цикл For Each … Next
- •3. Цикл Do While … Loop
- •4. Цикл Do Until … Loop
- •5. Цикл Do … Loop While
- •6. Цикл Do … Loop Until
- •7. Цикл While … Wend
- •Практическая часть
- •Лабораторная работа №9. Разработка приложений для обработки массивов
- •Теоретическая часть
- •1. Объявление массивов
- •2. Массивы с фиксированной границей и динамические массивы.
- •UBound (имяМассива [, измерение]) Практическая часть
- •Лабораторная работа №10. Разработка приложений с использованием методов рисованИя графических примитивов
- •Теоретическая часть
- •1. Графическая поверхность
- •2. Графические примитивы
- •Практическая часть
- •Лабораторная работа №11. Построение графиков и диаграмм
- •Лабораторная работа №12. Применение пользовательских диалоговых окон
- •Теоретическая часть
- •1. Окно и функция InputBox
- •2. Окно MsgBox
- •MsgBox Текст сообщения [,Константа] [,Заголовок]
- •3. Функция MsgBox()
- •Практическая часть
- •Лабораторная работа №13. Разработка компьютерного теста с использованием Visual Basic
- •Теоретическая часть
- •Лабораторная работа №14. Создание пользовательского меню и панели инструментов
- •Теоретическая часть
- •Call Имя процедуры ([Список Параметров Вызова]),
- •Практическая часть
- •Лабораторная работа №15. Создание текстового редактора
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №16. Разработка мультимедиа-приложений
- •Теоретическая часть
- •Практическая часть
- •Лабораторная работа №17. Макросы: запись, запуск, чтение
- •Теоретическая часть
- •Обычно макрос содержит следующие элементы.
- •Практическая часть
- •Лабораторная работа №18. Создание форм рабочего листа
- •Теоретическая часть
- •1. Когда необходимо использовать vba в Excel
- •2. Объект Application
- •3. Объект Workbook
- •4. Объект Worksheet
- •5. Объект Range
- •Инициализация и отображение диалогового окна
- •Практическая часть Создание пользовательской формы
- •Создание пользовательской формы
- •Практические задания по программированию на vba
- •Лабораторная работа №19. Создание книги лабораторных работ с автоматизированным выбором страниц книги
- •Практическая часть
- •Лабораторная работа №20. Моделирование процессов
- •Теоретическая часть
- •Лабораторная работа №21. Создание сводных таблиц в vba
- •Теоретическая часть Практическая часть
- •Лабораторная работа №22. Работа с компонентом Chart
- •Теоретическая часть Практическая часть
- •Лабораторная работа №23. Работа с базами данных в Visual Basic
- •Теоретическая часть Практическая часть
- •Лабораторная работа №24. Работа с базами данных в Excel с использованием Visual Basic
- •Теоретическая часть Практическая часть
- •Лабораторная работа №25. Обработка данных на рабочем листе Теоретическая часть Практическая часть
3. Функции преобразования
Для работы с числовыми переменными (типы переменных и правила их объявления рассмотрены в Лабораторной работе 5) необходимо иметь представление о том, как преобразовать введенные данные, представляющие собой текст, в числовое выражение, и как отобразить результат, представляющий собой число, на форме в виде текста.
Функция Str() преобразовывает численное значение в символьное представление. Синтаксис функции:
Str (число)
Для преобразования символьной строки в численное выражение используется функция Val:
Val (символьное выражение)
При преобразовании строки символов в число учитываются все цифровые символы, расположенные в строке слева направо. Пробелы, находящиеся в начале и конце символьной строки, игнорируются. Пробелы внутри строки недопустимы. Если первый символ выражения не является цифрой, функция Val возвратит значение 0.
Рассмотрим пример. Пусть заданы две символьные строки a и b следующего вида:
A = “10” B = “12”
При сложении этих двух строк получается символьная строка “1012”.
Если сложить две символьные сроки, предварительно преобразовав их в числа, и распечатать с помощью команды
Print Val (a) + Val (b)
то получится число 22.
Полный перечень функций работы со строками приведен в Приложении 3.
Практическая часть
Задание 1. Разработка приложения, выполняющего арифметические операции и вычисляющего математические функции (калькулятор)
Постановка задачи.
Разработать приложение, осуществляющее арифметические операции с двумя числами, введенными пользователем, и вычисляющее математические функции. Приложение должно обеспечивать:
ввод данных пользователя – два числа;
выполнение арифметических операций с введенными числами;
вычисление математических функций от одного из аргументов;
вывод данных в метках (Label)
Примерный внешний вид приложения представлен на Рис.4.1.
Ход работы.
Создайте папку Лабораторная_работа_№4, а в ней папку 4.1.
Запустите программу Microsoft Visual Basic 6.0.
В появившемся окне выберите тип приложения STANDARD.exe и нажмите кнопку «Открыть».
Расположите на форме три компонента TextBox, 21 компонент CommandButton, 23 компонента Label для вывода результата, свойства которых установите согласно Таблице 4.1 или ориентируясь на внешний вид приложения (Рис.4.1).
Таблица 4.1 – Свойства компонентов приложения «Арифметические выражения и функции»
Компонент |
Свойство |
Значение |
Form1 |
Caption |
Арифметические выражения и функции |
Name |
frmАрифметика |
|
MaxButton, MinButton |
False |
|
Icon |
Загрузите любое графическое изображение формата *.ico |
|
Label1 |
Caption |
Первое число (X) |
Label2 |
Caption |
Второе число (Y) |
Label3 |
Caption |
Третье число (Z) |
Label4…Label23 |
Caption |
|
CommandButton1 |
Caption |
X + Y |
CommandButton2 |
Caption |
X – Y |
CommandButton3 |
Caption |
X * Y |
CommandButton4 |
Caption |
X / Y |
CommandButton5 |
Caption |
X \ Y |
CommandButton6 |
Caption |
X Mod Y |
CommandButton7 |
Caption |
X ^ Y |
CommandButton8 |
Caption |
Abs (Z) |
CommandButton9 |
Caption |
Atn (Z) |
CommandButton10 |
Caption |
Sin (Z) |
CommandButton11 |
Caption |
Cos (Z) |
CommandButton12 |
Caption |
Tan (Z) |
CommandButton13 |
Caption |
Exp (Z) |
CommandButton14 |
Caption |
Log (Z) |
CommandButton15 |
Caption |
Sqr (Z) |
CommandButton16 |
Caption |
Rnd (Z) |
CommandButton17 |
Caption |
Int (Z) |
CommandButton18 |
Caption |
Fix (Z) |
CommandButton19 |
Caption |
CInt (Z) |
Продолжение таблицы 4.1
CommandButton20 |
Caption |
Sgn (Z) |
CommandButton21 |
Caption |
Очистить |
TextBox1 |
Text |
|
TextBox2 |
Text |
|
TextBox3 |
Text |
|
Свойство Font и BackColor установите у компонентов по своему усмотрению Свойство Style у компонентов CommandButton установите равным 1 - Graphical |
О ткройте окно программного кода (View - Code).
В верхних строках программного кода опишите переменные входных и выходных данных (подробно типы переменных и правила их описания рассмотрены в Лабораторной работе 5):
Dim x As Single, y As Single, z As Single 'входные данные
'переменная для операций \, Mod, Rnd, Int, Fix, CInt, Sgn
Dim a As Integer
'переменная для остальных функций
Dim b As Single
Щелкните по кнопке CommandButton1 («X + Y») и напишите следующий обработчик события Click (после знака апострофа приведены необходимые комментарии):
'щелчок по кнопке "+"
Private Sub Command1_Click()
x = Val(Text1.Text) 'перевод строки в число X
y = Val(Text2.Text) 'перевод строки в число Y
b = x + y 'выполнение операции
Label4.Caption = Str(b) 'вывод результата
End Sub
Аналогично напишите обработчики события Click для остальных кнопок:
Private Sub Command2_Click() 'щелчок по кнопке "-"
x = Val(Text1.Text)
y = Val(Text2.Text)
b = x - y
Label5.Caption = Str(b)
End Sub
Private Sub Command3_Click() 'щелчок по кнопке "*"
x = Val(Text1.Text)
y = Val(Text2.Text)
b = x * y
Label6.Caption = Str(b)
End Sub
Private Sub Command4_Click() 'щелчок по кнопке "/"
x = Val(Text1.Text)
y = Val(Text2.Text)
b = x / y
Label7.Caption = Str(b)
End Sub
Private Sub Command5_Click() 'щелчок по кнопке "\"
x = Val(Text1.Text)
y = Val(Text2.Text)
a = x \ y
Label8.Caption = Str(a)
End Sub
Private Sub Command6_Click() 'щелчок по кнопке "Mod"
x = Val(Text1.Text)
y = Val(Text2.Text)
a = x Mod y
Label9.Caption = Str(a)
End Sub
Private Sub Command7_Click() 'щелчок по кнопке "^"
x = Val(Text1.Text)
y = Val(Text2.Text)
b = x ^ y
Label10.Caption = Str(b)
End Sub
Private Sub Command8_Click() 'щелчок по кнопке "Abs"
z = Val(Text3.Text)
b = Abs(z)
Label11.Caption = Str(b)
End Sub
Private Sub Command9_Click() 'щелчок по кнопке "Atn"
z = Val(Text3.Text)
b = Atn(z)
Label12.Caption = Str(b)
End Sub
Private Sub Command10_Click() 'щелчок по кнопке "Sin"
z = Val(Text3.Text) 'будем считать, что введено число в градусах
b = Sin((z * Atn(1) * 4) / 180) 'переводим исходное число Z в радианы и вычисляем синус данного угла
Label13.Caption = Str(b)
End Sub
Private Sub Command11_Click() 'щелчок по кнопке "Cos"
z = Val(Text3.Text) 'будем считать, что введено число в градусах
b = Cos((z * Atn(1) * 4) / 180) 'переводим исходное число Z в радианы и вычисляем косинус данного угла
Label14.Caption = Str(b)
End Sub
Private Sub Command12_Click() 'щелчок по кнопке "Tan"
z = Val(Text3.Text) 'будем считать, что введено число в градусах
b = Tan((z * Atn(1) * 4) / 180) 'переводим исходное число Z в радианы и вычисляем тангенс данного угла
Label15.Caption = Str(b)
End Sub
Private Sub Command13_Click() 'щелчок по кнопке "Exp"
z = Val(Text3.Text)
b = Exp(z)
Label16.Caption = Str(b)
End Sub
Private Sub Command14_Click() 'щелчок по кнопке "Log"
z = Val(Text3.Text)
b = Log(Abs(z))
Label17.Caption = Str(b)
End Sub
Private Sub Command15_Click() 'щелчок по кнопке "Sqr"
z = Val(Text3.Text)
b = Sqr(Abs(z))
Label18.Caption = Str(b)
End Sub
Private Sub Command16_Click() 'щелчок по кнопке "Rnd"
Randomize Timer 'для неповторяемости числа
z = Val(Text3.Text)
a = (z - 0 + 1) * Rnd() + 0 'случайное число в диапазоне от 0 до Z
Label19.Caption = Str(a)
End Sub
Private Sub Command17_Click() 'щелчок по кнопке "Int"
z = Val(Text3.Text)
a = Int(z)
Label20.Caption = Str(a)
End Sub
Private Sub Command18_Click() 'щелчок по кнопке "Fix"
z = Val(Text3.Text)
a = Fix(z)
Label21.Caption = Str(a)
End Sub
Private Sub Command19_Click() 'щелчок по кнопке "CInt"
z = Val(Text3.Text)
a = CInt(z)
Label22.Caption = Str(a)
End Sub
Private Sub Command20_Click() 'щелчок по кнопке "Sgn"
z = Val(Text3.Text)
a = Sgn(z)
Label23.Caption = Str(a)
End Sub
Для обработчика события Click по кнопке «Очистить» напишите следующий код:
'щелчок по кнопке "Очистить"
Private Sub Command21_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Label10.Caption = ""
Label11.Caption = ""
Label12.Caption = ""
Label13.Caption = ""
Label14.Caption = ""
Label15.Caption = ""
Label16.Caption = ""
Label17.Caption = ""
Label18.Caption = ""
Label19.Caption = ""
Label20.Caption = ""
Label21.Caption = ""
Label22.Caption = ""
Label23.Caption = ""
End Sub
Запустите приложение на выполнение (F5). Проверьте его работоспособность.
Попробуйте в качестве третьего числа Z ввести разные числа – положительные целые и дробные, отрицательные целые и дробные. Проанализируйте отличие результатов.
Закройте запущенное приложение.
Сохраните форму и проект (выбрав File – Save FrmАрифметика.frm и Save Арифметика.vbp) в папке 4.1.
Создайте exe-файл программы с помощью команды File → Make Арифметика.exe.
Выйдите из среды Visual Basic.
Запустите на выполнение файл Арифметика.exe и убедитесь, что проект работает автономно, как любые другие Windows-приложения.
Задание 2. Разработка приложения, выполняющего перевод чисел в восьмеричную и шестнадцатеричную системы счисления и вычисляющего корень n-ной степени
Постановка задачи.
Разработать приложение, которое переводит введенные пользователем числа в восьмеричную и шестнадцатеричную систему счисления, а также вычисляет корень n-ной степени из числа X.. Приложение должно обеспечивать:
ввод данных пользователя – два числа – одно число для перевода, одно – показатель степени n;
выполнение операций, заданных по условию задачи;
вывод данных в метках (Label)
П римерный внешний вид приложения представлен на Рис.4.2.
Ход работы.
Создайте в папке Лабораторная_работа_№4 папку 4.2.
Запустите программу Microsoft Visual Basic 6.0.
В появившемся окне выберите тип приложения STANDARD.exe и нажмите кнопку «Открыть».
Расположите на форме два компонента TextBox, 4 компонента CommandButton, 5 компонентов Label, свойства которых установите согласно Таблице 4.2 или ориентируясь на внешний вид приложения (Рис.4.2).
Таблица 4.2 – Свойства компонентов приложения «Перевод числа. Вычисление корня»
Компонент |
Свойство |
Значение |
Form1 |
Caption |
Перевод числа. Вычисление корня |
Name |
frmПеревод |
|
MaxButton, MinButton |
False |
|
Icon |
Загрузите любое графическое изображение формата *.ico |
|
Label1 |
Caption |
Исходное число |
Label2 |
Caption |
Степень корня (n) |
Label3 |
Caption |
|
Label4 |
Caption |
|
Label5 |
Caption |
|
TextBox1 |
Text |
|
TextBox2 |
Text |
|
CommandButton1 |
Caption |
Перевести в восьмеричную систему |
CommandButton2 |
Caption |
Перевести в шестнадцатеричную систему |
CommandButton3 |
Caption |
Извлечь корень |
CommandButton4 |
Caption |
Очистить |
Свойство Font и BackColor установите у компонентов по своему усмотрению Свойство Style у компонентов CommandButton установите равным 1 - Graphical |
Откройте окно программного кода (View - Code).
В верхних строках программного кода опишите переменные входных и выходных данных:
Dim a As Integer 'исходное число
Dim n As Integer 'степень корня
Dim b As Single 'результат
Для перевода исходного числа в восьмеричную и шестнадцатеричную системы счисления воспользуемся стандартными функциями. Для перевода в восьмеричную систему щелкните по кнопке «Перевести в восьмеричную систему» и напишите следующий обработчик события Click:
Private Sub Command1_Click()
Label3.Caption = Oct(Val(Text1.Text))
End Sub
а для перевода в шестнадцатеричную систему щелкните по кнопке «Перевести в шестнадцатеричную систему» и напишите следующий код:
Private Sub Command2_Click()
Label4.Caption = Hex(Val(Text1.Text))
End Sub
Для вычисления корня n-ной степени необходимо введенные данные преобразовать в строку, а затем вычислить корень как показатель степени 1/n:
Private Sub Command4_Click()
a = Val(Text1.Text)
n = Val(Text2.Text)
b = a ^ (1 / n)
Label5.Caption = Str(b)
End Sub
Обработчик события Click для кнопки «Очистить» напишите самостоятельно, используя навыки, полученные при выполнении предыдущих лабораторных работ.
Запустите приложение на выполнение (F5). Проверьте его работоспособность.
Закройте запущенное приложение.
Сохраните форму и проект (выбрав File – Save FrmПеревод.frm и Save Перевод.vbp) в папке 4.2.
Создайте exe-файл программы с помощью команды File → Make Перевод.exe.
Выйдите из среды Visual Basic.
Запустите на выполнение файл Перевод.exe и убедитесь, что проект работает автономно, как любые другие Windows-приложения.
Подведем итоги
В работе были использованы новые
Арифметические операции:
\ - целочисленное деление
^ - возведение в степень
Mod – остаток от целочисленного деления
функции:
Abs (x) – модуль аргумента
Atn (x) – арктангенс числа x
Sin (x) – синус числа x
Cos (x) – косинус числа x
Tan (x) – тангенс числа x
Exp (x) – экспонента
Log (x) – натуральный логарифм
Sqr (x) – квадратный корень
Rnd () – случайное число в диапазоне от 0 до 1
Int (x) – наибольшее целое число, не превышающее x
Fix (x) – округленное число (отбрасывает дробную часть аргумента)
CInt(x) – аргумент, округленный до целого по правилам округления математики
Sgn (x) – знак числа
X^(1/n) – корень n-ной степени из X
Hex (x) – перевод десятичного числа в шестнадцатеричное
Oct (x) – перевод десятеричного числа в восьмеричное
Задания для самостоятельного выполнения
1. Составьте конспект по теоретической части лабораторной работы. Выполненное задание покажите преподавателю.
2. Разработать приложения, вычисляющие следующие выражения при заданных значениях x, a, b, c, y.
1) 2)
3) 4)
5) 6)
7) 8)
9) 10)
11) 12)
13) 14)
15) 16)
17) 18)
19) 20)
Вопросы для контроля
Какие встроенные функции Visual Basic Вам известны?
Какие функции служат для перевода числа из одной системы счисления в другую?
В чем разница между функциями Fix(x), Int(x) и CInt(x)?
Какие строки необходимо закладывать в программный код для обеспечения неповторяемости числа при использовании функции Rnd()?
Чем отличается операция Mod от операции целочисленного деления?