Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
bmstu-team
 Аватар для antonboom
301 / 136 / 91
Регистрация: 10.01.2012
Сообщений: 420
Записей в блоге: 10

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

01.11.2012, 21:02. Показов 989. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Function ArcSin(X As Double) As Double
   ArcSin = Atn(X / Sqr(-X * X + 1))
End Function
 
Private Sub Image2_Click()
 
Dim g, al, Hm As Double
Dim Vo As Variant
 
If g1(0).Text <> "" Then
 g = Val(g1(0).Text) 
End If
 If Vo1(1).Text <> "" Then
 Vo = Val(Vo1(1).Text) 
End If
If Hm(1).Text <> "" Then
 Hm = Val(Hm(1).Text) 
End If
 
If IsEmpty(al) Then
If Not IsEmpty(Hm) And Not IsEmpty(Vo) And Not IsEmpty(g) And ((2 * g * Hm) ^ (1 / 2)) / Vo < 1 Then
 al = ArcSin(((2 * g * Hm) ^ (1 / 2)) / Vo) * TO_DEG
 
al1.text = al
 
End Sub
Почему он выводит деление на ноль если ничего не вводить в текст боксы?
Почему он выводит ошибку из-за корня из отрицательного числа, если поставил условие.

Спасибо=*
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2012, 21:02
Ответы с готовыми решениями:

Возникает ошибка "Деление на ноль", когда на ноль ничего и нигде не делится
Написал программу, которая выводит на экран координаты клика мыши. SSEG segment stack db 256 dup(0) SSEG ends ...

Как запретить вводить ноль первым в textbox?
Но разрешить вводить числа как 0.6

Разрешено ли деление на ноль, если числитель равен нулю
Разрешено ли деление на ноль, если числитель тоже ноль.

4
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 65
01.11.2012, 21:14
Попробуйте поставить.
Visual Basic
1
On Error Resume Next
Может быть поможет
0
bmstu-team
 Аватар для antonboom
301 / 136 / 91
Регистрация: 10.01.2012
Сообщений: 420
Записей в блоге: 10
01.11.2012, 21:54  [ТС]
не помогает
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.11.2012, 23:24
antonboom, из этого фрагмента трудно понять. Видна только путаница с типами. Здесь
Visual Basic
1
Dim g, al, Hm As Double
g, al объявлены как Variant.
Функция IsEmpty применима только к Variant, IsEmpty(Hm) всегда возвращает False.
0
Телекомпания ВИD
 Аватар для anny05
1364 / 115 / 19
Регистрация: 14.10.2012
Сообщений: 100
02.11.2012, 02:29
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'На форме текстбоксы с именами: 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
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2012, 02:29
Помогаю со студенческими работами здесь

Как сделать так чтобы если на ноль было деление не выодился Результат
var a,d,c:real; b:char; procedure kakulyator; begin case b of '+':d:=a+c; '-':d:=a-c; '*':d:=a*c; '/': if c=0 then writeln...

Сделать, чтобы при попытке деления на ноль, выводилось сообщение: «Деление на ноль»
Создайте консольное приложение. В нем реализуйте нахождение значения выражения 1/(x+n), где n – ваш вариант, а вместо х должно вводиться...

Отключение radiobutton, если в textbox ничего не написано
Как сделать так, чтобы radiobutton отключался, если в text box ничего не написано if (Value.Text.Length &gt; 0) {...

Dataview - не отображать в datagrid ничего, если textbox пустой
Добрый день. есть datatable, datagridview и dataview. В dataview есть фильтр, который отображает данные, которые совпадают с textbox. Если...

Подтверждение в консоли: При вводе "y" всё ок, если вводить другое — то первый раз ничего не происходит
Добрый вечер. Написал простенькое подтверждение: Console.WriteLine(&quot;\nНайдёны схожие файлы:\n{0} и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru