Crear Funcion Visual Basic.net

Namaris
Module Calcular

Function calcular(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer)
    Dim resul As Double
    resul = (b ^ 2 - (4 * a * c))
    Return resul

End Function
Sub Main()
    Dim a As Integer = 1, b As Integer = 5, c As Integer = 2, t As Double
    Dim resul As Double
    t = resul(a, b, c)
    System.Console.WriteLine(t)
End Sub
End Module

Alguien ve ahi porque me da error y no compila? porque no me da el resultado...

erdanblo

<npi>

System.Console.ReadLine()

</npi>

Z3R0KULL

en que momento has llamado a la funcion calcular?

t = resul(a, b, c)

Ahí creo que deberia ir

t=calcular(a, b, c)

Ah! y para ver los resultados, como dice erdanblo, pon un System.Console.ReadLine() para que no se te cierre la ventana de ejecucion

Namaris

Al final me lo dijeron por el msn, era ese fallo tan tonto de haber puesto mal el nombre de la funcion...

Y lo de ReadLine() no lo uso por la simple razon de que en vez de darle F5 pulso Ctrl+F5 y asi una vez ejecutado el programa no se cierra (me refiero dentro del IDE de Visual Studio)

Gracias

SeiYa

erdanblo ha puesto <npi> (ni puta idea) osea que no se lo tengas muy en cuenta XD

bLaKnI

Function calcular(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer)
esta mal.

Seria:

Function calcular(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) as ?

osea, te falta comentar que devuelve la función.

Z3R0KULL

#6 no, no está mal. La funcion compila y funciona. Lo unico que tiene mal es que no ha llamado a la funcion en el main. Es cierto que no ha dicho que devuelve la funcion en la declaración, pero aun asi funciona

Soltrac

#7 Funciona, pero devuelve un object en vez del tipo q debe devolver. Como Visual Basic se traga todas las conversiones, da =, pero debería avisar al menos, cosa q no hace.

B

Tu error esta aqui:

t = resul(a, b, c)

al ser t un double. Lo que estas moviendo a t es una array de 3 dimensiones. Llama al metodo y olvidate.

Si me dejas explicarte un poco como escribir mejor te sera mas facil saber donde estan los errores:

  1. Module Calcular
    2.

  2. [public] Function calcular(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) [As Double]

  3. [Return (b ^ 2 - (4 * a * c))]

  4. End Function

  5. Sub Main()

  6. Dim a As Integer = 1, b As Integer = 5, c As Integer = 2', t As Double

  7. 'Dim resul As Double

  8. 't = resul(a, b, c)

  9. System.Console.WriteLine(calcular(a,b,c))

  10. End Sub

  11. End Module

Namaris

#9 Ahi en la linea 9. has cometido el mismo error que yo, has puesto

t = resul(a, b, c)

y habia que poner

t = calcular(a, b, c)

Porque la funcion se llama calcular, no resul :)

Usuarios habituales