Ejercicios de Recursión: diseño, traza y diagramas de llamadas
10 ejercicios de Recursión: diseño, traza y diagramas de llamadas que han salido en los exámenes de Programació II de la UDL…
Problema 1 · 2012
Realizar el diagrama de llamadas (marcos de activación) y la traza de ejecución recursiva del método isMisterious a partir del método run() para el vector {2, -4, 4, 5, 3, -3, 1, 2}.
Problema 2 · 2012
Diseñar e implementar el método recursivo timesInSuffix para contar apariciones de un valor en un sufijo de un vector, con justificación inductiva.
Problema 3 · 2012
Diseñar e implementar un método recursivo copyVector(int[] source) que devuelva un nuevo vector idéntico apoyándose en una función auxiliar sobre prefijos para evitar replicar arrays en cada nivel. Incluir justificación formal del diseño inductivo.
Problema 1 · 2011
Dado el programa Java MisteryProgram que evalúa recursivamente un polinomio aplicando el método de Horner sobre un array {4, 3, 2, 1} con valor inicial 5, elaborar el diagrama con las llamadas en la pila de ejecución (nombres de funciones, variables locales/parámetros con sus valores y puntos de retorno) e indicar el…
Problema 2 · 2011
Diseñar e implementar una función recursiva numberOfDigits(int n) que reciba un número natural y devuelva el número total de dígitos que posee (0 tiene 1 dígito; 23 tiene 2 dígitos; 2430 tiene 4 dígitos), con la debida justificación de casos base y paso inductivo.
Problema 3 · 2011
Diseñar e implementar justificadamente la función recursiva isPrefix(String prefix, String word) para comprobar si una cadena es prefijo de otra, usando recursión por inmersión con un índice auxiliar.
Problema 1 · 2010
Realizar el diagrama de llamadas (pila de bloques de activación) con nombres de métodos, variables locales, parámetros y puntos de retorno para la ejecución de MisteryProgram. Indicar la salida generada por pantalla.
Problema 2 · 2010
Problema 2: Diseñar una función recursiva 'squaredDiffs(double[] a, double[] b, int pos)' para calcular la suma de diferencias cuadráticas de dos vectores de double, justificando caso base, caso recursivo y convergencia, y definir la llamada inicial desde el método envoltorio 'sumOfSquaredDiffs'.
Problema 3 · 2010
Problema 3. Diseñar mediante búsqueda binaria recursiva un algoritmo para determinar si existe coincidencia de valores en un mismo índice entre dos vectores ordenados en sentidos opuestos: uno creciente (asc) y otro decreciente (desc).
Ejercicio Recuperación - Problema 1. Distancia de Manhattan… · 2010
Implementar en Java una función recursiva para calcular la distancia de Manhattan entre dos vectores double[] a través de manhattan(double[] a, double[] b, int pos) y su método lanzador manhattan(double[] a, double[] b).
Otros temas de Programació II
- Diseño de clases y objetos en Java, herencia e igualdad · 7 problemas · 35 % de que salga
- Ficheros en Java: texto secuencial y acceso directo binario · 5 problemas · 25 % de que salga
- Listas en Java: uso de la API, implementación enlazada y coste · 3 problemas · 35 % de que salga
- Árboles binarios y heaps · 2 problemas · 40 % de que salga
- Tablas hash · 1 problema · 40 % de que salga