Sesión 5: Ciclos (iteración) en C#
Navegación: ← → | Home End | F pantalla completa
Navegación: ← → | Home End | F pantalla completa
A partir de esta sesión trabajaremos las soluciones principalmente en C#. El pseudocódigo se usará como apoyo para entender la lógica, pero el entregable será el programa.
Meta: que puedas justificar tu solución con una traza y casos borde.
Un ciclo es una estructura de control que ejecuta un conjunto de instrucciones más de una vez de forma controlada.
La motivación real no es “ahorrar escritura”, sino lograr que la solución funcione para N datos sin que tu algoritmo cambie.
Si el enunciado dice “para cada…”, “todos los…”, “hasta que…”, casi siempre estás frente a un ciclo.
Programar bien: diseñar un proceso general, no “resolver un ejemplo”.
Si falta el progreso (o está mal), el ciclo puede no terminar.
Antes de escribir código, responde estas preguntas:
Esto reduce el 80% de errores antes de ejecutar.
Un for es ideal cuando el problema te da un número N o un rango claro. En ese caso, el contador (por ejemplo i) avanza de forma predecible.
Léelo así: “inicia i”, “mientras se cumpla la condición”, “ejecuta el bloque”, “luego avanza i”.
Off-by-one: revisa si tu i debe iniciar en 0 o 1, y si la condición es < o <=.
Un while es útil cuando no sabes cuántas iteraciones habrá. En vez de contar vueltas, controlas la repetición por una condición de parada.
Ejemplos típicos: “mientras el usuario quiera continuar”, “hasta que la entrada sea válida”, “hasta encontrar un elemento”.
Clave: en cada vuelta debe ocurrir algo que haga que la condición cambie, o no terminará.
Si “se cuelga”, casi siempre es porque la condición nunca cambia.
Un contador modela “cuántas veces ocurre algo”. Empieza en 0 y normalmente sube de 1 en 1.
Un acumulador modela “cuánto llevo”. Suma valores para obtener un total.
Regla de oro: declara contadores/acumuladores antes del ciclo. Si los declaras dentro, se reinician en cada iteración y tu resultado final quedará mal.
Problema: leer N notas (0.0 a 5.0) y calcular: (1) promedio, (2) cuántas están por debajo de 3.0, (3) máxima.
Casos borde que debes pensar: N=0 (no hay notas), nota=3.0 exacto, nota=0.0 o 5.0.
Hoy el foco es el ciclo; la validación completa con reintento la trabajamos como mejora.
Problema: el usuario ingresa consumos. Cuando ingresa -1, se termina y se muestran: cantidad de consumos válidos y el total acumulado.
La regla importante es lógica: el centinela -1 es una señal de fin, no un dato del conjunto. Por eso NO se suma ni se cuenta.
Este patrón evita “leer dos veces” o mezclar el centinela con datos reales.
Es una simulación manual que muestra cómo cambian las variables en cada iteración. No es “repetir el código”: es registrar el estado de variables clave.
En ciclos, la traza te ayuda a detectar: (1) si se suma/contabiliza lo correcto, (2) si el progreso está bien, (3) si la condición corta donde debe.
| Iteración | x | total (antes) | total (después) | cantidad |
|---|---|---|---|---|
| 1 | 10 | 0 | 10 | 1 |
| 2 | 5 | 10 | 15 | 2 |
| Fin | -1 | (no se procesa) | 15 | 2 |
Pregunta obligatoria: ¿en qué parte del código podría colarse el -1 si lo escribes diferente?
Pasa cuando la condición nunca cambia. Ejemplo: lees el valor una vez y nunca vuelves a leer, o el contador no incrementa.
Solución: garantiza progreso (leer de nuevo / i++ / cambiar estado).
Pasa cuando haces una iteración de más o de menos por iniciar mal i o por usar < en vez de <=.
Solución: decide el rango (1..N o 0..N-1) y mantén coherencia.
Recomendación práctica: cuando un ciclo “no da”, no reescribas a ciegas. Haz una traza de 2–3 iteraciones y verás exactamente dónde falló la lógica.
Console.ReadLine() devuelve texto. Si el usuario escribe letras cuando esperas un número, Parse lanza error y el programa termina.
Con TryParse, puedes detectar el error, mostrar un mensaje y pedir el dato otra vez.
Esto eleva el estándar del curso: no solo “funciona”, también es resistente a entradas reales.
Enunciado: leer N consumos (kWh) y calcular:
Tu solución debe explicar: qué variables usas, por qué son contadores o acumuladores, y cómo verificaste con mínimo 2 pruebas.
La calidad no se demuestra con “a mí me dio”. Se demuestra con: variables bien elegidas, ciclo bien controlado y pruebas que cubren bordes.
Navegación: ← → | Home End | F pantalla completa · En celular: swipe o botones