Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
07.06.2015
Размер:
1.5 Mб
Скачать

Лабораторная работа №

Тема: «Вызов общей процедуры»

Задача: нахождение площади треугольника по координатам

Эскиз:

1 Программа:

Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single, x3 As Single, y3 As Single, _

Площадь As Double, Счетчик As Integer

Private Sub Command1_Click()

Picture1.Refresh

Сетка 20, 20, RGB(200, 200, 200)

' Изображение и вычисление площади треугольника

' по трем точкам, помещенных в графическом поле:

Треугольник x1, y1, x2, y2, x3, y3, vbBlue

ПлТреугКоорд x1, y1, x2, y2, x3, y3, Площадь

Label8.Caption = Str(x1): Label9.Caption = Str(y1)

Label10.Caption = Str(x2): Label11.Caption = Str(y2)

Label12.Caption = Str(x3): Label13.Caption = Str(y3)

Label14.Caption = Str(Площадь)

'Изображение и вычисление площади треугольника

'по координатам трех точек, помещенных в текстовые поля:

x1 = Val(Text1.Text): y1 = Val(Text2.Text)

x2 = Val(Text3.Text): y2 = Val(Text4.Text)

x3 = Val(Text5.Text): y3 = Val(Text6.Text)

Треугольник x1, y1, x2, y2, x3, y3, vbRed

ПлТреугКоорд x1, y1, x2, y2, x3, y3, Площадь

Label23.Caption = Str(Площадь)

End Sub

Private Sub Form_Load()

MsgBox "С помощью мыши установите 3 точки " & _

"в графическом поле , а затем введите координаты 3 - х точек" & _

" с помощью текстовых полей в правой части формы", 64, _

"О том, что и как вводить...."

End Sub

Private Sub Form_Paint()

Picture1.Refresh

Сетка 20, 20, RGB(200, 200, 200) ' Изображение сетки светло - серого цвета

End Sub

Public Sub Сетка(nx As Integer, ny As Integer, c As Long)

ПлощадьТреугольникаF.Picture1.Scale (0, ny)-(nx, 0)

For X% = 1 To nx

ПлощадьТреугольникаF.Picture1.Line (X, 0)-(X, ny), c

Next X

For Y% = 1 To ny

ПлощадьТреугольникаF.Picture1.Line (0, Y)-(nx, Y), c

Next Y

End Sub

Private Sub Picture1_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Счетчик = 0 Then

x1 = Int(X * 100) / 100: y1 = Int(Y * 100) / 100: Picture1.PSet (x1, y1)

Счетчик = Счетчик + 1

ElseIf Счетчик = 1 Then

x2 = Int(X * 100) / 100: y2 = Int(Y * 100) / 100: Picture1.PSet (x2, y2)

Счетчик = Счетчик + 1

Else

x3 = Int(X * 100) / 100: y3 = Int(X * 100) / 100: Picture1.PSet (x3, y3)

Счетчик = Счетчик - 2

End If

End Sub

Public Sub Треугольник(x1 As Single, y1 As Single, x2 As Single, y2 As Single, _

x3 As Single, y3 As Single, c As Long)

ПлощадьТреугольникаF.Picture1.Line (x1, y1)-(x2, y2), c

ПлощадьТреугольникаF.Picture1.Line (x1, y1)-(x3, y3), c

ПлощадьТреугольникаF.Picture1.Line (x3, y3)-(x2, y2), c

End Sub

Public Sub ПлТреугКоорд(x1 As Single, y1 As Single, x2 As Single, y2 As Single, _

x3 As Single, y3 As Single, Площадь As Double)

Площадь = Sqr(Abs(x1 * (y3 - y2) + x2 * (y1 - y3) + x3 * (y2 - y1)) / 2)

Площадь = Int(Площадь * 100) / 100

End Sub

Private Sub Выход_Click()

End

End Sub

2 Работа приложения

2.1 Установить три точки на графическом поле С помощью мышкию

2.2 Щелкнуть кнопку «Вычисление площади треугольника»