Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JValero en 09 de Septiembre 2014, 18:34

Título: Ejercicio 7 - Semana 10 "Fundamentos de programación I"
Publicado 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:
Código: [Seleccionar]
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.
Título: Re:Ejercicio 7 - Semana 10 "Fundamentos de programación I"
Publicado por: javi in the sky en 09 de Septiembre 2014, 19:47
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
Título: Re:Ejercicio 7 - Semana 10 "Fundamentos de programación I"
Publicado por: JValero en 10 de Septiembre 2014, 17:12
Gracias Javi in the sky!!

Ahora si funciona. Muchas gracias por tus acalaraciones y explicacones.

Saludos.