TextBox проверка на пустоту, но разрешение нуля - VB

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

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

Здравствуйте, просмотрел все 17 страниц по поиску *textbox*, но не нашел ничего похожего. Мой вопрос следующий: Есть величина Hm (высота полета) для нее несколько формул. Переменные в формуле задаются из соответствующих textbox'ов. Так как алгоритм линейный, обычно, если переменная не указана до формулы (ну кроме в описание типа), то компьютер пропускает формулу и идет к следующей, так проходит все и, если есть все величины, решает. Как делаю я: - Перевод из строкового в символьный - Формулы - Перевод из символьного в строковый и вывод в textbox'сы Но тут проблема. Компьютер видя переменную, значение которой не задано, дает ей ноль при переводе (все правильно, как я понял, пустота -> 0) и поэтому значение Hm в конце по нулям. Я поставил ограничение, если textbox не пустой, то переменная равна значению из него. Но оно не работает. Подскажите, пожалуйста, что не так. То есть необходимо разрешение нуля, но проверка на пустоту, ведь я могу задать значение ноль (может так по условию задачи нужно будет). К теме, если позволите еще тройку вопросов: - Есть ли в VB 6 ссылки между формами? - Можно ли сделать цикл *пока все textbox'сы не заполнятся* - Есть ли какое-нибудь более удачливое округление, кроме Round, а то оно у меня не всегда работает(криворукий) Вот пример кода:
Заранее благодарен.

Решение задачи: «TextBox проверка на пустоту, но разрешение нуля»

textual
Листинг программы
Dim g, al, t, L, Hm, Vo, TO_RAD, TO_DEG, Vyo, Vmax, Vmin 'As Double
TO_RAD = 3.14159265358979 / 180
TO_DEG = 1 / TO_RAD
If g1(0).Text <> "" Then
 g = Val(g1(0).Text)
End If
 If Al1(1).Text <> "" Then
 al = Val(Al1(1).Text)
End If
 If L1(1).Text <> "" Then
 L = Val(L1(1).Text)
End If
 If Hm1(1).Text <> "" Then
 Hm = Val(Hm1(1).Text)
End If
 If Vo1(1).Text <> "" Then
 Vo = Val(Vo1(1).Text)
End If
 If T1(1).Text <> "" Then
 t = Val(T1(1).Text)
End If
 If Vyo1(0).Text <> "" Then
 Vyo = Val(Vyo1(0).Text)
End If
 If Vmax1(1).Text <> "" Then
 Vmax = Val(Vmax1(1).Text)
End If
If Vmin1(1).Text <> "" Then
Vmin = Val(Vmin1(1).Text)
End If
If Not IsEmpty(Vo) And Not IsEmpty(al) And Not IsEmpty(g) Then
  Hm = ((Vo ^ 2 * Sin(al * TO_RAD) ^ 2)) / (2 * g)
ElseIf Not IsEmpty(Vyo) And Not IsEmpty(g) Then
  Hm = (Vyo ^ 2) / (2 * g)
ElseIf Not IsEmpty(t) And Not IsEmpty(g) Then
  Hm = (t ^ 2 * g) / 8
ElseIf Not IsEmpty(Vmax) And Not IsEmpty(Vmin) And Not IsEmpty(g) Then
  Hm = (Vmax ^ 2 - Vmin ^ 2) / 2 * g
Else
  MsgBox "Некорректные данные"
End If

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


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

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

14   голосов , оценка 4 из 5