elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Visual Basic
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Visual Basic  (Leído 3,633 veces)
XVICT0RX

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Visual Basic
« en: 28 Enero 2013, 22:18 pm »

Ingresar un número distinto de cero. Calcular su factorial. Nota: factorial de 5 = 5 x 4 x 3 x 2 x 1 = 120 :huh:


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Visual Basic
« Respuesta #1 en: 28 Enero 2013, 22:43 pm »

Y el código que tienes hasta ahora es.... ?

PD: Te informo que aquí no hacen tareas.  :)


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: Visual Basic
« Respuesta #2 en: 28 Enero 2013, 22:55 pm »

si sabes hacer un for.


solo tienes que multiplicar el valor en cada repetición del for con el anterior.

En línea

XVICT0RX

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Visual Basic
« Respuesta #3 en: 28 Enero 2013, 22:56 pm »

este es el codigo k tengo pero esta mal... y no c kmo hacer para k me aparezca eso...
Código
  1. Dim num As Integer
  2. Dim fact As Integer
  3.  
  4. Private Sub Command1_Click()
  5. Text1.Text = ""
  6. Text2.Text = ""
  7. Text1.Text.SetFocus
  8. End Sub
  9.  
  10. Private Sub Command2_Click()
  11.    fact = 1
  12.    num = Text1.Text
  13.  
  14.    While num <> 0
  15.        fact = fact * num
  16.        num = num - 1
  17.    Wend
  18.  
  19.    Text2.Text = fact
  20.    Me.Text1.Enabled = False
  21.    Me.Text2.Enabled = False
  22. End Sub
  23.  
  24. Private Sub Command3_Click()
  25. End
  26. End Sub
  27.  
« Última modificación: 13 Febrero 2013, 03:43 am por raul338 » En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: Visual Basic
« Respuesta #4 en: 28 Enero 2013, 23:05 pm »

Puedes hacer algo tan simple como esto.

Código
  1. Dim i As Integer
  2. Dim x As Integer
  3. Dim n As Integer
  4.  
  5. x = 1
  6. n = 5
  7. If n <> 0 Then
  8.  For i = 1 To n
  9.    x = x * i
  10.  Next
  11. End If
  12.  
  13. MsgBox x
En línea

XVICT0RX

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Visual Basic
« Respuesta #5 en: 28 Enero 2013, 23:10 pm »

gracias
En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: Visual Basic
« Respuesta #6 en: 28 Enero 2013, 23:12 pm »

Obviamente no funciona para números negativos. :) tienes que retocarlo.  :laugh:
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Visual Basic
« Respuesta #7 en: 28 Enero 2013, 23:15 pm »

Tambien puedes hacer una función que se encargue de calcular el factorial de un numero cualquiera.
En este ejemplo está definida en forma recursiva:

Código
  1. Function Factorial (n as long) as long
  2. if n = 1 then
  3.    Factorial = 1
  4. else
  5.    Factorial = n * Factorial(n-1)
  6. end if
  7. end function
  8.  
  9. Private Sub Command1_Click()
  10. Text1.Text = ""
  11. Text2.Text = ""
  12. Text1.Text.SetFocus
  13. End Sub
  14.  
  15. Private Sub Command2_Click()
  16.    'fact = 1
  17.    'num = Text1.Text
  18.    'While num <> 0
  19.    '    fact = fact * num
  20.    '    num = num - 1
  21.    'Wend
  22.  
  23.    'Text2.Text = fact
  24.    if isnumeric(Text1.Text) then
  25.        Text2.Text = Factorial(clng(Text1.Text)) 'si Text1 no tiene un numero, se generará un error, por eso usamos isnumeric antes
  26.        Me.Text1.Enabled = False
  27.        Me.Text2.Enabled = False
  28.    else
  29.        msgbox "Ingrese un numero!"
  30.        text1.setfocus
  31.    endif
  32. End Sub
  33.  
  34. Private Sub Command3_Click()
  35. End
  36. End Sub
  37.  
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: Visual Basic
« Respuesta #8 en: 28 Enero 2013, 23:18 pm »

@MCKSys Argentina

o simplemente aplicar valor absoluto a n. ya que  es igual 3*2*1 que -3*-2*-1.

Código
  1. Dim i As Integer
  2. Dim x As Integer
  3. Dim n As Integer
  4.  
  5. x = 1
  6. n = -5
  7. If n <> 0 Then
  8.  For i = 1 To Abs(n)
  9.    x = x * i
  10.  Next
  11. End If

saludos
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Visual Basic
« Respuesta #9 en: 28 Enero 2013, 23:25 pm »

@MCKSys Argentina

o simplemente aplicar valor absoluto a n. ya que  es igual 3*2*1 que -3*-2*-1.

Claro.

Mi idea no era corregir (ni nada por el estilo), sino mostrar un poco de programacion modular basica.  ;)
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines