' Calculate Triangle Areas and Perimeters ' RJM Programming ' June, 2014 ' Via Yahoo Answers reference: https://au.answers.yahoo.com/question/index?qid=20140531154649AA2OMmi Module Module1 Sub Main() Dim p As Double Dim area As Double Dim s1 As String = InputBox("Please enter side1 length of triangle (whose area we'll calculate) as a positive number else negative angle1 in degrees", "0.0") Dim s2 As String = InputBox("Please enter side2 length of triangle (whose area we'll calculate) as a positive number else negative angle2 in degrees", "0.0") Dim s3 As String = InputBox("Please enter side3 length of triangle (whose area we'll calculate) as a positive number else negative angle3 in degrees", "0.0") If CDbl(s1) < 0.0 And CDbl(s2) < 0.0 And CDbl(s3) < 0.0 Then Console.Out.WriteLine("Cannot solve area for this triangle.") MsgBox("Cannot solve area for this triangle.") ' , "") ElseIf CDbl(s1) > 0.0 And CDbl(s2) > 0.0 And CDbl(s3) > 0.0 Then p = (CDbl(s1) + CDbl(s2) + CDbl(s3)) / 2.0 area = Math.Sqrt(p * (p - CDbl(s1)) * (p - CDbl(s2)) * (p - CDbl(s3))) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (CDbl(s1) + CDbl(s2) + CDbl(s3)).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (CDbl(s1) + CDbl(s2) + CDbl(s3)).ToString()) ', area.ToString()) ElseIf CDbl(s1) > 0.0 And CDbl(s2) > 0.0 And CDbl(s3) < 0.0 Then Dim as2 As Double = Math.Asin(Math.Sin(Math.Abs(CDbl(s3)) * Math.PI / 180.0) * CDbl(s2) / CDbl(s1)) * 180.0 / Math.PI Dim as1 = 180.0 - Math.Abs(CDbl(s3)) - as2 Dim ss3 As Double = CDbl(s1) * Math.Sin(CDbl(as1) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(s3) * Math.PI / 180.0)) p = (CDbl(s1) + CDbl(s2) + ss3) / 2.0 area = Math.Sqrt(p * (p - CDbl(s1)) * (p - CDbl(s2)) * (p - ss3)) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss3 + CDbl(s2) + CDbl(s1)).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss3 + CDbl(s2) + CDbl(s1)).ToString()) ', area.ToString()) ElseIf CDbl(s1) > 0.0 And CDbl(s2) < 0.0 And CDbl(s3) > 0.0 Then Dim as1 As Double = Math.Asin(Math.Sin(Math.Abs(CDbl(s2)) * Math.PI / 180.0) * CDbl(s1) / CDbl(s3)) * 180.0 / Math.PI Dim as3 = 180.0 - Math.Abs(CDbl(s2)) - as1 Dim ss2 As Double = CDbl(s1) * Math.Sin(CDbl(as3) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(as1) * Math.PI / 180.0)) p = (CDbl(s1) + CDbl(s3) + ss2) / 2.0 area = Math.Sqrt(p * (p - CDbl(s1)) * (p - CDbl(s3)) * (p - ss2)) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss2 + CDbl(s1) + CDbl(s3)).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss2 + CDbl(s1) + CDbl(s3)).ToString()) ', area.ToString()) ElseIf CDbl(s1) < 0.0 And CDbl(s2) > 0.0 And CDbl(s3) > 0.0 Then Dim as3 As Double = Math.Asin(Math.Sin(Math.Abs(CDbl(s1)) * Math.PI / 180.0) * CDbl(s3) / CDbl(s2)) * 180.0 / Math.PI Dim as2 = 180.0 - Math.Abs(CDbl(s1)) - as3 Dim ss1 As Double = CDbl(s2) * Math.Sin(CDbl(as2) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(s1) * Math.PI / 180.0)) p = (CDbl(s3) + CDbl(s2) + ss1) / 2.0 area = Math.Sqrt(p * (p - ss1) * (p - CDbl(s2)) * (p - CDbl(s3))) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s2) + CDbl(s3)).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s2) + CDbl(s3)).ToString()) ', area.ToString()) ElseIf CDbl(s1) > 0.0 And CDbl(s2) < 0.0 And CDbl(s3) < 0.0 Then Dim as1 = 180.0 - Math.Abs(CDbl(s3)) - Math.Abs(CDbl(s2)) Dim ss2 As Double = CDbl(s1) * Math.Sin(CDbl(as1) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(s3) * Math.PI / 180.0)) Dim ss3 As Double = CDbl(s1) * Math.Sin(Math.Abs(CDbl(s2) * Math.PI / 180.0)) / Math.Sin(Math.Abs(CDbl(s3) * Math.PI / 180.0)) p = (CDbl(s1) + ss2 + ss3) / 2.0 area = Math.Sqrt(p * (p - CDbl(s1)) * (p - ss2) * (p - ss3)) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss2 + CDbl(s1) + ss3).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss2 + CDbl(s1) + ss3).ToString()) ', area.ToString()) ElseIf CDbl(s1) < 0.0 And CDbl(s2) < 0.0 And CDbl(s3) > 0.0 Then Dim as3 = 180.0 - Math.Abs(CDbl(s1)) - Math.Abs(CDbl(s2)) Dim ss1 As Double = CDbl(s3) * Math.Sin(CDbl(as3) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(s2) * Math.PI / 180.0)) Dim ss2 As Double = CDbl(s3) * Math.Sin(Math.Abs(CDbl(s1) * Math.PI / 180.0)) / Math.Sin(Math.Abs(CDbl(s2) * Math.PI / 180.0)) p = (ss1 + ss2 + CDbl(s3)) / 2.0 area = Math.Sqrt(p * (p - ss1) * (p - ss2) * (p - CDbl(s3))) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s3) + ss2).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s3) + ss2).ToString()) ', area.ToString()) ElseIf CDbl(s1) < 0.0 And CDbl(s2) > 0.0 And CDbl(s3) < 0.0 Then Dim as2 = 180.0 - Math.Abs(CDbl(s1)) - Math.Abs(CDbl(s3)) Dim ss1 As Double = CDbl(s2) * Math.Sin(CDbl(as2) * Math.PI / 180.0) / Math.Sin(Math.Abs(CDbl(s1) * Math.PI / 180.0)) Dim ss3 As Double = CDbl(s2) * Math.Sin(Math.Abs(CDbl(s3) * Math.PI / 180.0)) / Math.Sin(Math.Abs(CDbl(s1) * Math.PI / 180.0)) p = (ss1 + CDbl(s2) + ss3) / 2.0 area = Math.Sqrt(p * (p - ss1) * (p - CDbl(s2)) * (p - ss3)) Console.Out.WriteLine("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s2) + ss3).ToString()) MsgBox("Area for this triangle is " + area.ToString() + " and its Perimeter is " + (ss1 + CDbl(s2) + ss3).ToString()) ', area.ToString()) Else Console.Out.WriteLine("Cannot solve area for this triangle.") MsgBox("Cannot solve area for this triangle.") ', "") End If Console.ReadKey() End Sub End Module