Sesión 11
Unidad 2 · Preparación arquitectónica para el Proyecto Integrador (Entrega 2)
Navegación: ← → · Home / End · F pantalla completa · Táctil: desliza
Unidad 2 · Preparación arquitectónica para el Proyecto Integrador (Entrega 2)
Navegación: ← → · Home / End · F pantalla completa · Táctil: desliza
Nota técnica: La propiedad Capacity (memoria reservada) es distinta a Count (elementos lógicos reales). El motor de .NET gestiona el crecimiento de Capacity automáticamente para mantener el costo amortizado de Add en O(1).
Los sistemas no modulares interactivos operan bajo un ciclo de vida REPL extendido (Read-Eval-Print Loop):
Al requerir presentar la interfaz (menú) antes de evaluar cualquier decisión, la estructura do-while garantiza al menos un flujo de ejecución, eliminando redundancias en la invocación de funciones de entrada.
Para que la colección persista entre múltiples selecciones del usuario, su declaración e instanciación debe realizarse antes y fuera del ciclo do-while.
int.Parse o double.Parse confía incondicionalmente en que el usuario ingresará datos numéricos válidos. Si ingresa texto, se dispara una FormatException y el sistema colapsa.
Utilizar métodos de tipo Try permite evaluar y capturar en un solo paso, devolviendo una bandera booleana.
| Paso / Iteración | Acción / Entrada | datos.Count |
Estado Lógico de datos |
suma (Temp) |
|---|---|---|---|---|
| Inicialización | N/A | 0 | [ ] | 0.0 |
| Ejecuta Opción 1 | Ingresa 12.5 | 1 | [ 12.5 ] | 0.0 |
| Ejecuta Opción 1 | Ingresa 8.0 | 2 | [ 12.5, 8.0 ] | 0.0 |
| Ejecuta Opción 2 | Recorrido i = 0 |
2 | [ 12.5, 8.0 ] | 12.5 |
| Ejecuta Opción 2 | Recorrido i = 1 |
2 | [ 12.5, 8.0 ] | 20.5 |
La prueba de escritorio revela que las métricas (como la suma) deben aislarse en variables temporales que se reinicien al invocar el reporte, protegiendo el dato crudo.
La depuración permite identificar si un ciclo infinito fue provocado por una actualización faltante del contador (ej. omitir i++) o si una condición de escape (break) jamás se evalúa a verdadero debido a discrepancias en el tipo de dato.
Evolución del sistema: El código monolítico y secuencial de la Unidad 1 debe ser reescrito bajo un paradigma iterativo.
El código generado en esta entrega deberá ser modularizado (dividido en funciones) en la Unidad 3. Si el bloque de casos del menú crece más allá de 30-40 líneas, se está inyectando deuda técnica. Mantener las lógicas enfocadas preparará el terreno para las firmas de métodos.