tamaño: 100708B

Anuncio
FUNDAMENTOS DE INFORMÁTICA 1º GITI, GITT, IEM, ITL
Práctica 7: Matrices y paso a funciones
Programa 1
Escribir un programa que declare dos matrices cuadradas mat y trasp de NxN (10x10) y le pregunte
al usuario el tamaño de la matriz cuadrada con el que quiere trabajar (es decir, el nº de filas, que es
igual que el de columnas que habrá que validar). A continuación inicializar la matriz mat leyendo de
teclado.
Dentro del programa principal escribir el código necesario para calcular la matriz traspuesta de mat
guardando el resultado en la matriz trasp.
Después en el programa principal se debe llamar a la función SumaDiag() que calcula la suma de la
diagonal inversa. El prototipo es:
int SumaDiag (int m[][N], int tam);
Mostrar el resultado.
Escribir el código de main y de la función.
Nota: en una el elemento (i,j) de una matriz es el elemento (j,i) de la matriz traspuesta.
Diagonal inversa
Programa 2
Escribir un programa en C que declare una matriz float kilometros[N][N]; (N es 4)
donde se almacenarán los kilómetros existentes entre varias capitales de la provincia de
Andalucía. Asimismo, se desea declarar una matriz char capitales[N][M]; (M es 30)
donde se almacenará el nombre de algunas capitales de provincia.(Jaén, Córdoba, Sevilla,
Huelva). Se pide:
a) Escribir una función void CargarCapitales(char ciudades[][M]); que
cargue la matriz de capitales introduciendo los valores por teclado. (Por ejemplo:
Jaén, Córdoba, Sevilla, Huelva.)).
La matriz resultante es:
Jaen
Cordoba
Sevilla
Huelva
b) Escribir una función void CargarKilometros(char ciudades[][M], float
distancia[][N]); que cargue la matriz de distancia, mostrando un mensaje con el
nombre de las capitales en la que se desea introducir los kilómetros. Las matrices se
escribirán en el main una vez leídas.
1
La matriz resultante es:
0
104
242
336
104
0
138
232
242
138
0
94
336
232
94
0
En el programa principal se mostraran con el siguiente aspecto
c) Escribir una función int validar(char ciudad[], char ciudades[][M]);
que recibiendo el nombre de una ciudad, compruebe si existe en la matriz ciudades,
devolviendo -1 si no existe y su posición en caso contrario.
d) Escribir una función float BuscarKilometros(float distancia[][N],
int i_origen, int i_destino);que devuelva el número de kilómetros que
hay entre dos capitales. El número de kilómetros se escribirá en el main una vez
calculado, junto con el nombre de las capitales.
e) Escribir un programa principal (main) que permita probar las funciones anteriores.
A continuación se aporta la tabla de kilómetros necesarios para poder realizar el ejercicio
Jaen Cordoba Sevilla Huelva
Jaen
0
104
242
336
Cordoba 104
0
138
232
Sevilla
242
138
0
94
Huelva
336
232
94
0
Programa 3
Escribir un programa que declare 2 cadenas de caracteres (cadena1 y cadena2), lea una
frase desde el teclado en cadena1 y obtenga el acrónimo de la misma guardándolo en
cadena2.
Ejemplo: si la frase es “Organización de Naciones Unidas” se debe obtener “ONU”
PD. Se deben recoger las letras iniciales que empiecen por mayúsculas
2
Programa 4
Escribir un programa que genera e imprime un cuadrado mágico de dimensión N (siendo N un número
entero, positivo e impar).
Un cuadrado mágico de dimensión N es una matriz cuadrada de orden N, conteniendo los números
naturales de 1 a N2 , tal que coinciden la suma de los números de una cualquiera de las filas, columnas
o diagonales principales. El cuadrado se construye mediante las siguientes reglas:
•
El número 1 se coloca en la casilla central de la primera fila.
•
Cada número siguiente se coloca en la casilla correspondiente a la fila anterior y columna
posterior.
•
Si el número sigue a un múltiplo de N, no se aplica la regla anterior, sino que se coloca en la
casilla de la fila posterior e igual columna.
•
Se considera que la fila anterior a la primera es la última, y la columna posterior a la última es
la primera.
Se debe codificar un programa principal donde se pida el orden del cuadrado, validando que sea impar
y menor que 25. A continuación se debe invocar a la función void CargarCuadrado(int
matriz[][25],int dim ); donde generará de manera automática el cuadrado, para finalmente mostrarlo
en el programa principal.
Informe de la práctica
•
•
Listados de los programas fuente
Ejemplos de salidas de ejecución
3
Descargar