Curso 2024/2025
Esto es una recopilación de errores que cometen con frecuencia estudiantes al implementar las soluciones de los ejercicios del tema 5.3.
Utilizar dos funciones pero no poner delante la que es utilizada por la otra.
Llamar a la función recursiva pasándole un argumento negativo y desencadenando con ello una recursión infinita.
Pasar un vector de datos por valor en vez de pasarlo por referencia constante.
Utilizar numeric_limits<int>::infinity()
en vez
de numeric_limits<float>::infinity()
o
asignar numeric_limits<float>::infinity()
a una
variable de tipo int
(recuerda este ejemplo).
Utilizar min
con un argumento de tipo int
y
otro de tipo float
(produce un error de
compilación, ejemplo).
No saber dónde crear la tabla de resultados.
Crear una tabla de resultados unidimensional cuando hace falta una tabla bidimensional.
Crear una tabla de resultados de tamaño incorrecto. Por ejemplo, porque para usar las posiciones 0 a n hace falta que el tamaño sea n + 1, no n.
No empezar comprobando si el resultado ya está calculado.
No guardar el resultado en la tabla de resultados, en algún caso o en todos.
Pasar la tabla de resultados por valor o por referencia constante en vez de pasarla por referencia.
Hacer un bucle en el que se calcula, por ejemplo, fibonacci[i], pero la variable del bucle no es i o en los cálculos no se usa correctamente i.
No recorrer la tabla en un orden tal que lo que se necesita esté calculado antes, porque la variable del bucle es creciente cuando debería ser decreciente, o viceversa, o porque se usan bucles anidados y no se ha decidido correctamente cuál debe ser el bucle externo.
No obtener el resultado final a partir de la posición o posiciones correctas de la tabla.