Autor Tema: Ejercicio 7 - Semana 10 "Fundamentos de programación I"  (Leído 3104 veces)

JValero

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 27
    • Ver Perfil
Ejercicio 7 - Semana 10 "Fundamentos de programación I"
« 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.

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:Ejercicio 7 - Semana 10 "Fundamentos de programación I"
« Respuesta #1 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

JValero

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 27
    • Ver Perfil
Re:Ejercicio 7 - Semana 10 "Fundamentos de programación I"
« Respuesta #2 en: 10 de Septiembre 2014, 17:12 »
Gracias Javi in the sky!!

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

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".