как убрать эти ошибки и что не так прописано?
программа для вычисления по формуле, предусмотрев, чтобы не было 0 в знаменателе
Другие языки программирования и технологии
что не так? Visual basic (см внутри)
Все дело в том, что после проверки все равно идет попытка выполнить действие.
Соответственно происходит ошибка.
Если пользователь ввел неправильные данные,
надо покидать процедуру не выполняя никаких математических расчетов.
Private Sub Command1_Click()
Dim x As Single
x = Val(chislo.Text)
If x = 2 Then
result.Captiоn = "Нельзя делить на 0"
Exit Sub
End If
' В принципе, вся эта конструкция теряет смысл,
' так как ранее использована функция Val()
' Даже если юзер введет "фывапро" или ничего не введет, то
' функция вернет "0".
' Это все можно заремарить или просто удалить
If chislo.Text = Empty Then
result.Captiоn = "Введи число"
Exit Sub
End If
result.Captiоn = (x - 1) / (x - 2)
End Sub
Немного "пригладим код" и получим
Private Sub Command1_Click()
Dim x As Single
x = Val(chislo.Text)
If x = 2 Then
result.Captiоn = "Нельзя делить на 0"
Else
result.Captiоn = (x - 1) / (x - 2)
End If
End Sub
P.S. Скриншотики, это очень хорошо, но они такие мелкие, что без микроскопа не рассмотреть...
Соответственно происходит ошибка.
Если пользователь ввел неправильные данные,
надо покидать процедуру не выполняя никаких математических расчетов.
Private Sub Command1_Click()
Dim x As Single
x = Val(chislo.Text)
If x = 2 Then
result.Captiоn = "Нельзя делить на 0"
Exit Sub
End If
' В принципе, вся эта конструкция теряет смысл,
' так как ранее использована функция Val()
' Даже если юзер введет "фывапро" или ничего не введет, то
' функция вернет "0".
' Это все можно заремарить или просто удалить
If chislo.Text = Empty Then
result.Captiоn = "Введи число"
Exit Sub
End If
result.Captiоn = (x - 1) / (x - 2)
End Sub
Немного "пригладим код" и получим
Private Sub Command1_Click()
Dim x As Single
x = Val(chislo.Text)
If x = 2 Then
result.Captiоn = "Нельзя делить на 0"
Else
result.Captiоn = (x - 1) / (x - 2)
End If
End Sub
P.S. Скриншотики, это очень хорошо, но они такие мелкие, что без микроскопа не рассмотреть...
Деление на 0. О да!
Вероятно, вы пытаетесь присвоить числовой переменной текстовое значение.
плохо виден код. вроде иф не закрыт, поэтому ругается.
Подряд идут два IF вот редактор и "запутался". Лучше использовать полную конструкцию, даже если она в одну строку получится.
Ну а вообще, смотрим логику: если ввели 2, то что имеем? Выводим в result "нельзя делить на 0" и благополучно дальше считаем.. . Надо сделать так:
If x = 2 Then
result.Captiоn = "нельзя делить на 0"
exit sub
end if
Кстати, а какой смысл во второй проверке? Ну не ввел человек число. Может, он решил, что х=0. Математически это возможно...
Ну а вообще, смотрим логику: если ввели 2, то что имеем? Выводим в result "нельзя делить на 0" и благополучно дальше считаем.. . Надо сделать так:
If x = 2 Then
result.Captiоn = "нельзя делить на 0"
exit sub
end if
Кстати, а какой смысл во второй проверке? Ну не ввел человек число. Может, он решил, что х=0. Математически это возможно...
надо сделать так, чтобы с клавиатуры нельзя было нажать 2, это реально. иначе программа делит на 0
по скольку видно иф не закрыт а так лучше написать было код и разобрались бы быстрее
Похожие вопросы
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.
- Подойдет ли самоучитель по Visual Basic .NET для освоения языка Basic, человеку не понимающему в программировании?
- Visual Basic или C#
- Нужна помощь по Visual Basic
- visual basic 6
- visual basic 2008
- Программа на Microsoft Visual Basic 2008
- как в visual basic определить методом Монте-Карло площадь треугольника?
- Visual Basic и Excel (+)
- как можно удалить темп файлы с помощью visual basic. . как можно удалить темп файлы с помощью visual basic