Определение вида треугольника по координатам его вершин - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Координаты вершин треугольника вводятся с клавиатуры. Определить существует ли треугольник, а если существует то какой?
Почему не всегда выводит значение s2, а только иногда? Исправьте, пожалуйста ошибку.
Надо изменить последние две проверки
А прямоугольный не выводит скорее всего потому, что машинные вычисления не достаточно точные и величины не приравниваются.

Решение задачи: «Определение вида треугольника по координатам его вершин»

textual
Листинг программы
'…
 MsgBox(getTypeTriangle(2, 2, 3.7))
'…
Private Function getTypeTriangle(ByVal a As Double, ByVal b As Double, ByVal c As Double) As String
    Dim ss As String = String.Empty
    Dim dd As Double = Double.Epsilon
    If (a + b > c) And (b + c > a) And (a + c > b) Then
        'треугольник существует
        Dim hh() As Double = {a ^ 2, b ^ 2, c ^ 2}
        Array.Sort(hh) 'hh(2) - максимальное значение
        Dim h12 As Double = hh(1) + hh(0)
        If hh(2) >= h12 - dd And hh(2) <= h12 + dd Then Return "треугольник прямоугольный"
        If hh(2) < h12 Then
            ss = "треугольник остроугольный"
            If hh(2) - hh(1) < dd And hh(2) - hh(0) < dd And hh(1) - hh(0) < dd Then
                ss &= " (равносторонний)"
            ElseIf hh(2) - hh(1) < dd Or hh(2) - hh(0) < dd Or hh(1) - hh(0) < dd Then
                ss &= " (равнобедренный)"
            End If
        Else
            ss = "треугольник тупоугольный"
            If hh(2) - hh(1) < dd Or hh(2) - hh(0) < dd Or hh(1) - hh(0) < dd Then
                ss &= " (равнобедренный)"
            End If
        End If
    Else
        ss = "треугольник не существует"
    End If
    Return ss
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы