Por lo general, perder puntos en ejercicios de seguimiento de algoritmos no se debe a una falta de comprensión del algoritmo en sí, sino a la elaboración de una tabla inconsistente; por ejemplo, cuando una fila incluye implícitamente dos pasos o cuando se deja en blanco una variable simplemente porque no ha cambiado su valor.
Considerando la lista pequeña A = [4, 1, 3], trata cada fila como el estado completo del programa tras exactamente un paso. Un paso puede consistir en una iteración de bucle, una asignación o un intercambio, dependiendo de la acción que realice la línea de pseudocódigo.
Antes de ver la tabla, responde a lo siguiente: si un bucle lee A[i] en cada iteración, ¿qué valor debería aparecer en la columna current_value (valor actual) en la fila donde i = 1 para A = [4, 1, 3]?
Observa cómo se completa una tabla de estado paso a paso para A = [4, 1, 3].
La tabla funciona porque cada fila repite todas las variables que se están rastreando, incluso cuando no cambian. Si i aumenta pero current_value permanece igual, debes volver a escribir current_value, ya que los criterios de evaluación requieren pruebas de que lo mantuviste sin cambios en lugar de haberlo omitido.
Una vez que logras mantener la coherencia de las variables fila a fila, los arrays son el siguiente punto donde suelen aparecer errores. El error principal consiste en aplicar una operación de lectura y una de escritura como si ocurrieran simultáneamente, lo que hace que la fila muestre un valor que solo existe tras un paso posterior.
Un índice es la posición utilizada para acceder a un elemento de un array, como A[0] o A[1], y debes ceñirte a la convención establecida en el examen. Si la pregunta indica una indexación basada en 1, entonces A[1] es el primer elemento, y todos los accesos en tu tabla de seguimiento deben seguir esa misma regla.
Antes de pasar a las instantáneas de arrays, responde a esto: si intercambias los elementos en los índices 0 y 1 del array A = [4, 1, 3], ¿qué debería mostrar la siguiente fila de la instantánea del array?
Explora cómo registrar las lecturas y escrituras de arrays como cambios de estado independientes, cada uno en su propia fila.