Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: Calculadora de gastos

Ok aqui las instrucciones como que me confundieron un poco por que no lograba entender lo del 0 y me tuvieron que explicar.

Mi Algoritmo quedaria asi:

  1. el sistema pide una cantidad
  2. el usuario ingresa una cantidad
  3. si la cantidad ingresada es 0, el sistema muestra el total acomulado y termina
  4. si la cantidad es mayor que 0, la suma al total acomulado y vuelve al paso 1.
1 respuesta

¡Hola de nuevo, Luis Enrique!

Primero, tranquilo con la confusión inicial: lo del 0 es un concepto llamado valor centinela (o sentinela), y es completamente normal que cueste la primera vez. Es un valor especial que no forma parte de los datos reales, sino que sirve como señal para decirle al programa "ya terminé de ingresar". Que hayas pedido ayuda para entenderlo y luego lo hayas incorporado bien al algoritmo es exactamente lo que hay que hacer.

Y lo lograste: tu algoritmo funciona. Tiene el bucle correcto, la condición de salida correcta y el retorno al paso 1 bien marcado. Ese "vuelve al paso 1" del paso 4 es tu estructura de repetición, y está bien identificada.

Algunos puntos para pulirlo:

1. Falta inicializar el total
Antes del paso 1 necesitas un paso 0: el sistema define total = 0. Puede parecer obvio, pero si la variable no existe antes de empezar a sumar, el paso 4 no tiene a qué sumarle. Inicializar acumuladores es un hábito que te va a evitar muchos errores más adelante.

2. ¿Qué pasa con los números negativos?
Tu paso 3 cubre el 0 y tu paso 4 cubre "mayor que 0", pero si alguien escribe -50 no entra en ninguno de los dos casos y el algoritmo se queda sin instrucción. Puedes resolverlo de dos formas: cambiar el paso 4 a "en caso contrario, súmala al total" (que cubre todo lo demás), o agregar una validación que rechace el valor y vuelva a pedirlo. La segunda es más robusta.

Así quedaría en pseudocódigo:

total = 0

REPETIR:
    mostrar "Ingrese un gasto (0 para terminar):"
    leer cantidad

    SI cantidad = 0 ENTONCES
        salir del bucle
    SI NO SI cantidad < 0 ENTONCES
        mostrar "Valor inválido, intente de nuevo"
    SI NO
        total = total + cantidad
    FIN SI

mostrar "Total acumulado: " + total

Un desafío extra, si quieres seguir practicando: agrega un contador que registre cuántos gastos se ingresaron y, al final, muestre también el promedio. Solo cuidado con un caso: si el usuario escribe 0 de entrada, el contador queda en 0 y dividir entre cero rompe el programa. ¿Cómo lo manejarías?

Vas muy bien, ya estás pensando en términos de bucles y condiciones.

¡Abrazo y buenos estudios!