Programación General > Visual Basic para principiantes

 Encuentra el error

<< < (3/5) > >>

m0skit0:
Efectivamente, faltaba la condición de salida, pero si hay una solución simple, ¿para qué queremos una complicada?  :P


--- Código: Visual Basic --- Function Factorial(X As Integer) As Integer     'El factorial de cero es 1    'Esta es la CONDICION de SALIDA    If X = 1 Then         Factorial = 1    Else        Factorial = X * Factorial(X - 1)    End IfEnd Function  

Jimbenit:
Bueno, siguiendo con los errores, te tengo uno


imagina que se quiere hacer una funcion que arroje la secuencia de la siguiente sumatoria

1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + ...     ... + 1/n

se tiene el siguiente codigo:


--- Código: Text ---Function Secuencia(Nro_Iterac As Integer) As Double If Nro_Iterac = 1 Then    Secuencia = 1Else    Secuencia =End If   End Function  

Puedes decirme cual es la parte del codigo que hace falta para originar esta secuencia, evidentemente, este es el Error.

F_Tanori:
Se habla de resolucion de problemas ?
Optimizacion de codigo ?
Deteccion de errores de programacion ?
Deteccion de errores de logica ?

<Code>------------------------------
Function Secuencia(Nro_Iterac As Integer) As Double
 
If Nro_Iterac = 1 Then
    Secuencia = 1
Else
    Secuencia =    '<--------------- Aqui hay un error :P
End If
 
End Function
</Code>---------------------------


--- Código: Visual Basic ---Function Secuencia(Nro_Iterac As Integer) As DoubleDim Current As Integer, ret As Double     If Nro_Iterac = 1 Then        Secuencia = 1    Else        Do            Current = Current + 1            ret = ret + (1 / Current)            DoEvents        Loop While Current < Nro_Iterac                Secuencia = ret    End If End Function 
Saludos

m0skit0:
Bueno, lo del error, supongo que quería que rellenaramos lo que faltaba. Un poco de recursividad por favor  :P


--- Código: Visual Basic --- Function Secuencia(Nro_Iterac As Integer) As Double      If Nro_Iterac = 1 Then          Secuencia = 1     Else          Secuencia = (1/Nro_Iterac) + Secuencia(Nro_Iterac - 1)     End If End Function  
Más limpio y más sencillo imposible. Un saludo y probad la programación funcional, programar sin variables, sólo funciones.

Jimbenit:

--- Citar ---Más limpio y más sencillo imposible
--- Fin de la cita ---

Asi es Moskito, Saludos a todos  :)

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa