Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JValero en 09 de Septiembre 2014, 18:34
-
Vaya día...
Se me pide hacer un programa que multiplique entre si los primeros tres números naturales (3 * 2 * 1=6), una vez nos aparece el resultado debemos de decidir si continuar. En el caso de continuar la ventana nos debería de mostrar el resultado de la multiplicación de los póximos 6 números naturales (1*2*3*4*5*6=720), si continuamos el de los próximos 9...12...15, etc.
El código usado es el siguiente:
Option Explicit
Dim i As Integer
Dim j As Integer
Dim Respuesta As Integer
Dim Multiplicacion As Integer
Private Sub Form_load()
j = 1
Respuesta = vbYes
Do While Respuesta = vbYes
For i = j To j + 2
Multiplicacion = Multiplicacion + i
Next i
j = j + 3
Respuesta = MsgBox("La multiplicación de los " & j - 1 & " numeros naturales es " & Multiplicacion & vbCrLf & "¿Quiere continuar?", vbYesNo, "¿Continuar?")
Loop
End Sub
Consigo la ventana, consigo que realice el primer cálculo bien y que los números naturales vayan aumentando de 3 en 3 correlativamente pero no consigo que los resultados de las multiplicaciones sean los correctos.
Por favor, ¿podría alguien echarme una mano?
Muchas gracias.
-
Creo que lo puedes solucionar así:
Inicializa la variable Multiplicacion con valor 1
Dentro del bucle en vez de la suma Multiplicacion = Multiplicacion + i escribe Multiplicacion = Multiplicacion * i
De esta forma en cada pasada del bucle multiplicas lo que tenías antes por tres nuevos números, si no me equivoco. En la primera ronda será 1*2*3, en la segunda (1*2*3) * 4*5*6 y así en cada repetición
Saludos!
Option Explicit
Dim i As Integer
Dim j As Integer
Dim Respuesta As Integer
Dim Multiplicacion As Integer
Private Sub Form_load()
Multiplicacion = 1;
j = 1
Respuesta = vbYes
Do While Respuesta = vbYes
For i = j To j + 2
Multiplicacion = Multiplicacion * i
Next i
j = j + 3
Respuesta = MsgBox("La multiplicación de los " & j - 1 & " numeros naturales es " & Multiplicacion & vbCrLf & "¿Quiere continuar?", vbYesNo, "¿Continuar?")
Loop
End Sub
-
Gracias Javi in the sky!!
Ahora si funciona. Muchas gracias por tus acalaraciones y explicacones.
Saludos.