Другие языки программирования и технологии
Помогите написать программу на Visual Basic (найти ошибку)
Никогда не работал с VB, но теперь пришлось. Задание: написать программу, которая по 3 сторонам треугольника ABC определяет, прямоугольный ли он. Если нет, то находит угол С. Написал программу, там 1 окошко с тремя полями ввода, кнопкой пуск и полем вывода. Неработает. Текст ниже. Вопрос 1: Почему ругается на acos и где собственно ошибки? Вопрос 2: Как сделать проверку, что в поля введены именно числовые значения? Dim AB As Integer Dim BC As Integer Dim CA As Integer Private Sub Start_Click() AB = (TextAB.Text) BC = (TextBC.Text) CA = (TextCA.Text) If AB + BC < CA Or AB + CA < BC Or CA + BC < AB Then LabelResult.Caption = "Стороны заданы неверно" Else If AB ^ 2 = BC ^ 2 + CA ^ 2 Or BC ^ 2 = AB ^ 2 + CA ^ 2 Or CA ^ 2 = BC ^ 2 + AB ^ 2 Then LabelResult.Caption = "Треугольник прямоугольный" Else LabelResult.Caption = acos((BC ^ 2 + CA ^ 2 - AB ^ 2) / 2 * BC * CA) End If End If End Sub Буду рад, если кто поможет. Задачка простая, но я этого языка не знаю почти. Если кто может, скоректируйте до рабочего варианта.
нет такой функции
попробуй написать свою функцию, например:
' arc sine
' error if value is outside the range [-1,1]
Function ASin(value As Double) As Double
If Abs(value) <> 1 Then
ASin = Atn(value / Sqr(1 - value * value))
Else
ASin = 1.5707963267949 * Sgn(value)
End If
End Function
' arc cosine
' error if NUMBER is outside the range [-1,1]
Function ACos(ByVal number As Double) As Double
If Abs(number) <> 1 Then
ACos = 1.5707963267949 - Atn(number / Sqr(1 - number * number))
ElseIf number = -1 Then
ACos = 3.14159265358979
End If
'elseif number=1 --> Acos=0 (implicit)
End Function
' arc cotangent
' error if NUMBER is zero
Function ACot(value As Double) As Double
ACot = Atn(1 / value)
End Function
' arc secant
' error if value is inside the range [-1,1]
Function ASec(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ASec = ACos(1 / value)
If Abs(value) <> 1 Then
ASec = 1.5707963267949 - Atn((1 / value) / Sqr(1 - 1 / (value * value)))
Else
ASec = 3.14159265358979 * Sgn(value)
End If
End Function
' arc cosecant
' error if value is inside the range [-1,1]
Function ACsc(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ACsc = ASin(1 / value)
If Abs(value) <> 1 Then
ACsc = Atn((1 / value) / Sqr(1 - 1 / (value * value)))
Else
ACsc = 1.5707963267949 * Sgn(value)
End If
End Function
попробуй написать свою функцию, например:
' arc sine
' error if value is outside the range [-1,1]
Function ASin(value As Double) As Double
If Abs(value) <> 1 Then
ASin = Atn(value / Sqr(1 - value * value))
Else
ASin = 1.5707963267949 * Sgn(value)
End If
End Function
' arc cosine
' error if NUMBER is outside the range [-1,1]
Function ACos(ByVal number As Double) As Double
If Abs(number) <> 1 Then
ACos = 1.5707963267949 - Atn(number / Sqr(1 - number * number))
ElseIf number = -1 Then
ACos = 3.14159265358979
End If
'elseif number=1 --> Acos=0 (implicit)
End Function
' arc cotangent
' error if NUMBER is zero
Function ACot(value As Double) As Double
ACot = Atn(1 / value)
End Function
' arc secant
' error if value is inside the range [-1,1]
Function ASec(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ASec = ACos(1 / value)
If Abs(value) <> 1 Then
ASec = 1.5707963267949 - Atn((1 / value) / Sqr(1 - 1 / (value * value)))
Else
ASec = 3.14159265358979 * Sgn(value)
End If
End Function
' arc cosecant
' error if value is inside the range [-1,1]
Function ACsc(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ACsc = ASin(1 / value)
If Abs(value) <> 1 Then
ACsc = Atn((1 / value) / Sqr(1 - 1 / (value * value)))
Else
ACsc = 1.5707963267949 * Sgn(value)
End If
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim AB As Integer
Dim BC As Integer
Dim CA As Integer
AB = (TextBox1.Text)
BC = (TextBox2.Text)
CA = (TextBox3.Text)
If AB + BC < CA Or AB + CA < BC Or CA + BC < AB Then
Label1.Text = "Стороны заданы неверно"
Else
If AB ^ 2 = BC ^ 2 + CA ^ 2 Or BC ^ 2 = AB ^ 2 + CA ^ 2 Or CA ^ 2 = BC ^ 2 + AB ^ 2 Then
Label1.Text = "Треугольник прямоугольный"
Else
Label1.Text = "не прямоугольный"
End If
End If
End Sub
вариант то в принципе рабочий
арккосинус вызывается так: Math.Acos(double)
проверка на число IsNumeric(TextAB.Text)
Dim AB As Integer
Dim BC As Integer
Dim CA As Integer
AB = (TextBox1.Text)
BC = (TextBox2.Text)
CA = (TextBox3.Text)
If AB + BC < CA Or AB + CA < BC Or CA + BC < AB Then
Label1.Text = "Стороны заданы неверно"
Else
If AB ^ 2 = BC ^ 2 + CA ^ 2 Or BC ^ 2 = AB ^ 2 + CA ^ 2 Or CA ^ 2 = BC ^ 2 + AB ^ 2 Then
Label1.Text = "Треугольник прямоугольный"
Else
Label1.Text = "не прямоугольный"
End If
End If
End Sub
вариант то в принципе рабочий
арккосинус вызывается так: Math.Acos(double)
проверка на число IsNumeric(TextAB.Text)
Похожие вопросы
- Нужно СРОЧНО написать программу в Visual Basic!!!!Помогите, пожалуйста!!!
- Что лучше для новичка, что бы написать программу? 1.Visual Basic 2.Delphi 3.C++ 4.Assembler
- Помогите написать программу на Visual Basis
- Visual Basic.Помогите написать программу.
- Помогите написать легкую программу в Visual Basic которая складывала бы 2 числа.
- Напишите пожалуйста программу на visual basic 2010(Пожалуйста очень нужно)
- Помогите. Выполнить обязательно в Visual basic. Даже не Free basic. Либо помогите расписать каждую строчку кода.
- Написать программу на Visual BasicВ каждом слове текста замените "а" на букву "е", если "а" стоит начетном месте, и заме
- Напишите код для visual basic 6 чтоб калькулятор работал в режим deg и rad ли напишите эту функцию
- Какая среда программирования нужна для написания программ на Visual Basic .NET