Download Ejercicios Tema 7 (II). Matrices

Document related concepts

Factorización de Cholesky wikipedia , lookup

Teorema de Laplace wikipedia , lookup

Matriz (matemáticas) wikipedia , lookup

Matriz diagonal wikipedia , lookup

Factorización QR wikipedia , lookup

Transcript
Tema 7 (II). Matrices
Ejercicios
Tema 7 (II). Matrices
1. Leer dos matrices de dimensión NxM de enteros y obtener una tercera matriz correspondiente a la
suma de las dos.
2. Escribir un programa que lea una matriz entera de tamaño NxM y un valor entero, y encuentre la
primera ocurrencia del valor en la matriz.
3. Dada una matriz de tamaño NxM de tipo entero, se pide escribir un programa en C que lea la matriz y
posteriormente muestre por pantalla el número de valores pares que existen en la matriz.
4. Dada una matriz de dimensión NxN de números enteros, escribir un programa que calcule:
•
La suma de los números pares y su media.
•
La suma de los números impares y su media.
•
La suma de los números en posiciones pares y su media.
•
La suma de los números en posiciones impares y su media.
5. Escribir un programa que lea una matriz entera de tamaño NxM y obtenga el valor máximo y mímico de
toda la matriz. Obtener también la media de todos los elementos de la matriz.
6. Dada una matriz de dimensión NxN:
•
Elevar al cuadrado los elementos situados por encima de la diagonal principal.
•
Sumar los elementos situados por debajo de la diagonal principal.
•
Sumar 1 a elementos de la diagonal principal.
•
Multiplicar por 2 los elementos de la diagonal inversa.
•
Restar un valor n (solicitado al usuario) a los elementos situados por encima de la diagonal principal
inversa.
•
Sumar los elementos situados por debajo de la diagonal principal inversa.
•
Poner a 0 los elementos de la corona de la matriz.
7. Escribir un programa que lea una matriz de enteros de dimensión NxN. Posteriormente, calcular el valor
máximo de cada fila y la media de los máximos. Por ejemplo:
3
6
8
5
7
1
1
2
9
Máximo
5
7
9
Media
7
8. Escribir un programa que lea una matriz de enteros de dimensión NxN. Posteriormente, calcular el valor
máximo de cada fila y almacenarlo en un vector. Por ejemplo:
Inma García
1/4
Tema 7 (II). Matrices
3
6
8
5
7
1
1
2
9
5
7
9
9. Escribir un programa que lea una matriz de números reales, calcule la suma de cada fila y de cada
columna y muestre por pantalla la nueva tabla, incluyendo las sumas. Por ejemplo:
2.5
10.8
-7.2
-6.3
12.4
3.1
14.7
-8.2
17.7
4.0
5.5
-9.1
2.5
10.8
-7.2
6.1
➨
-6.3
12.4
3.1
9.2
14.7
-8.2
17.7
24.2
4.0
5.5
-9.1
0.4
14.9
20.5
4.5
0.0
10. Leer una matriz de N x N elementos enteros y calcular la suma de cada una de sus filas y columnas,
dejando dichos resultados en dos vectores, uno de la suma de las filas y otro de las columnas.
11. Dadas dos matrices A (MxN) y B (NxL), obtener una tercera matriz C (MxL) con el producto de ambas.
N
C i,k = ∑ Ai,k × Bk , j
k =1
12. Transponer la matriz A de orden NxN y guardar el resultado en la matriz B. Repetir el ejercicio dejando
el resultado en la matriz A (no se puede usar una matriz auxiliar).
1
5
9
13
2
6
10
14
3
7
11
15
4
8
12
16
➨
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
13. Dada una matriz A de orden NxN, girarla 90º en el sentido de las agujas del reloj y guardar el resultado
en la matriz B.
A
1
5
9
13
2
6
10
14
3
7
11
15
4
8
12
16
➨
13
14
15
16
B
9
10
11
12
5
6
7
8
1
2
3
4
14. Multiplicar una matriz A de orden NxN, por otra matriz B de orden NxN, almacenando el resultado en la
matriz C. Para hallar un elemento de C se multiplica la fila del elemento por cada uno de los elementos
de la columna.
15. Escribir un programa que lea una matriz A de dimensión N x N y compruebe si es o no simétrica. Una
matriz se dice que es simétrica si Ai,j = Aj,i para todo i, j dentro de los límites de la matriz. Si es simétrica,
descomponerla en sus correspondientes matrices triangulares, inferior y superior, siendo la triangular
inferior la que incluya los elementos de la diagonal principal.
16. En una matriz cuadrada NxN de enteros, definimos cuatro ejes de simetría (horizontal, vertical, diagonal
dcha., diagonal izq.). Para un elemento dado Ai,j tendremos, por cada eje, un elemento de la matriz que
ocupa una posición simétrica a Ai,j respecto de ese eje. Se pide un programa que para un elemento que
ocupe una posición i,j de la matriz, determine cuales de sus cuatro elementos simétricos tienen además
su mismo valor.
17. Escribir un programa que dada una matriz numérica de tamaño NxM cree una nueva matriz que
contenga todos los puntos de silla de la primera en la misma posición. El resto de la matriz debe estar
rellena a ceros. Un elemento en punto de silla si es al mismo tiempo máximo de su fila y mínimo de su
Inma García
2/4
Tema 7 (II). Matrices
columna. La matriz de entrada se le debe pedir al usuario. La matriz de salida también debe
presentarse por pantalla, cada fila en una línea.
1
2
888
20
43
100
7
50
800
0
0
0
➨
20
0
0
0
0
0
18. Se pide un programa que lea una matriz entera de dimensión NxN. El programa debe modificar cada
elemento de la diagonal principal. El nuevo valor de un elemento de la diagonal principal colocado en la
posición i,i será igual a la suma de los elementos de la fila i colocados a la derecha del elemento i,i más la
suma de los elementos de la columna j situados debajo del elemento (i, i).
3
2
3
4
8
5
5
9
0
14
2
3
➨
4
14
5
5
9
0
19. Escribir un programa que lea una matriz cuadrada A de dimensión N x N y compruebe si es o no
simétrica. Una matriz se dice que es simétrica si A(i,j) = A(j,i) para todo i, j dentro de los límites de la
matriz. Si es simétrica, descomponerla en sus correspondientes matrices triangulares, inferior (B) y
superior (C), siendo la triangular inferior la que incluya los elementos de la diagonal principal. El resto de
los elementos de las matrices triangulares superior e inferior deben ser 0. Sólo pueden utilizarse las
matrices A, B y C, no puede utilizarse ninguna estructura auxiliar. Los bucles utilizados deben ser los
imprescindibles.
20. Dado el sistema de ecuaciones triangular inferior y su expresión matricial, escribir un programa que
dada una matriz A triangular inferior, un vector B, y el valor N correspondiente al orden de la matriz,
resuelva el sistema de ecuaciones devolviendo el vector X:
a11 x1 = b1
a21 x1 + a22 x2 = b2
...............................
an1 x1 + an2 x2 + ........+ ann xn = bn
Ax = b, A∈Rn x n, b∈Rn
a 11
0
a 21
a22
…
…
a n1
an2 …
…
…
…
0
x1
0
…
x2
*
ann
x
…
xn
b1
=
b2
…
bn
i −1
i
= (bi − ∑ aij x j ) / aii
j =1
21. Se dispone de tres matrices. Una contiene los nombres de pila de un grupo de N personas. La segunda
matriz contiene los primeros apellidos y la tercera los segundos apellidos. Crear una nueva matriz que
contenga, para cada persona, el nombre completo, primero el nombre y después los apellidos.
22. Modificar el ejercicio anterior para que el nombre de cada persona en la matriz resultado tenga el
formato: apellido1 apellido2, inicial.
23. Se tiene una matriz de caracteres donde cada fila contiene los nombres y apellidos de una persona, de
la forma nombre1 nombre2 ... nombren apellido1 apellido2. Una persona puede tener varios nombres,
pero sólo dos apellidos. Escribir un programa que convierta dicha matriz en otra de la forma: apellido1
apellido2, inicial1. inicial2. ... inicialn. Los apellidos y nombre están formados por una sola palabra. Todas
las palabras están separadas por un solo blanco. Ricardo Juan Montera Fernández ⇒ Montera
Fernández, R. J.
24. Escribir un programa que normalice los elementos de una matriz de tamaño NxN de números reales.
Leer la matriz, normalizarla y mostrarla por pantalla. Para llevar a cabo esta normalización se calcula el
número mayor, y se divide cada valor por el máximo, de forma que los valores resultantes estén
comprendidos en el intervalo [0, 1].
25. En un campeonato de baloncesto intervienen 20 equipos de 10 miembros cada uno. Se quiere
desarrollar un programa que lleve a cabo las siguientes operaciones:
Inma García
3/4
Tema 7 (II). Matrices
1. Leer y almacenar la altura de cada jugador.
2. Determinar qué equipo tiene mayor altura media.
3. Formar una selección de 20 miembros integrada por el jugador más alto de cada equipo.
4. Listar (escribir) la selección indicando para cada miembro su altura y el equipo al que pertenece.
5. Determinar el jugador más alto del campeonato y escribir su altura así como el equipo al que
pertenece.
26. Escribir un programa que visualice un cuadrado mágico de orden impar N comprendido entre 3 y 11; el
usuario debe introducir el valor de N. Un cuadrado mágico se compone de números enteros comprendidos
entre 1 y N. La suma de los números que figuran en cada fila, columna y diagonal son iguales. Un método
de generación consiste en situar el número 1 en el centro de la primera fila; el número siguiente en la
casilla situada por encima y a la derecha, y así sucesivamente. El cuadrado es cíclico: la línea encima de
la primera es, de hecho, la última y la columna a la derecha de la última es la primera. En caso de que el
número generado caiga en una casilla ocupada, se elige la casilla situada debajo último número colocado.
8
3
4
1
5
9
6
7
2
27. Escribir un programa que dada una matriz cuadrada (dimensión impar), recorra la matriz, empezando
por la casilla central, según el movimiento del caballo de ajedrez que a continuación se describe, y que
asigne a los elementos de la matriz el número correspondiente al orden según su recorrido. Hay que
considerar que la matriz es cíclica, es decir, la fila por encima de la primera es, de hecho, la última y la
fila por debajo de la última es la primera. De igual forma, la columna a la derecha de la última es la
primera y la anterior a esta primera es la última. En el caso de que el número generado caiga en una
casilla ocupada, se elige la casilla situada debajo de la casilla calculada. A continuación se muestra un
ejemplo para una matriz de dimensión 5. El movimiento es el siguiente; estando situados en una casilla
de la matriz de coordenadas f (fila) y c (columna), la siguiente posición se obtiene incrementando la
columna (c = c + 1) y decrementando en dos posiciones la fila (f = f - 2).
24
4
9
14
19
10
15
20
25
5
16
21
1
6
11
2
7
12
17
22
13
18
23
3
8
28. Leer dos vectores desordenados A y B de reales de dimensión N. Escribir un programa que cree un
vector C de dimensión 2 x n que contenga todas las componentes de A y B ordenadas de menor a
mayor, teniendo en cuenta que:
•
Los vectores A y B no se pueden modificar.
•
No se puede aplicar ningún método de ordenación a C.
•
Si se introduce un elemento en C, éste no podrá ser movido de esa posición.
•
No usar vectores auxiliares de reales.
•
Suponer que ni en A ni en B hay elementos repetidos.
Inma García
4/4