Определение вида треугольника по координатам его вершин - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д