Programación General > Visual Basic para principiantes
Encuentra el error
Begeo:
Saludos.
Verán, me di cuenta de que de los errores se aprenden. Así, solemos encontrar nuestros errores a tiempo, mientras que otros más o menos graves son dejados de la mano de dios.
La idea de este tópic es, para los que no les importe postear un poco de su código, mostrar pequeños trozos de código mostrando errores que hemos encontrado, para que no sólo nosotros aprendamos, sino también los demás.
Empiezo yo con este trozo:
--- Código: Text ---Dim CartaElegida As IntegerDim VolverAEmpezar As BooleanVolverAEmpezar = TrueDo While VolverAEmpezar = True CartaElegida = CStr(Rand(1, 5))
Encuentren los errores ;3
m0skit0:
Sin ejecutarlo, te digo que
1) Te falta el LOOP al final del bucle
--- Código: Text --- Do While VolverAEmpezar = True CartaElegida = CStr(Rand(1, 5))LOOP
2) El bucle es infinito puesto que en su interior no se cambia la condición de salida.
3) CartaElegida es un entero y le asignas un valor String en
--- Código: Text ---CartaElegida = CStr(Rand(1, 5))
Begeo:
--- Cita de: "m0skit0" ---Sin ejecutarlo, te digo que
1) Te falta el LOOP al final del bucle
--- Código: Text --- Do While VolverAEmpezar = True CartaElegida = CStr(Rand(1, 5))LOOP
2) El bucle es infinito puesto que en su interior no se cambia la condición de salida.
3) CartaElegida es un entero y le asignas un valor String en
--- Código: Text ---CartaElegida = CStr(Rand(1, 5))
--- Fin de la cita ---
Sobre lo del loop, no lo puse entero, ya que si lo ponia entero tenía también que poner el resto de la función, y eso no es "un pedazito," es un "cacho trozo". ^_^ Lo que quería era que vieran el error de CStr().
Te invito a que pongas tu una pieza de código erróneo. ^^
m0skit0:
Ah, bueno, entonces acerté de todas formas :devil: :ph34r:
Venga, uno un pelín más difícil:
modFunciones.bas:
--- Código: Text --- Private Function Factorial(X as Integer) As Integer Factorial = Factorial(X-1)End Function
modPrincipal.bas
--- Código: Text --- Private Sub Principal() Dim N As Variant N = Factorial(5) Debug.Print NEnd Sub
Bueno, hay 3 errores. 2 de lógica y uno de metodología. A ver quién da. :comp:
Begeo:
Creo que veo dos errores:
El primero es que no veo que se le introduzca ningún valor a X nunca - igual me equivoco.
El segundo es que Factorial, al ser una función privada, no podría llamarse fuera de modFunciones.bas, así que al llamarlo desde modPrincipal.bas no se debería de poder usar.
Creo que veo otro más, ¿Que para llamar una función externa no hay que usar "modulo.funcion(datosaqui)"?
Navegación
[#] Página Siguiente
Ir a la versión completa