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

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

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

Здравствуйте, просмотрел все 17 страниц по поиску *textbox*, но не нашел ничего похожего. Мой вопрос следующий: Есть величина Hm (высота полета) для нее несколько формул. Переменные в формуле задаются из соответствующих textbox'ов. Так как алгоритм линейный, обычно, если переменная не указана до формулы (ну кроме в описание типа), то компьютер пропускает формулу и идет к следующей, так проходит все и, если есть все величины, решает. Как делаю я: - Перевод из строкового в символьный - Формулы - Перевод из символьного в строковый и вывод в textbox'сы Но тут проблема. Компьютер видя переменную, значение которой не задано, дает ей ноль при переводе (все правильно, как я понял, пустота -> 0) и поэтому значение Hm в конце по нулям. Я поставил ограничение, если textbox не пустой, то переменная равна значению из него. Но оно не работает. Подскажите, пожалуйста, что не так. То есть необходимо разрешение нуля, но проверка на пустоту, ведь я могу задать значение ноль (может так по условию задачи нужно будет). К теме, если позволите еще тройку вопросов: - Есть ли в VB 6 ссылки между формами? - Можно ли сделать цикл *пока все textbox'сы не заполнятся* - Есть ли какое-нибудь более удачливое округление, кроме Round, а то оно у меня не всегда работает(криворукий) Вот пример кода:
Листинг программы
  1. Private Sub chet_Click()
  2. Dim g, al, t, L, Hm, Vo, TO_RAD, TO_DEG, Vyo, Vmax, Vmin As Double
  3. TO_RAD = 3.14159265358979 / 180
  4. TO_DEG = 1 / TO_RAD
  5. If g1(0).Text <> "" Then
  6. g = Val(g1(0).Text)
  7. End If
  8. If Al1(1).Text <> "" Then
  9. al = Val(Al1(1).Text)
  10. End If
  11. If L1(1).Text <> "" Then
  12. L = Val(L1(1).Text)
  13. End If
  14. If Hm1(1).Text <> "" Then
  15. Hm = Val(Hm1(1).Text)
  16. End If
  17. If Vo1(1).Text <> "" Then
  18. Vo = Val(Vo1(1).Text)
  19. End If
  20. If T1(1).Text <> "" Then
  21. t = Val(T1(1).Text)
  22. End If
  23. If Vyo1(0).Text <> "" Then
  24. Vyo = Val(Vyo1(0).Text)
  25. End If
  26. If Vmax1(1).Text <> "" Then
  27. Vmax = Val(Vmax1(1).Text)
  28. End If
  29. If Vmin1(1).Text <> "" Then
  30. Vmin = Val(Vmin1(1).Text)
  31. End If
  32. Hm = ((Vo ^ 2 * Sin(al * TO_RAD) ^ 2)) / (2 * g)
  33. Hm = (Vyo ^ 2) / (2 * g)
  34. Hm = (t ^ 2 * g) / 8
  35. Hm = (Vmax ^ 2 - Vmin ^ 2) / 2 * g
  36. g1(0).Text = Str(g)
  37. Al1(1).Text = Str(al)
  38. L1(1).Text = Str(L)
  39. Hm1(1).Text = Str(Hm)
  40. Vo1(1).Text = Str(Vo)
  41. Vyo1(0).Text = Str(Vyo)
  42. Vmax1(1).Text = Str(Vmax)
  43. Vmin1(1).Text = Str(Vmin)
  44. T1(1).Text = Str(t)
  45. End Sub
Заранее благодарен.

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

textual
Листинг программы
  1. Dim g, al, t, L, Hm, Vo, TO_RAD, TO_DEG, Vyo, Vmax, Vmin 'As Double
  2. TO_RAD = 3.14159265358979 / 180
  3. TO_DEG = 1 / TO_RAD
  4. If g1(0).Text <> "" Then
  5.  g = Val(g1(0).Text)
  6. End If
  7.  If Al1(1).Text <> "" Then
  8.  al = Val(Al1(1).Text)
  9. End If
  10.  If L1(1).Text <> "" Then
  11.  L = Val(L1(1).Text)
  12. End If
  13.  If Hm1(1).Text <> "" Then
  14.  Hm = Val(Hm1(1).Text)
  15. End If
  16.  If Vo1(1).Text <> "" Then
  17.  Vo = Val(Vo1(1).Text)
  18. End If
  19.  If T1(1).Text <> "" Then
  20.  t = Val(T1(1).Text)
  21. End If
  22.  If Vyo1(0).Text <> "" Then
  23.  Vyo = Val(Vyo1(0).Text)
  24. End If
  25.  If Vmax1(1).Text <> "" Then
  26.  Vmax = Val(Vmax1(1).Text)
  27. End If
  28. If Vmin1(1).Text <> "" Then
  29. Vmin = Val(Vmin1(1).Text)
  30. End If
  31. If Not IsEmpty(Vo) And Not IsEmpty(al) And Not IsEmpty(g) Then
  32.   Hm = ((Vo ^ 2 * Sin(al * TO_RAD) ^ 2)) / (2 * g)
  33. ElseIf Not IsEmpty(Vyo) And Not IsEmpty(g) Then
  34.   Hm = (Vyo ^ 2) / (2 * g)
  35. ElseIf Not IsEmpty(t) And Not IsEmpty(g) Then
  36.   Hm = (t ^ 2 * g) / 8
  37. ElseIf Not IsEmpty(Vmax) And Not IsEmpty(Vmin) And Not IsEmpty(g) Then
  38.   Hm = (Vmax ^ 2 - Vmin ^ 2) / 2 * g
  39. Else
  40.   MsgBox "Некорректные данные"
  41. End If

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут