2016-02-05 3 views
0

Я хочу, чтобы вычислить число Рейнольдса, используя VB.NETПростой расчет в VB.Net

Это мой код:

Public Class Form1 

Dim vis As Integer 
Dim Den As Integer 
Dim hd As Integer 
Dim vl As Integer 
Dim re As Integer 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    vis = Int(TextBox1.Text) 
    Den = Int(TextBox2.Text) 
    hd = Int(TextBox4.Text) 
    vl = Int(TextBox5.Text) 
    re = (Den * vl * hd)/vl 
    TextBox3.Show(re) 

End Sub 

End Class 

Смотрите мой интерфейс here.

Почему я все еще получаю сообщение об ошибке «слишком много аргументов»?

+2

Если вы хотите отправить 're' в текстовое поле, это' TextBox3.Text = re.ToString() '. Вы должны включить Option Strict, хотя результат '(Den * vl * hd)/vl' будет двойным, а не целочисленным – Plutonix

+0

Если я прав, это не так, как рассчитать число Рейнольдса **. Я бы посмотрел больше *** https: //en.wikipedia.org/wiki/Reynolds_number*** там, прежде чем попробовать это ... – Codexer

+0

BTW, '.Show()' просто устанавливает для свойства .Visible значение true. – Plutonix

ответ

3

В коде, который вы опубликовали, есть несколько вещей, во-первых, неправильный расчет числа Рейнольдса. Во-вторых, пожалуйста, включите Option Strict, так как с вашим текущим кодом он не будет компилироваться. В-третьих, пожалуйста, используйте обычные соглашения об именах, что делает его трудным в долгосрочной перспективе ... Там больше, но не в этом суть ...

Предлагаемое решение

Variable Декларация Значение:

  • d = Диаметр трубы
  • V = скорость жидкости
  • и = Viscoscity жидкости
  • р = Den плотность от жидкого
  • карапуза = Число Рейнольдса

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim d,v,u,p,tot As Single 
    
    If Single.TryParse(TextBox1.Text,d) AndAlso Single.TryParse(TextBox2.Text,v) AndAlso Single.TryParse(TextBox3.Text,u) AndAlso Single.TryParse(TextBox1.Text,p) Then 
        tot = (d * v * p)/(u * 0.001) 
    
        MessageBox.Show(tot.ToString) 
        'OR 
        TextBox3.Text = tot.ToString 
    End If 
    End Sub 
    
+0

'TextBox3.Show (tot.ToString)'? – Plutonix

+1

@Plutonix предназначен для добавления 'MessageBox' ... nice catch :) – Codexer

+3

Почему бы ему не показать его, как поместить его в умело названное текстовое поле (например,' TextBox13'), так как это был его фактический вопрос – Plutonix

0

Функция Int не делает преобразование типов. Он просто возвращает интегральную часть значения (14.8 станет 14). Чтобы сделать это преобразование, вы хотите использовать CInt, если вы гарантируете, что входящий текст действительно является числом.

Поскольку вы используете пользовательские значения, вы можете использовать некоторую коррекцию ошибок.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    If Integer.TryParse(TextBox1.Text, vis) AndAlso _ 
     Integer.TryParse(TextBox2.Text, Den) AndAlso _ 
     Integer.TryParse(TextBox4.Text, hd) AndAlso _ 
     Integer.TryParse(TextBox5.Text, vl) Then 

     'Do your calculation 
    Else 
     'There is some kind of error. Don't do the calculation 
    End If 
End Sub 

Я не собираюсь решать, правильна ли ваша формула или нет.

+3

Просто предложение ' TryParse' ошибочно вы используете. Требуется строка и целое число, а не целое число/строка. – Codexer

+0

Да. Я просто набрал его, не возвращаясь к IDE для проверки. Я отредактирую ответ. –

+0

Я попытался сделать исправление ошибок, как вы предложили. Это код: –

Смежные вопросы