Pregunta 2 - Apartados a y b · Prácticas de programación UOC 2023

Tema: Comprensión y traza de algoritmos recursivos · Del examen Prueba de síntesis de Prácticas de programación (Enero de 2023) (2023)

Enunciado

Pregunta 2 (50% de la nota). Análisis y desarrollo recursivo e iterativo de la función mystery

Considera el siguiente código implementado en C correspondiente a la función mystery:

int mystery(int x, int y) {

int res;

assert(x >= 0 && y >= 0);

if (y != 0) // (1)

res = x + mystery(x, y - 1); // (2)

else // (3)

res = 0; // (4)

return res; // (5)

}

a)

[10%] Detalla qué operación matemática lleva a cabo la función y describe el significado global de su cómputo. Desarrolla la traza paso a paso (con un esquema o diagrama de cajas donde se muestren las llamadas sucesivas, parámetros y retornos) para la invocación: mystery(5, 4);

Valor final retornado:

b)

[5%] Razona qué efecto tendría sustituir la instrucción de la línea 4 por la asignación: res = x;

Enunciado: Pregunta 2 - Apartados a y b · Prácticas de programación UOC 2023

Solución

Según los criterios oficiales de corrección

a) Detalla qué operación matemática lleva a cabo la función y describe el significado global de su cómputo.

Solución: Producto aritmético / Multiplicación de x e y (x⋅yx \cdot y)

a) Desarrolla la traza paso a paso para la invocación: mystery(5, 4);

Solución: 20

b) Razona qué efecto tendría sustituir la instrucción de la línea 4 por la asignación: res = x;

Solución: x⋅(y+1)x \cdot (y + 1) / x⋅y+xx \cdot y + x

Razonamiento del efecto y nueva operación calculada:

Solución: x*(y+1) / x*y + x

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Pregunta 2.b - Punteros y gestión de memoria diná… · 2023 · Pregunta 2.a y 2.b · 2021 ›

Más ejercicios de Comprensión y traza de algoritmos recursivos