- •Лабораторный практикум
- •5 Часть
- •Visual Basic. Основы программирования
- •Дмитров 2012
- •Содержание
- •Предисловие
- •Массивы данных
- •Статические массивы
- •Динамические массивы
- •Массивы объектов
- •Создание и использование вызываемых процедур и функций
- •ПроцедурыSub
- •Функции
- •Рекурсивные процедуры и функции
- •Лабораторно-практические работы лабораторно-практическая работа № 1
- •Лабораторно-практическая работа № 2
- •Лабораторно-практическая работа № 3
- •Лабораторно-практическая работа № 4
- •Лабораторно-практическая работа № 5
- •Лабораторно-практическая работа № 6
- •Лабораторно-практическая работа № 7
- •Лабораторно-практическая работа № 8
- •Лабораторно-практическая работа № 9
- •1 Часть
- •2 Часть
- •Лабораторно-практическая работа № 10
- •Лабораторно-практическая работа № 11
- •1 Часть
- •2 Часть
- •Задания для самостоятельного выполнения
Лабораторно-практическая работа № 9
Тема: Процедуры общего назначения
Цель: Получить навыки использования вызываемых процедур и функций
1 Часть
Постановка задачи: Разработать приложение нахождения максимума из четырех чисел, используя функцию нахождения максимума из двух.
Порядок выполнения:
Установите на форме следующие объекты и измените им свойства:
-
Объект
Свойство
Значение
Командная кнопка
Name
Cmd
Метки
Caption
Введите числа
Caption
Max
Текстовые окна
Name
Text1
Name
Text2
Name
Text3
Name
Text4
Name
TxtMax
Приведите свою форму в соответствие с образцом
В окне кода процедуры обработки события Click для объекта Cmd набрать:
Dim x1 As Single, x2 As Single
Dim x3 As Single, x4 As Single
x1 = Val(Text1.Text)
x2 = Val(Text2.Text)
x3 = Val(Text3.Text)
x4 = Val(Text4.Text)
TxtMax.Text = max(max(x1, x2), max(x3, x4))
Создать функцию нахождения максимума из двух значений, для этого:
в окне программного кода в списке Object выбрать General
набрать следующий текст
Function max(a As Single, b As Single) As Single
If a > b Then
max = a
Else
max = b
End If
End Function
Проверить работу программы
Изменить программу, для того чтобы она определяла и максимум и минимум (самостоятельно создайте еще одну функцию)
Результат показать преподавателю
2 Часть
Постановка задачи: Разработать приложение, которое строит три вида графика. Для подготовки графического поля перед выводом графика разработать вызываемую процедуру
Добавьте на форму графическое окно (PicDraw) и три командных кнопки (Cmd1, Cmd2, Cmd3 )
Приведите свою форму в соответствие с образцом
Создайте процедуру общего назначения для инициализации графического окна, для этого:
в окне программного кода в списке Object выбрать General
набрать следующий текст
Sub grafik(z1, z2, z3, z4)
PicDraw.Cls
PicDraw.Scale (z1, z2)-(z3, z4)
PicDraw.Line (z1, 0)-(z3, 0)
PicDraw.Line (0, z2)-(0, z4)
End Sub
В окне кода процедуры обработки события Clickдля объектаCmd1набрать
Call grafik(-10, 100, 10, -10)
For x = -10 To 10 Step 0.1
y = x ^ 2
PicDraw.PSet (x, y)
Next x
В окне кода процедуры обработки события Clickдля объектаCmd2набрать
Call grafik(-10, 2, 10, -2)
For x = -10 To 10 Step 0.1
y = Sin(x)
PicDraw.PSet (x, y)
Next x
В окне кода процедуры обработки события Clickдля объектаCmd3набрать
Call grafik(-10, 10, 10, -10)
For x = -10 To 10 Step 0.1
y = Abs(x)
PicDraw.PSet (x, y)
Next x
Проверьте работу программы
Лабораторно-практическая работа № 10
Тема: Процедуры общего назначения
Цель: Закрепить навыки создания вызываемых процедур и функций
Постановка задачи: По заданным координатам построить два треугольника и определить их площадь, используя вызываемую функцию, цель которой – вычисление площади треугольника
Порядок выполнения:
Установите на форме следующие объекты и измените им свойства:
Объект
Свойство
Значение
Рамки
Caption
Ручная установка точек
Caption
Ввод координат вершин
Caption
X1,Y1
Caption
X1,Y1
Caption
X2,Y2
Caption
X2,Y2
Caption
X3,Y3
Caption
X3,Y3
Caption
Площадь
Caption
Площадь
Текстовые окна
Name
(для правой стороны)
TxtX1_k TxtY1_k
TxtX2_k TxtY2_k
TxtX3_k TxtY3_k
TxtS_k
Name
(для левой стороны)
TxtX1_m TxtY1_m
TxtX2_m TxtY2_m
TxtX3_m TxtY3_m
TxtS_m
Графическое окно
Name
Picture1
Командная кнопка
Name
Cmd
Caption
Вычислить площадь треугольников
Приведите свою форму в соответствие с образцом
В разделе общих объявлений набрать:
Dim X1, Y1, X2, Y2, X3, Y3 As Single
Dim N As Integer
В окне кода процедуры обработки события Paint для объекта Form набрать
'заполнение формы после ее загрузки. сетка в графическом поле
Picture1.Refresh
Picture1.Scale (0, 20)-(20, 0)
For I = 1 To 20
Picture1.Line (I, 0)-(I, 20), RGB(200, 200, 200)
Next I
For I = 1 To 20
Picture1.Line (O, I)-(20, I), RGB(200, 200, 200)
Next I
В окне кода процедуры обработки события MouseDown для объекта Picture1 набрать
If N = 0 Then
X1 = CInt(X * 10) / 10
Y1 = CInt(Y * 10) / 10
Picture1.PSet (X, Y)
N = N + 1
ElseIf N = 1 Then
X2 = CInt(X * 10) / 10
Y2 = CInt(Y * 10) / 10
Picture1.PSet (X, Y)
N = N + 1
Else
X3 = CInt(X * 10) / 10
Y3 = CInt(Y * 10) / 10
Picture1.PSet (X, Y)
N = N - 2
End If
В окне кода процедуры обработки события Click для объекта Cmd набрать
' очистим поле построим сетку
Picture1.Refresh
Picture1.Scale (0, 20)-(20, 0)
For I = 1 To 20
Picture1.Line (I, 0)-(I, 20), RGB(200, 200, 200)
Next I
For I = 1 To 20
Picture1.Line (O, I)-(20, I), RGB(200, 200, 200)
Next I
'построим треугольник по указанным точкам и вычислим площадь
Picture1.Line (X1, Y1)-(X2, Y2), RGB(0, 0, 255)
Picture1.Line (X1, Y1)-(X3, Y3), RGB(0, 0, 255)
Picture1.Line (X3, Y3)-(X2, Y2), RGB(0, 0, 255)
'покажем координаты
TxtX1_m.Text = X1: TxtY1_m.Text = Y1
TxtX2_m.Text = X2: TxtY2_m.Text = Y2
TxtX3_m.Text = X3: TxtY3_m.Text = Y3
TxtS_m.Text = S_Tr(X1, Y1, X2, Y2, X3, Y3)
'построим треугольник по указанным точкам и вычислим площадь
X1 = Val(TxtX1_k.Text)
Y1 = Val(TxtY1_k.Text)
X2 = Val(TxtX2_k.Text)
Y2 = Val(TxtY2_k.Text)
X3 = Val(TxtX3_k.Text)
Y3 = Val(Txty3_k.Text)
Picture1.Line (X1, Y1)-(X2, Y2), RGB(255, 0, 0)
Picture1.Line (X1, Y1)-(X3, Y3), RGB(255, 0, 0)
Picture1.Line (X3, Y3)-(X2, Y2), RGB(255, 0, 0)
TxtS_k.Text = S_Tr(X1, Y1, X2, Y2, X3, Y3)
Создайте вызываемую функция, которая по координатам вершин треугольника вычисляет площадь треугольника по формуле Геррона, для этого:
откройте окно программного кода (для любого объекта;
в списке Object выберите General
наберите следующее:
Function S_Tr(a1, b1, a2, b2, a3, b3 As Single) As Single
'определяем длины сторон
dlina1 = Sqr((a1 - a2) ^ 2 + (b1 - b2) ^ 2)
dlina2 = Sqr((a1 - a3) ^ 2 + (b1 - b3) ^ 2)
dlina3 = Sqr((a3 - a2) ^ 2 + (b3 - b2) ^ 2)
'определяем полупериметр
p = (dlina1 + dlina2 + dlina3) / 2
S_Tr = Sqr(p * (p - dlina1) * (p - dlina2) * (p - dlina3))
End Function
Проверьте работу программы:
введите координаты вершин треугольника с клавиатуры (текстовые окна справа)
щелчком мышки в графическом окне отметьте вершины другого треугольника
для построения треугольников и определения площади каждого, щелкните по командной кнопке