Тригонометрическая функция: деление на ноль, если ничего не вводить в TextBox - VB

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

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

Почему он выводит деление на ноль если ничего не вводить в текст боксы? Почему он выводит ошибку из-за корня из отрицательного числа, если поставил условие. Спасибо=*

Решение задачи: «Тригонометрическая функция: деление на ноль, если ничего не вводить в TextBox»

textual
Листинг программы
'На форме текстбоксы с именами: g1, Vo1, Hm1, al1 и рисунок Image2
 
Function ArcSin(X As Double) As Double 'результат в радианах
    If Abs(X) = 1 Then ArcSin = Sgn(X) * 3.14159265358979 / 2: Exit Function
    ArcSin = Atn(X / Sqr(-X * X + 1))
End Function
 
Private Sub Image2_Click()
 
Const TO_DEG = 180 / 3.14159265358979
Dim g#, Vo#, Hm#, al#  'Double
 
g1.Text = Replace(g1.Text, ".", ",", , , vbTextCompare)
If IsNumeric(g1.Text) Then g = CDbl(g1.Text) Else: MsgBox "Введите g правильно!", , "": Exit Sub
If g < 0 Then MsgBox "Ошибка: g < 0!", , "": Exit Sub
 
Vo1.Text = Replace(Vo1.Text, ".", ",", , , vbTextCompare)
If IsNumeric(Vo1.Text) Then Vo = CDbl(Vo1.Text) Else: MsgBox "Введите Vo правильно!", , "": Exit Sub
If Vo = 0 Then MsgBox "Vo не должно быть нуль!", , "": Exit Sub
 
Hm1.Text = Replace(Hm1.Text, ".", ",", , , vbTextCompare)
If IsNumeric(Hm1.Text) Then Hm = CDbl(Hm1.Text) Else: MsgBox "Введите Hm правильно!", , "": Exit Sub
If Hm < 0 Then MsgBox "Ошибка: Hm < 0!", , "": Exit Sub
 
al = ((2 * g * Hm) ^ (1 / 2)) / Vo
If Abs(al) > 1 Then MsgBox "Модуль аргумента арксинуса > 1!" & vbCrLf & "Введите другие параметры", , "": Exit Sub
 
al = ArcSin(al) * TO_DEG 'результат в градусах
al1.Text = al
 
End Sub

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


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

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

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