21 Февраль 2010

Вычислить значения медиан треугольника

Арифметика |  Таги: , , ,

Вычислить значения медиан треугольника

Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
'Функция ввода координаты точки в Textbox
Function vvod(ByVal T As TextBox) As Single
Return CSng(Val(T.Text))
End Function
'Процедура вывода результата в TextBox
Sub vivod(ByVal Z As Single, ByVal T As TextBox)
T.Text = CStr(Z)
End Sub
'Функция вычисления длины отрезка по координатам двух точек
Public Function rasst(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single) As Single
  Return CSng(Sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2))
End Function
'Процедура Вычисления длины медианы
' Может быть, легче функцией вычислять - код понятнее будет
Sub med(ByVal a As Single, ByVal b As Single, ByVal c As Single, ByRef m As Single)
m = CSng(0.5 * Sqrt(2 * b ^ 2 + 2 * c ^ 2 - a ^ 2))
End Sub
'Процедура обработки события нажатия на кнопку Button1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Single, b As Single, c As Single
Dim ma As Single, mb As Single, mc As Single

'длины треугольника ( 1й, 3й, 5й TextBox - иксы, 2й, 4й, 6й TextBox -
a = rasst(vvod(TextBox1), vvod(TextBox2), vvod(TextBox3), vvod(TextBox4))
b = rasst(vvod(TextBox5), vvod(TextBox6), vvod(TextBox3), vvod(TextBox4))
c = rasst(vvod(TextBox1), vvod(TextBox2), vvod(TextBox5), vvod(TextBox6))

Call med(a, b, c, ma) 'Вычисление медианы для /а/   Может быть, слово Call не надо.
Call med(b, a, c, mb) 'Вычисление медианы для /b/   Может быть, слово Call не надо.
Call med(c, b, a, mc) 'Вычисление медианы для /c/   Может быть, слово Call не надо.

a = ma 'переприсваевание для второго треугльника  сторонами которого являются медианы исходного треугольника (a, b, c)
b = mb
c = mc

'Снова вычисление медиан
Call med(a, b, c, ma) 'Вычисление медианы для /а/   Может быть, слово Call не надо.
Call med(b, a, c, mb) 'Вычисление медианы для /b/   Может быть, слово Call не надо.
Call med(c, b, a, mc) 'Вычисление медианы для /c/   Может быть, слово Call не надо.

'вывод в 3 textBoxa
vivod(ma, TextBox7)
vivod(mb, TextBox8)
vivod(mc, TextBox9)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
End Class


Оставить комментарий

Я не робот.