EATRYL
Guía de estudio / 10 min

Leer un programa con una tabla de seguimiento

Sigue variables e iteraciones para explicar un resultado y localizar el momento en que aparece un error.

Leer es simular decisiones

Para entender un programa corto, lleva un registro de su estado. No necesitas adivinar lo que hace el conjunto: ejecuta mentalmente una instrucción y anota qué valores cambian. Esta tabla de seguimiento permite comparar lo que esperabas con lo que el programa realmente indica.

Usaremos una lista de notas y un acumulador. El objetivo es sumar todos los valores, no contar cuántos hay ni conservar solamente el último. Definir esa salida antes de leer ayuda a detectar una implementación que resuelve otra tarea.

El código que vamos a seguir

notas = [8, 6, 10]
suma = 0
for nota in notas:
    suma = suma + nota
print(suma)

La asignación inicial ocurre una vez. En cada iteración cambia nota y luego se actualiza suma. Escribe tres columnas: valor actual de nota, suma antes y suma después. Para la primera vuelta son 8, 0 y 8; para la segunda, 6, 8 y 14; para la tercera, 10, 14 y 24.

El resultado final es 24. La tabla aporta algo más que esa respuesta: muestra de dónde sale cada total parcial.

Qué revela una sangría equivocada

Imagina que suma = 0 estuviera dentro del ciclo, antes de agregar nota. Entonces cada vuelta empezaría desde cero: los totales finales de las vueltas serían 8, 6 y 10. El programa terminaría mostrando 10.

El cálculo de la última vuelta es aritméticamente correcto. El error consiste en que la memoria de las vueltas anteriores se destruye. Cambiar la suma por otra operación no arreglaría esa decisión; la inicialización debe colocarse antes del ciclo.

De una prueba a varias

Una lista con un solo elemento no distingue entre la versión correcta y la que reinicia el acumulador: ambas devuelven ese elemento. Por eso una prueba que sale bien no demuestra que el programa esté bien en todos los casos.

Prueba [2, 4, 6], [0, 0], [−3, 5] y []. Esperas 12, 0, 2 y 0 para la suma. Si después vas a calcular una media, el caso vacío requiere otra decisión: no puedes dividir ese cero entre una longitud cero.

Una rutina de depuración

  1. Escribe entrada y salida esperada antes de ejecutar.
  2. Identifica las variables que representan el estado.
  3. Registra sus valores al terminar cada paso relevante.
  4. Busca la primera fila que contradice tu expectativa.
  5. Explica la causa antes de modificar una instrucción.
  6. Repite las pruebas, incluida una que antes funcionaba.

Como reto, sigue una búsqueda del número 9 en [4, 9, 2]. ¿En qué iteración debe detenerse y qué índice devuelve? La respuesta es la segunda iteración y el índice 1. Distinguir número de vuelta e índice evita un error frecuente al leer listas.

Clases en línea · Atención personalizada

¿Necesitas ayuda con este tema?

Trabájalo paso a paso con un profesor de EATRYL. Consulta disponibilidad y costo para reforzar Leer un programa con una tabla de seguimiento.

Consultar una clase sobre este tema
Conecta lo aprendido

Sigue explorando.