Está en la página 1de 6

Ejercicios Recursividad y Memoria Dinámica

1.
Para cada uno de los incisos, escribir un programa en C++ que pida por teclado un número
entero “N”, llene una matriz de “N” x “N” siguiendo el orden que se muestra en el ejemplo (N=5)
y por último la muestre en pantalla. NO REC

a) b) c)

1 2 3 4 5 1 10 11 20 21 25 24 23 22 21
10 9 8 7 6 2 9 12 19 22 20 19 18 17 16
11 12 13 14 15 3 8 13 18 23 15 14 13 12 11
20 19 18 17 16 4 7 14 17 24 10 9 8 7 6
21 22 23 24 25 5 6 15 16 25 5 4 3 2 1
d) e) f)

1 2 4 7 11 1 2 3 4 5 10 11 12 13 14
3 5 8 12 16 16 17 18 19 6 25 2 3 4 15
6 9 13 17 20 15 24 25 20 7 24 9 1 5 16
10 14 18 21 23 14 23 22 21 8 23 8 7 6 17
15 19 22 24 25 13 12 11 10 9 22 21 20 19 18

g) h) i)
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
2 1 2 3 4 2 3 4 5 6 2 1 2 3 4
3 2 1 2 3 3 4 5 6 7 3 2 1 2 3
4 3 2 1 2 4 5 6 7 8 2 1 2 3 4
5 4 3 2 1 5 6 7 8 9 1 2 3 4 5
2. Escriba una función para saber si un número es perfecto (Un número es perfecto si es
igual a la suma de sus divisores). REC
3. Construya una función que convierta un número decimal en una cadena que
represente el valor del número en hexadecimal (base 16). REC

4. Escriba una función que calcule la suma de los elementos de un vector de enteros.

int sumarVector( int* ptr, int n, …..)


{

5. Escriba una función que calcule el promedio de los elementos de un vector de


enteros.REC
6. Escriba una función que invierta el contenido de un vector de enteros.REC
7. Escribir una función que busque un elemento dentro de un vector de enteros y retorne
la posición en la que se encuentra. En caso de no existir dicho elemento la función
debe retornar “-1”. REC
8. Escriba una función que busque el elemento menor de un vector de enteros. REC
9. Escriba una función que ordene un vector de enteros de forma ascendente. REC
10. Escribir una función que determine si un vector de caracteres es un palíndromo. REC
11. Escriba un procedimiento que reciba como parámetro dos vectores de enteros
ordenados descendentemente y los una en un tercer vector de manera tal que
también quede ordenado. Ejemplo: NO REC
0 5 7 9 10
Vector1

1 5 8
Vector2

0. 1 5. 5. 7 8. 9. 10

12. Implementa una función en C++ que, dado un número entero n, devuelva una matriz
dinámica de n × n elementos, donde en cada posición [i][j] de la matriz se almacene lo
siguiente: NO REC
i. Si i ≥ j se almacena el valor i + j + 1.
ii. Si i < j se almacena el valor cero.
Por ejemplo, para n = 4 tendríamos la siguiente matriz:
1
2 3
3 4 5
4 5 6 7
Para ahorrar espacio de almacenamiento, no queremos almacenar los elementos cuyo
valor es cero, es decir, sólo almacenaremos los elementos del triángulo inferior de la
matriz. Observa la representación en memoria de nuestra matriz:

N=4
1

2 3
13. Escriba un programa en C++ que lea desde teclado un número entero impar “N” para
crear la siguiente estructura en memoria dinámica y llenarla como indica el ejemplo:
Ej: N=5 NO REC

1
2 1
3 2 1
2 1
1

Nota.- Implementar los siguientes procedimientos:


a. Procedimiento que reciba como parámetro un entero impar N para crear la
estructura utilizando memoria dinámica.
b. Procedimiento que reciba como parámetro la estructura creada en el punto
anterior y la llene de la manera descrita en el ejemplo

14. Escriba un programa en C++ que lea desde teclado un número entero N para crear y llenar la
siguiente estructura en memoria dinámica, como se muestra en el ejemplo:
Ej: N=3 NO REC

1
2 3
3 4
4 5 6
5 6 7
6 7 8 9
Nota.- Implementar los siguientes procedimientos:

a. Procedimiento que reciba como parámetro un entero N para crear la estructura


utilizando memoria dinámica.
b. Procedimiento que reciba como parámetro la estructura creada en el punto anterior
y la llene de la manera descrita en el ejemplo
c.
15. Escriba un programa en C++ que lea desde teclado dos enteros N y M (N>M) para
crear la siguiente estructura en memoria dinámica:
Ej: N=5 y M=3

1 1 1 1 1

1 2 2 2 2

1 2 3 3 3

1 2 3

1 2 3

Nota.- Implementar los siguientes procedimientos:


a. Procedimiento que reciba como parámetro dos enteros N y M para crear la
estructura utilizando memoria dinámica.
b. Procedimiento recursivo que reciba como parámetro la estructura creada en el
punto anterior y la llene de la manera descrita en el ejemplo
16. Escriba un programa en C++ que lea desde teclado un número entero impar N para
crear la siguiente estructura en memoria dinámica y llenarla como indica el ejemplo:
Ej: N=5

1 2 3
2 1
3
2 1
1 2 3

Nota.- Implementar los siguientes procedimientos:


a. Procedimiento que reciba como parámetro un entero impar N para crear la
estructura utilizando memoria dinámica.
b. Procedimiento recursivo que reciba como parámetro la estructura creada en el
punto anterior y la llene de la manera descrita en el ejemplo
17. Escribir una función recursiva que retorne el número de ’#’ unidos en una malla. Un
’#’ está unido a otro ’#’ si son vecinos horizontal, vertical o diagonalmente.

    # #       #

  #   # #   #  

            #  

  #   # #   # #

#         #    
18. Escribir un procedimiento recursivo que marque el camino de salida dentro un
laberinto, el procedimiento recibe como parámetros un matriz de caracteres que
representa un laberinto y dos coordenadas que representan el inicio y la salida.

También podría gustarte