Unidad 3 vid Flashcards

1
Q

¿Qué es la recursividad en programación?

A

La recursividad en programación consiste en funciones que se llaman a sí mismas, evitando el uso de bucles y otros iteradores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Por qué es importante la recursividad en programación?

A

La recursividad es importante en programación porque permite reemplazar cualquier tipo de bucle, aunque en el mundo laboral no se utiliza demasiado debido a posibles problemas de memoria, especialmente con listas de datos extensas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuáles son las características de los subprogramas recursivos?

A

Los subprogramas recursivos se caracterizan por la posibilidad de invocarse a sí mismos. Debe existir al menos un valor del parámetro llamado caso base, que no provoca un nuevo cálculo recursivo, y los demás casos se llaman casos recurrentes, donde sí se produce un nuevo cálculo recursivo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Proporciona un ejemplo de código recursivo.
A

Program FactorialRecursivo;
Function Factorial (i : longint): longint;
Begin
if i = 0 then
Factorial := 1
else
Factorial := (i * Factorial(i - 1));
End;
Begin
writeln (‘El factorial de 4 es ‘, Factorial (4));
End.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuáles son las ventajas del uso de la recursión en programación?

A

Soluciones a problemas complejos de manera más fácil, simple, clara y elegante.

No es necesario definir la secuencia exacta de pasos para resolver el problema.

Facilita la resolución de problemas de menor tamaño.
Puede ser más eficiente para problemas de difícil solución iterativa.

Algunos problemas son más sencillos de implementar usando recursividad.
Facilita la comprobación y verificación de la solución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cuáles son las desventajas del uso de la recursión en programación?

A

Ineficiencia y sobrecarga asociada con las llamadas a subalgoritmos.

Una simple llamada puede generar un gran número de llamadas recursivas.

La claridad del algoritmo puede no compensar la sobrecarga.
Algoritmos recursivos ineficientes.

Creación de muchas variables que pueden ocasionar problemas de memoria.

Las funciones recursivas suelen tardar más en generarse que las iterativas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuál es la conclusión sobre el uso de la recursividad en programación?

A

Aunque la recursividad es útil para problemas que no se pueden resolver de forma iterativa, su ineficiencia en ciertos casos y los problemas de memoria debido a la cantidad de variables y sobrecargas de métodos hacen que se deba usar con precaución y solo cuando sea necesario.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué son las Torres de Hanoi y cuál es su objetivo?

A

Las Torres de Hanoi es un rompecabezas inventado en 1883 que consiste en mover una pila de discos de un poste a otro, obedeciendo reglas específicas. El objetivo es mover toda la pila de discos de una pila a otra siguiendo las reglas establecidas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuál es el número mínimo de movimientos necesarios para resolver las Torres de Hanoi con n discos?

A

El número mínimo de movimientos necesarios para resolver las Torres de Hanoi con n discos es
2^n - 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Proporciona un ejemplo de código para resolver las Torres de Hanoi de manera recursiva en Pascal.

A

procedure PasarDiscos(n: integer; inicial, final, auxiliar: char);
{PreC.: n ≥ 0}
{Efecto: se pasan n discos de la aguja inicial a la final}
begin
if n > 0 then
begin
PasarDiscos (n - 1, inicial, auxiliar, final);
WriteLn(‘Mover el disco’, n:3, ‘ desde ‘, inicial, ‘ a ‘, final);
PasarDiscos (n - 1, auxiliar, final, inicial);
end {if}
end; {PasarDiscos}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly