Está en la página 1de 8

1

Unidad 1

Ejercicio 1. Realizar una función que, recibiendo como argumento de entrada un


número entero n, devuelva el factorial de dicho número. Sino recibiese ningún
argumento de entrada se deberá devolver un −1 y mostrar un mensaje de
aviso por pantalla. Si n no fuera entero se deberá redondear hacia +∞.
n

Ejercicio 2. Escribir una función que calcule el número combinatorio m , sabien-
n n n n!
  
do que n > m , 0 = n = 1 y que m = m!(n−m)! . Los valores de n y m
serán argumentos de entrada y el resultado del cálculo se devolverá como
argumento de salida.

Ejercicio 3. Realizar una función que recibiendo como argumento de entrada un


número real x devuelva el valor de la exponencial de dicho número, que
deberá calcularse mediante su serie de Taylor truncada en n de tal forma
que el error absoluto entre la serie en el término n − 1 y n sea menor que
10−7 . La serie de Taylor de la exponencial viene dada por la expresión:

x
X xn
e = , ∀x .
n=0
n!
.

Ejercicio 4. Escribir una función que recibiendo como argumento de entrada un


número real x devuelva el seno de dicho número, que deberá calcularse
mediante su serie de Taylor truncada en n de tal forma que el error absoluto
entre la serie en el término n − 1 y n sea menor de 10e−7 . La serie de Taylor
del seno viene dada por la expresión:

X (−1)n 2n+1
sin(X) = x , ∀x .
n=0
(2n + 1)!
.

Ejercicio 5. Escribir una función que calcule el factorial de manera recursiva.

Ejercicio 6. Escribir una función que calcule el término n de la función de Fibo-


nacci, que viene dada por x1 = 1; x2 = 1; xi = xi−1 + xi−2 .

Ejercicio 7. Se pide realizar una función que recibiendo como argumento de en-
trada un número entero positivo n devuelva el valor de la aproximación de
la divina proporción para el término n de la serie de Fibonacci. La divi-
na proporción es la división del término i de la serie de Fibonacci entre el
anterior.
2

Ejercicio 8. Escribir una función de MATLAB que, recibiendo como argumento


de entrada un número entero, n, represente por pantalla su equivalente en
el sistema binario. Si el número es negativo, se deberá escribir el correspon-
diente signo menos antes del número. Si el número no es entero, se mostrará
un mensaje de error.

Ejercicio 9. Escribir una función de MATLAB que tome como entradas un vector
de números enteros v y un número entero n, y que devuelva el número de
veces que n está contenido en el vector v.

Ejercicio 10. Escribir una función que calcule el producto de dos vectores v y
w que se pasan como parámetros. Si no se recibiesen dos argumentos de
entrada se deberá mostrar un mensaje de error por pantalla y devolver un
−1. Si las dimensiones de los vectores fueran incoherentes para realizar el
producto escalar de deberá devolver un −1 y mostrar también un mensaje
de error.

Ejercicio 11. Escribir una función de MATLAB que construya un vector que
contenga los n primeros términos de la serie de Fibonacci, donde n es un
parámetro que se pasará como argumento de entrada.

Ejercicio 12. Escriba una función de MATLAB que reciba un vector de números
reales, v, como argumento de entrada y determine cuál de todos ellos es el
más cercano al primero de los elementos del vector y devuelva su posición, p,
dentro del vector. Ejemplo: para v = (2, 6, 4, 1, 10), p = 4, ya que el número
más cercano al primero (2) es el cuarto (1). Si no se proporciona un vector
de entrada se generará un vector de tamaño 10 de números aleatorios reales
entre 0 y 10. En caso de que el vector no tenga al menos dos componentes,
el método devolverá un −1.

Ejercicio 13. Escriba una función que determine si el número que se le pasa como
parámetro es o no un primo.

Ejercicio 14. Escriba una función que devuelva un vector con los n primeros
números primos.

Ejercicio 15. Escriba una función que devuelva un vector con los n primeros
números primos ordenados de mayor a menor.

Ejercicio 16. Escriba una función que devuelva el n-ésimo número primo, siendo
n el valor pasado como parámetro.

Ejercicio 17. Escriba una función que devuelva cuántos números distintos apare-
cen en el vector que se pasa como parámetro.
3

Ejercicio 18. Escriba una función que devuelva un vector con los factores primos
del número que se pasa como parámetro.
Ejercicio 19. Escriba una función que devuelva una matriz con dos filas: en la
primera aparecerán los factores primos del número que se pasa como paráme-
tro; en la segunda, los exponentes de dichos factores primos. Por ejemplo,
para el número 102, que es 23 ∗ 3 ∗ 5, se devolverá la siguiente matriz:
 
2 3 5
.
3 1 1
Ejercicio 20. Escriba una función que devuelva el máximo común divisor de n y
m.
Ejercicio 21. Escribir una función que dibuje un tablero de ajedrez. Las casillas
negras se indicarán con N y las blancas con B.
Ejercicio 22. Escribir una función en MATLAB que tome como parámetros la
posición (fila y columna) de un alfil en el tablero de ajedrez y muestre todos
sus posibles movimientos con un asterisco.
Ejercicio 23. Escribir una función en MATLAB que tome como parámetros la
posición (fila y columna) de un caballo en el tablero de ajedrez y muestre
todos sus posibles movimientos con un asterisco.
Ejercicio 24. Escribir una función en MATLAB que, sin usar la función eye,
devuelva una matriz identidad de nxn.
Ejercicio 25. Escribir una función en MATLAB que, sin usar la función diag,
devuelva los valores situados en la diagonal principal de una matriz que se
pasa como parámetro.
Ejercicio 26. Escribir una función en MATLAB que calcule la traza de una ma-
triz.
Ejercicio 27. Escribir una función que construya una matriz cuadrada de anchura
par, formada por 1 y 0 alternativos. Por ejemplo, si n = 6:

1 2 3 4 5 6
1 1 0 1 0 1 0
2 0 1 0 1 0 1
3 1 0 1 0 1 0 .
4 0 1 0 1 0 1
5 1 0 1 0 1 0
6 0 1 0 1 0 1
4

Ejercicio 28. Vandermonde. Escribir una función que reciba como parámetro un
vector v y un entero n y devuelva la matriz de Vandermonde de n columnas.
El vector v representa los valores de la segunda columna. Por ejemplo, si
v = [1234] y n = 5, la matriz de Vandermonde tiene los valores de v en la
segunda columna, y n columnas en total:
 0 1 2 3 4 
1 1 1 1 1
 20 21 22 23 24 
 0 1 2 3 4 .
 3 3 3 3 3 
40 41 42 43 44

Ejercicio 29. Escribir una función que, tomando como parámetro un número
entero n, devuelva una matriz de dimensión nxn que contenga de forma
ordenada los n ∗ n primeros términos de la serie de Fibonacci. Para n = 3,
por ejemplo:
 
1 1 2
 3 5 8 .
13 21 34

Ejercicio 30. Escribir una función en MATLAB que calcule el producto de dos
matrices.

Ejercicio 31. Escribir una función que tome un parámetro n y construya una
matriz con el triángulo de Targalia de dimensión n. Por ejemplo, para n = 4,
la matriz que se espera es:

1 2 3 4
1 1 0 0 0
2 1 1 0 0 .
3 1 2 1 0
4 1 3 2 1

Ejercicio 32. Escribir una función que, dado un parámetro n, devuelva una matriz
formada por asteriscos que se formen un triángulo equilátero. Por ejemplo,
para n = 4 y n = 5, las figuras son:

1 2 3 4 5 6 7
1 *
2 * * * .
3 * * * * *
4 * * * * * * *
5

1 2 3 4 5 6 7 8 9
1 *
2 * * *
.
3 * * * * *
4 * * * * * * *
5 * * * * * * * * *

Ejercicio 33. Escribir una función tome como parámetro un número n y devuelva
una matriz de nxn, triangular superior, con la siguiente forma:
 
1 2 3 ··· n

 0 1 2 ··· n−1 


 0 0 1 ··· n−2 
.

 0 0 0 ··· ··· 

 0 0 0 1 2 
0 0 0 0 1

Ejercicio 34. Escribir una función que construya una matriz de nxn cuya diagonal
principal esté formada por unos, y el resto de diagonales están formadas por
su distancia a la diagonal principal. Por ejemplo, para n = 5:
 
1 2 3 4 5

 2 1 2 3 4 


 3 2 1 2 3 .

 4 3 2 1 2 
5 4 3 2 1

Ejercicio 35. Escribir una función que construya una matriz de nxn cuya diagonal
principal esté formada por los valores pasados en un parámetro m, y el resto
de diagonales están formadas por su distancia a la diagonal principal más
m. Por ejemplo, para n = 5 y m = 6:
 
6 7 8 9 10

 7 6 7 8 9 

 8 7 6 7 8 .
 9 8 7 6 7 
10 9 8 7 6

Ejercicio 36. Escribir una función que tome un argumento n y devuelva una
matriz de nxn con todos los números desde 1 hasta n2 . Por ejemplo, para
n = 4.
6

1 2 3 4
1 1 2 3 4
2 5 6 7 8 .
3 9 10 11 12
4 13 14 15 16

Ejercicio 37. Escribir una función que tome un argumento n y devuelva una
matriz de nxn con todos los números desde 1 hasta n2 , ordenados de mayor
a menor. Por ejemplo, para n = 4.

1 2 3 4
1 16 15 14 13
2 12 11 10 9 .
3 8 7 6 5
4 4 3 2 1

Ejercicio 38. Escribir una función en MATLAB que devuelva una matriz de nxn
con los números desde el 1 hasta n2 colocados en las filas en zigzag. Por
ejemplo, para n = 4:

1 2 3 4
1 16 15 14 13
2 12 11 10 9 .
3 8 7 6 5
4 4 3 2 1

Ejercicio 39. Escribir una función que construya una matriz de nxn, con n impar,
en la que cada elemento es un número que representa la distancia al elemento
central de la matriz. La distancia es la suma de las distancias en filas y
columnas. Por ejemplo, para n = 5:

1 2 3 4 5
1 4 3 2 3 4
2 3 2 1 2 3
.
3 2 1 0 1 2
4 3 2 1 2 3
5 4 3 2 3 4

Ejercicio 40. Escribir una función que construya una matriz de nxn, con n impar,
en la que cada elemento es una letra que representa la distancia al elemento
7

central de la matriz. La distancia es la suma de las distancias en filas y


columnas. El cero se corresponde con la letra a, el 1 con la b, etcétera. Por
ejemplo, para n = 5:

1 2 3 4 5
1 e d c d e
2 d c b c d
.
3 c b a b c
4 d c b c d
5 e d c d e
Ejercicio 41. Escribir una función en MATLAB que busque, en la cadena que
se pasa como primer parámetro, la cadena que se pasa como segundo. La
operación debe devolver un −1 si no la encuentra, o la posición en la que
aparece. Por ejemplo: encontrar (’Problemas de MATLAB’, ’MATLAB’)
debe devolver 14.
Ejercicio 42. Escribir una función que, tomando una cadena de caracteres co-
mo parámetro, devuelva un 1 si la cadena es un palı́ndromo, y 0 en caso
contrario, sin considerar los espacios en blanco.
Ejercicio 43. Un vector es un monte si su primera mitad es creciente, la segunda
decreciente y, además, el vector es un palı́ndromo. Escribir una función que
determine si el vector v que se pasa como parámetro es o no un monte.
Ejercicio 44. Mediante el algoritmo de Montecarlo es posible calcular el valor
aproximado de π. Partimos de una circunferencia de radio 1 inscrita en un
cuadrado de lado 2. Para aproximar el valor de π, lanzamos un número gran-
de de dardos aleatoriamente dentro del cuadrado. Al terminar el proceso,
la proporción entre el número de dardos dentro del cı́rculo y el número de
dardos totales será aproximadamente igual a la relación entre la superficie
del cı́rculo y la superficie del cuadrado. Puesto que conocemos la superficie
del cuadrado ( lado x lado = 2x2 = 4) y la expresión para calcular la del
cı́rculo (π ∗ radio2 ∗ 12 ), podemos despejar un valor aproximado para π.

S(circulo) dardos(circulo)
≈ ,
S(cuadrado) dardos(cuadrado)
entonces
π dardos(circulo)
≈ ,
4 dardos(cuadrado)
ası́
dardos(circulo)
π≈4 .
dardos(cuadrado)
8

Ejercicio 45. Disponemos de una matriz de nxm (que representa un laberinto) en


la que hay valores cero y uno. Los valores uno representan muros y los valores
cero representan zonas por las que puede caminarse. Se pide escribir una
función en MATLAB que tome como parámetros una matriz que represente
el laberinto, las coordenadas de la entrada y la de la salida, y que permita,
mediante movimientos aleatorios de un objeto, llegar desde aquella hasta
ésta. La siguiente matriz (de la que se han omitido los ceros por claridad)
representa un laberinto de 10x10, con la estrada en (10, 10) y la salida en
(1, 1):

1 2 3 4 5 6 7 8 9 10
1 S 1 1
2 1 1 1 1 1
3 1 1 1
4 1 1 1 1 1
5 1
6 1 1 1 1 1 1
7 1 1
8 1 1 1 1 1
9 1
10 1 E

Ejercicio 46. Disponemos de un vector ordenado de enteros de longitud n. Se


pide diseñar una función que tome como parámetro el vector v y un valor x
y devuelva, mediante una búsqueda binaria, la posición en que se encuentra
el valor x dentro de v, o −1 en caso de que no esté.

También podría gustarte