Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - aorozco

Páginas: [1]
1
Hola,
Soy nuevo en el foro pero tengo un problema con un programa en Visual Basic ultima versión al momento de colocar los datos. Pues la respuesta que me debe dar es 0.25 y al ingresar los valores con (.) me da 5.015 y si los ingreso con (,) no me corre el programa y se detiene. el código que uso es el siguiente:
       
 
Código: [Seleccionar]
Dim Qd, ks, dd, Ec, Ev, dh, l, z2, H, p, u, km, di, g, visc, hf1, v, Q, hf2, er As Double
        Qd = TextBox1.Text
        ks = TextBox2.Text
        dd = TextBox3.Text
        Ec = TextBox4.Text
        Ev = TextBox5.Text
        dh = TextBox6.Text
        l = TextBox7.Text
        z2 = TextBox8.Text
        H = TextBox9.Text
        p = TextBox10.Text
        u = TextBox11.Text
        km = TextBox12.Text
        di = TextBox13.Text

        g = 9.81
        visc = u / p
        hf1 = H - z2

        Dim comprobacion As Boolean
        comprobacion = False

        Do Until (comprobacion.Equals(True))

            v = ((-2 * Math.Sqrt(2 * g * di * hf1)) / Math.Sqrt(l)) * Math.Log10(((ks) / (3.7 * di)) + ((2.51 * visc * Math.Sqrt(l)) / (di * Math.Sqrt(2 * g * di * hf1))))
            Q = v * (Math.PI) * (di ^ 2) / 4

            Dim comprobacion1 As Boolean
            comprobacion1 = False

            Do Until (comprobacion1.Equals(True))

                If (Q >= Qd) Then
                    comprobacion1 = True
                Else
                    di = di + dd
                    v = ((-2 * Math.Sqrt(2 * g * di * hf1)) / Math.Sqrt(l)) * Math.Log10(((ks) / (3.7 * di)) + ((2.51 * visc * Math.Sqrt(l)) / (di * Math.Sqrt(2 * g * di * hf1))))
                    Q = v * (Math.PI * (di ^ 2) / 4)
                End If

            Loop
            'La parte de peridas altas va desde aca'

            Dim vp As Double

            vp = Math.Sqrt((2 * g * H) / (km))

            Dim comprobacionv As Boolean
            comprobacionv = False

            Do Until (comprobacionv.Equals(True))

                If (v < vp) Then
                    comprobacionv = True
                    'el procedimiento A va desde aca'
                Else
                    hf1 = 0.000001
                    Do Until (comprobacionv.Equals(True))
                        v = ((-2 * Math.Sqrt(2 * g * di * hf1)) / Math.Sqrt(l)) * Math.Log10(((ks) / (3.7 * di)) + ((2.51 * visc * Math.Sqrt(l)) / (di * Math.Sqrt(2 * g * di * hf1))))
                        Q = v * (Math.PI * (di ^ 2) / 4)

                        Dim comprovacionv1 As Boolean
                        comprovacionv1 = False

                        Do Until (comprovacionv1.Equals(True))

                            If (Q > Qd) Then
                                comprovacionv1 = True
                            Else
                                di = di + dd
                                v = ((-2 * Math.Sqrt(2 * g * di * hf1)) / Math.Sqrt(l)) * Math.Log10(((ks) / (3.7 * di)) + ((2.51 * visc * Math.Sqrt(l)) / (di * Math.Sqrt(2 * g * di * hf1))))
                                Q = v * (Math.PI * (di ^ 2) / 4)
                            End If

                        Loop

                        vp = Math.Sqrt((2 * g * (H - hf1)) / km)

                        If ((Math.Abs(v - vp)) < Ev) Then
                            comprobacionv = True
                        Else
                            If (v < vp) Then
                                hf1 = hf1 + dh
                            Else
                                hf1 = hf1 - dh
                            End If
                            di = 0.015
                        End If
                    Loop
                End If
            Loop

            'La parte de peridas altas va hasta aca'

            hf2 = H - z2 - (v ^ 2 / (2 * g))

            Dim comprobacion2 As Boolean
            comprobacion2 = False

            Do Until (comprobacion2.Equals(True))

                If ((Math.Abs(hf1 - hf2) <= er)) Then
                    comprobacion2 = True
                Else
                    v = ((-2 * Math.Sqrt(2 * g * di * hf2)) / Math.Sqrt(l)) * Math.Log10(((ks) / (3.7 * di)) + ((2.51 * visc * Math.Sqrt(l)) / (di * Math.Sqrt(2 * g * di * hf2))))
                    Q = v * (Math.PI * (di ^ 2) / 4)
                    hf1 = hf2
                    hf2 = H - z2 - (v ^ 2 / (2 * g))
                End If

            Loop

            If (Q >= Qd) Then
                comprobacion = True
            Else
                comprobacion = False
            End If

            Label14.Text = "d = " + di.ToString

        Loop
    End Sub


Los valores en los cuadros de texto son en orden: 0.12, 0.00015, 0.005, 0.01, 0.01, 0.05, 17, 0, 2.2, 999.3, 0.00117, 4.3, 0.1.

Si alguien me puede ayudar es URGENTE  :(

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".