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

2. Программный код :

Private Sub b_Click()

If Op1.Value = True Then

Sh1.FillColor = b.BackColor

Else Sh1.BorderColor = b.BackColor

End if

End Sub

Private Sub bl_Click()

If Op1.Value = True Then

Sh1.FillColor = bl.BackColor

Else Sh1.BorderColor = bl.BackColor

End IF

End Sub

Private Sub Ch1_Click()

Call pr

End Sub

Private Sub g_Click()

If Op1.Value = True Then

Sh1.FillColor = g.BackColor

Else Sh1.BorderColor = g.BackColor

End IF

End Sub

Private Sub O1_Click()

Call pr

End Sub

Private Sub o2_Click()

Call pr

End Sub

Private Sub o3_Click()

Call pr

End Sub

Private Sub o4_Click()

Call pr

End Sub

Private Sub pr()

If Ch1.Value = 1 Then

If o1.Value = True Then Sh1.Shape = 5

If o2.Value = True Then Sh1.Shape = 3

If o3.Value = True Then Sh1.Shape = 2

If o4.Value = True Then Sh1.Shape = 4

Else

If o1.Value = True Then Sh1.Shape = 1

If o2.Value = True Then Sh1.Shape = 3

If o3.Value = True Then Sh1.Shape = 2

If o4.Value = True Then Sh1.Shape = 0

End If

End Sub

Private Sub r_Click()

If Op1.Value = True Then

Sh1.FillColor = r.BackColor

Else Sh1.BorderColor = r.BackColor

End if

End Sub

Private Sub w_Click()

If Op1.Value = True Then

Sh1.FillColor = w.BackColor

Else Sh1.BorderColor = w.BackColor

End if

End Sub

Private Sub y_Click()

If Op1.Value = True Then

Sh1.FillColor = y.BackColor

Else Sh1.BorderColor = y.BackColor

End if

End Sub

3. Ответ

Вывод:

Приведенное Windows-приложение дает возможность пользователям ПК создавать свои приложения, решающие подобные задачи.

Задача №11

Создать приложение «Определение площади треугольника», позволяющее строить треугольник по точкам, координаты которых задаются в текстовых окнах или с помощью щелчков мыши в графическом поле вывода, и вычислить площадь построенного треугольника. В программном коде использовать общие процедуры (подпрограммы).

Решение:

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

1. Расставим имена объектов на эскизе экранной формы.

Рис. 1.

Строим с помощью инструментов Toolbox объекты на экранной форме Form1 в соответствии с эскизом проекта и пишем программный код.

2. Программный код

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 Command2_Click()

End

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 = CInt(X * 10) / 10: y1 = CInt(Y * 10) / 10: Picture1.PSet (X, Y)

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

ElseIf Счетчик = 1 Then

x2 = CInt(X * 10) / 10: y2 = CInt(Y * 10) / 10: Picture1.PSet (X, Y)

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

Else

x3 = CInt(X * 10) / 10: y3 = CInt(X * 10) / 10: Picture1.PSet (X, Y)

Счетчик = Счетчик - 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((x1 * (y3 - y2) + x2 * (y1 - y3) + x3 * (y2 - y1)) / 2)

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

End Sub

Соседние файлы в папке Задания и примеры