Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Factorial

Estas en el tema de Factorial en el foro de Visual Basic clásico en Foros del Web. Hola soy novata en la materia me podrín ayudar a ¿como se calcula un factorial?Lo he intentado con do while pero nada.Gracias.Uso VB6....
  #1 (permalink)  
Antiguo 11/03/2005, 06:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 3
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Factorial

Hola soy novata en la materia me podrín ayudar a ¿como se calcula un factorial?Lo he intentado con do while pero nada.Gracias.Uso VB6.

Última edición por sakira1983; 11/03/2005 a las 06:30
  #2 (permalink)  
Antiguo 11/03/2005, 09:29
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
A ver si sirve...

Hola. Lo pude armar en un Do While, el número del que queres saber el factorial estaría almacenado en text1.text, vos si lo tenes en una variable o en una BD, reemplazalo por ese valor. Aqui va...

Código:
Dim Total As Double
Dim N As Integer
 
If Text1.Text = 0 Then
MsgBox "1"
Else
If Text1.Text < 0 Then
	 MsgBox "El nº debe ser positivo!"
Else
	 N = CInt(Text1.Text) - 1
	 Total = Text1.Text
	 Do While N <> 0
		 Total = Total * N
		 N = N - 1
	 Loop
 
	 MsgBox Total
End If
End If
Total sería el resultado del cálculo. El factorial de 0 es uno (no me preguntes por qué, soy analista de sistemas no profesor de matemáticas jeje), asi que tambien esta validado.

Espero que te sirva el código. Saludos. Lucas
  #3 (permalink)  
Antiguo 11/03/2005, 10:16
 
Fecha de Ingreso: mayo-2003
Ubicación: España
Mensajes: 44
Antigüedad: 21 años
Puntos: 2
Buenas, el factorial es un problema recursivo en definición así que una buena solución es realizar una función recursiva capaz de calcular el factorial de N (siendo N un número mayor o igual que cero)

Aquí te dejo la función factorial:

Código:
Public Function factorial(ByVal num As Integer) As Long
    Dim result As Long
    
    If num = 0 Then
        result = 1
    Else
        result = num * factorial(num - 1)
    End If
    
    factorial = result
End Function
Devuelve un valor Long aplicando el factorial de un número N pasado como parámetro a la función.

Saludos
__________________
cgomez :ojotes: miportal.es
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:42.