none
Pseudocodigo - Problema con Ciclo Mientras RRS feed

  • Pregunta

  • Hola, tengo un problema con el ciclo mientras, en otros lenguajes como C# por ejemplo es conocido como while.

    Se me pide ingresar un monto, y un numero de cuotas. Y el programa debe mostrar el numero de cuotas ingresado, mas el monto a pagar por cada cuota, junto con un porcentaje de interes que se le agrega al monto por cada cuota, todo eso mientras sea menor que 10.

    Algoritmo Ejercicio_Cuotas

        Definir cuota, monto Como Entero;
        Definir interes, result Como Real;
        
        Escribir "Ingrese su avance: ";
        Leer monto;
        
        Escribir "En cuantas cuotas desea pagar (Max 10): ";
        Leer cuota;

        interes = 1.1;
        
        Mientras (cuota < 10) Hacer
            interes = interes + 0.2;
            result = (monto * interes)/10;
            
            cuota = cuota + 1;
            Escribir "En la cuota ", cuota," El monto a pagar es: ", result, " y tiene un interes, por cada cuota de:  ", interes;
        FinMientras    
    FinAlgoritmo

    Pero eso me arroja lo siguiente.

    En su lugar deberia mostrar la cuota 1 y su monto, la cuota 2 y su monto y la cuota 3 y su monto. No desde 4 hasta 10. Quisiera saber que hice mal. Muchas gracias.

    miércoles, 25 de marzo de 2020 1:42

Respuestas

  • Fíjate que preguntas por el número de cuotas, y luego el bucle va incrementando el número hasta que llega a 10. Por ejemplo, si introduces 3, el bucle hará 7 iteraciones (desde el 3 hasta el 10).

    Una solución es decrementar el número hasta que llegue a cero (en lugar de incrementarlo hasta que llegue 10). Otra es usar una variable diferente como contador, inicializarla a 1, e incrementarla en el bucle hasta que alcance el número de cuotas que introdujiste al principio.

        Definir cuota, monto, contador Como Entero; 
        Definir interes, result Como Real;
         
        Escribir "Ingrese su avance: ";
        Leer monto;
         
        Escribir "En cuantas cuotas desea pagar (Max 10): ";
        Leer cuota;
    
        interes = 1.1;
         
        contador = 1;
        Mientras (contador <= cuota) Hacer
            interes = interes + 0.2;
            result = (monto * interes)/10;
             
            contador = contador + 1;
            Escribir "En la cuota ", contador," El monto a pagar es: ", result, " y tiene un interes, por cada cuota de:  ", interes;
        FinMientras    

    • Marcado como respuesta M4uriXD miércoles, 25 de marzo de 2020 17:21
    miércoles, 25 de marzo de 2020 7:02

Todas las respuestas

  • Fíjate que preguntas por el número de cuotas, y luego el bucle va incrementando el número hasta que llega a 10. Por ejemplo, si introduces 3, el bucle hará 7 iteraciones (desde el 3 hasta el 10).

    Una solución es decrementar el número hasta que llegue a cero (en lugar de incrementarlo hasta que llegue 10). Otra es usar una variable diferente como contador, inicializarla a 1, e incrementarla en el bucle hasta que alcance el número de cuotas que introdujiste al principio.

        Definir cuota, monto, contador Como Entero; 
        Definir interes, result Como Real;
         
        Escribir "Ingrese su avance: ";
        Leer monto;
         
        Escribir "En cuantas cuotas desea pagar (Max 10): ";
        Leer cuota;
    
        interes = 1.1;
         
        contador = 1;
        Mientras (contador <= cuota) Hacer
            interes = interes + 0.2;
            result = (monto * interes)/10;
             
            contador = contador + 1;
            Escribir "En la cuota ", contador," El monto a pagar es: ", result, " y tiene un interes, por cada cuota de:  ", interes;
        FinMientras    

    • Marcado como respuesta M4uriXD miércoles, 25 de marzo de 2020 17:21
    miércoles, 25 de marzo de 2020 7:02
  • Gracias por tu respuesta, me ayudó a entender mi error.

    Solucione todo, explico a continuación:

    Lo primero es dejar inicializado el contador en 0. Y en la condición, dejarlo así: Mientras(contador < cuota) - Sin el signo =. Y el interés iniciarlo en 0.9 para que haga el calculo correctamente. 

    contador = 0;

    interes = 0.9;

    Mientras (contador < cuota) Hacer

        interes = interes + 0.2;

        result = (monto * interes)/10;

        contador = contador + 1;

        Escribir "En la cuota ", contador, " el monto a pagar es: ", result, " y tiene un interes, por cada cuota de: ", interes;


    FinMientras

    Espero que esto le pueda servir a alguien más. Gracias!




    • Editado M4uriXD miércoles, 25 de marzo de 2020 17:20
    miércoles, 25 de marzo de 2020 16:07