Sie sind auf Seite 1von 8

Algoritmo y Estructura de Datos Ing.

en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez Trabajo prctico N 5 (Resolucin de problemas Arreglos bidimensionales ). Realiza el programa en Lenguaje C correspondiente.
1-

Qu hay de incorrecto en los siguientes cdigos? int main() { int x,y; int mat[10][3]; for (x=0; x<3;x++) for (y=0;y<10;y++) mat[x][y]=0; } int main() { double d [2] [10]; . d[ 1, 9] = 2.345; . . }

2- Cargar en un arreglo de dos dimensiones de 4, 4 posiciones, nmeros pares comenzando por el 12. 3- Hacer un procedimiento que genere la matriz unidad de dimensin N. 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4- Realizar un procedimiento que: a) Recorra una matriz y cuente los elementos pares que hay en ella, deber adems cambiarlos por (-1). b) Escribir otro procedimiento que a partir de la matriz anterior genere un vector cuyos elementos indiquen cuantos (-1) hay en cada fila. 5- En memoria se encuentra almacenado un arreglo bidimensional de n, m posiciones cuyas componentes guardan un nmero que indica la cantidad de lluvia promedio de cada zona (n) de cada campo (m). Considerar que un campo (ej. el campo 1) est particionado para el estudio en varias zonas (ej. zona 1, zona 2, etc.). Se realizar funciones que me permitan determinar: - El promedio de lluvias por zona. - El promedio de lluvias en cada campo, en todas las zonas del mismo. - El campo y la zona que ms lluvias contabiliz. - El promedio de todas las mediciones que estn almacenadas en el arreglo. - Mostrar las componentes de todo el arreglo. 6- Teniendo el arreglo del ejercicio 5, se pide armar y mostrar un arreglo de una dimensin que almacene la cantidad de lluvias mayores de cada campo.

-1-

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez 7- En un arreglo bidimensional que almacena la cantidad de computadoras vendidas por tres vendedores en cuatro zonas diferentes. Se pide mostrar: - La zona que ms computadoras vendi. - El vendedor que menos computadoras vendi. - La cantidad de computadoras vendidas por todos los vendedores en todas las zonas. 8- Escriba un programa que ponga nmeros aleatorios menores a 100, en un vector de dos dimensiones de 5 por 4. Imprima los valores en pantalla en columnas. Se pide: calcular promedio de todos los nmeros. mostrar el valor maximo y minimo intercambiar los valores de la diagonal principal por los valores de la ltima fila. mostrar matriz modificada. 9- Modifique el programa del apartado anterior para generar una funcin en donde se trasladen los nmeros mayores a 10 de la matriz a un vector unidimensional. Ordene la matriz resultante de mayor a menor y mostrar. Muestre el promedio de todos los nmeros del vector y los valores del vector. Nota: no se olvide de detenerse brevemente y borrar la pantalla cada 6 elementos que muestre por pantalla. 10- Se deben ingresar n x n, nmeros que representan las notas obtenidas en los parciales de Anlisis Matemtico I. Se pide intercambiar los elementos de la triangular superior, con los elementos de la triangular inferior. NOTA: Los elementos que estn en la triangular superior son aquellos donde el nmero que indica la fila es menor al de la columna. Los elementos de la triangular inferior son los que el nmero que indica la fila es mayor al de la columna. Mostrar los elementos del arreglo luego del intercambio. 11- Escribir un programa que contenga un men de opciones para: a) sumar dos matrices. (validar las dimensiones) b) Multiplicar una matriz por un escalar. 12- Escriba un procedimiento que genere una matriz cuadrada de dimensin N que tenga la siguiente forma: 1 2 0 0 N=4 3 1 2 0 0 3 1 2 0 0 3 1 13- Dada una matriz de M x N de elementos de tipo entero: a) Escribir un procedimiento que busque la posicin en la matriz del menor elemento si el elemento esta repetido debe devolver la primera posicin que fue encontrado.

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez b) Escribir un subprograma que genere un vector en el que cada elemento es T (true) o F (false) indicando si el menor elemento hallado en el inciso anterior esta o no en la fila. 1 5 7 1 T 2 3 4 6 F 7 9 4 2 F 8 1 10 15 T

14- Una matriz con m filas y n columnas tiene (mxn) elementos, y en C se almacena en la memoria por filas. Se pide realizar un programa que haga lo siguiente: 1) leer m, n y los elementos de una matriz (mxn). 2) Leer unos valores p y q, y con los mismos elementos de la matriz (mxn) leda previamente, crear otra matriz de p filas y q columnas, que tenga el mismo nmero de elementos que la anterior (comprobar que pxq = mxn, y si no se cumple volver a leer p y q), de modo que los elementos estn almacenados en la memoria en el mismo orden, o dicho de otra forma, que el orden por filas se mantenga 15- Dada una matriz de m x n de elementos enteros, escribir una funcin que permita generar otra matriz de igual dimensin que contenga un 1 en las posiciones de los elementos que en la matriz original cumplan con la siguiente condicin: (A[i,j]+suma de los elementos de la columna j +suma de los elementos de la fila 1)/5 >6 En caso de no cumplirse la condicin debe quedar un 0 en esa posicin. Ejemplo: 5 2 7 12 1 6 suma de la fila 1=14 2 3 0 A[0,0]=5+19+14/5=7.6 A[1,0]=12+19+14/5=9 A[2,0]=2+19+14/5=7 A[0,1]=2+6+14/5=4.4 A[1,1]=1+6+14/5=4.2 A[2,1]=3+6+14/5=4.6 A[0,2]=7+13+14/5=6.8 A[1,2]=6+13+14/5=6.6 A[2,2]=0+13+14/5=5.4 La matriz resultante ser: 1 0 1 1 0 1 1 0 0 16- Escribir un programa que cargue una matriz de 3 x n de elementos enteros y un vector de n elementos enteros. Genere una matriz de 3 x m ( siendo m calculada) con los nmeros enteros que no se encuentran en el vector. El programa debe imprimir las estructuras. 17- Una empresa tiene cuatro vendedores (1 a 4) los cuales vende cinco productos (1 a 5). Una vez al da, cada vendedor introduce un registro para cada tipo de producto vendido. Cada registro contiene lo siguiente: a) nmero de vendedor b) El nmero de producto 3

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez c) El monto total del producto vendido del da. Por lo tanto, cada vendedor pasa entre 0 y 5 registros por da. Suponga que estn disponibles los registros del ltimo mes. Escribir un programa que lea toda esta informacin de las ventas del ltimo mes y sume el total de ventas por vendedor y por producto. Todos los totales se deben almacenar en un arreglo con dos subndices, ventas. Una vez procesada toda la informacin del ltimo mes, despliegue los resultados en formato tabular en donde cada una de las columnas representa a un vendedor y cada una de las filas representa un producto en particular. Obtenga la suma de cada fila para el total de ventas de cada producto del ltimo mes; obtenga la suma de cada columna para el total de ventas por vendedor del ltimo mes. Su salida tabular debe incluir estos totales a la derecha para las filas y en el fondo para las columnas. Ejercicios Propuestos 1- Escribir un programa que inicialice cada elemento de una matriz de enteros con el valor de la suma del nmero de fila y columna en que est situado. 2- Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada rengln y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector. 3- Considerando el arreglo del ejercicio 2- se pide mostrar las componentes que se encuentran almacenadas en la diagonal principal. (Las componentes que estn en la diagonal principal son aquellas que se encuentran en las posiciones donde el nmero de fila es igual al nmero de columna). 4- Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir que columna tuvo la mxima suma y la suma de esa columna. 5- Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal en un vector. Imprimir el vector resultante. 5- Hacer un algoritmo que cargue una matriz de 5 * 6 e imprima cuantos de los nmeros almacenados son ceros, cuantos son positivos y cuantos son negativos. 6- Disee un programa que escriba el numero de la hilera cuya suma sea mayor que las dems hileras. Suponga que todas las hileras suman diferente cantidad. 7- El dueo de una cadena de tiendas de artculos deportivos desea controlar sus ventas por medio de una computadora . Los datos de entrada son : a) El numero de la tienda (1 a 10) b) Un numero que indica el deporte del articulo (1 a 20) c) El costo del articulo. Hacer un programa que escriba al final del da lo siguiente

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez 1. Las ventas totales en el da para cada tienda 2.Las ventas totales para cada uno de los deportes. 3. Las mayor venta de todas las tienda y a que deporte pertenece. 8- El departamento de polica de la ciudad de Tuxtepec ha acumulado informacin referente a las infracciones de los lmites de velocidad durante un determinado periodo de tiempo. El departamento ha dividido la ciudad en cuatro cuadrantes y desea realizar una estadstica de las infracciones a los lmites de velocidad en cada uno de ellos. Para cada infraccin se ha preparado una tarjeta que contiene la siguiente informacin: - numero de registro del vehculo; - cuadrante en el que se produjo la infraccin - limite de velocidad en milla por hora Disee un diagrama para producir 2 informes; el 1o. que contiene una lista de la multa de velocidad recolectadas, donde la multa se calcula como la suma del costo de la corte ($20,000) mas $ 1,250 por cada mph que exceda la velocidad limite. Prepare una tabla con los siguientes resultados: INFRACCIONES A LOS LIMITES DE VELOCIDAD Registro del Velocidad Velocidad Multa vehculo registrada (MPH) limite Este informe debe ser seguido de un segundo en el cual se proporcione un anlisis de las infracciones por cuadrante. Para cada uno de los 4 cuadrantes mencionados, debe darse el numero de infracciones y la multa promedio ordenado por ste ltimo. Utilizar para este ejercicio un men de entrada que me permita seleccionar la accin a realizar. 9- Disee un algoritmo que llene una matriz de 10 * 10 y determine: El numero mayor almacenado en la matriz El numero mayor almacenado en cada rengln La columna que tuvo la mxima suma El rengln que tuvo la mxima suma Disea una funcin para cada inciso. 10- Sea una matriz de M x N a) Calcular el promedio de cada fila e imprimirlo. b) Mostrar el promedio mas alto. 11- Escribir un programa que calcule los puntos de silla de una matriz de enteros. Un elemento de una matriz es un punto de silla si es el mnimo de su fila y el mximo de su columna. 12- Realizar un el programa en C para calcular la moda de un arreglo de 3,3 posiciones de nmeros enteros, la moda es el elemento de dicho arreglo que aparece ms veces en el mismo, si distintos nmeros son repetidos con la misma frecuencia no hay moda, se debe

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez imprimir la moda si es que existe y la cantidad de veces que se encuentra en el vector, de no existir moda se debe imprimir un cartel adecuado. 13- Dada una matriz de M x N, escribir un funcin para que dado un elemento, busque su primera aparicin en la matriz y a partir de esta verifique si el elemento cumple con estas dos condiciones: a) Se repite una cantidad par de veces en su fila b) no esta repetido en su columna El procedimiento debe devolver una variable booleana indicando si la matriz cumpli o no con las condiciones. Ejemplo: 8 4 5 ELEMENTO = 1 1 2 1 ESTA EN FILA 2 5 6 2 COLUMNA 1 ** EL ELEMENTO CUMPLE CON LA CONDICIN YA QUE ESTA UNA CANTIDAD PAR DE VECES EN SU FILA Y NO ESTA REPETIDO EN SU COLUMNA. 14- GENERAR MATRICES Disear un programa que pida la dimensin n de una matriz cuadrada n*n, y luego d a elegir entre las siguientes opciones: - Generar una matriz en espiral: -Generar una matriz en diagonal: 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 32 33 34 35 36 37 38 39 10 2 3 4 5 6 7 8 9 8 31 56 57 58 59 60 61 40 11 3 4 5 6 7 8 9 8 7 30 55 72 73 74 75 62 41 12 4 5 6 7 8 9 8 7 6 29 54 71 80 81 76 63 42 13 5 6 7 8 9 8 7 6 5 28 53 70 79 78 77 64 43 14 6 7 8 9 8 7 6 5 4 27 52 69 68 67 66 65 44 15 7 8 9 8 7 6 5 4 3 26 51 50 49 48 47 46 45 16 8 9 8 7 6 5 4 3 2 25 24 23 22 21 20 19 18 17 9 8 7 6 5 4 3 2 1 -Generar una matriz en ngulo recto: -Generar una matriz en antidiagonal: 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 1 2 3 4 5 6 7 8 3 3 3 4 5 6 7 8 9 3 2 1 2 3 4 5 6 7 4 4 4 4 5 6 7 8 9 4 3 2 1 2 3 4 5 6 5 5 5 5 5 6 7 8 9 5 4 3 2 1 2 3 4 5 6 6 6 6 6 6 7 8 9 6 5 4 3 2 1 2 3 4 7 7 7 7 7 7 7 8 9 7 6 5 4 3 2 1 2 3 8 8 8 8 8 8 8 8 9 8 7 6 5 4 3 2 1 2 9 9 9 9 9 9 9 9 9 9 8 7 6 5 4 3 2 1

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez Ejercicios de autoevaluacin 1. Diga cuales de los siguientes enunciados son verdaderos o falsos. Si la respuesta es falso, explique por qu. a) Si tenemos la siguiente inicializacin de un arreglo: int tabla [3][3]= {{1, 8}, {2, 4, 6}, { 5 }}; los elementos no inicializados contienen basura. b) C lleva un control estricto con los lmites de los vectores. c) Un programa en C que suma el nmero de elementos de un arreglo con dos subndices por columnas debe contener instrucciones for anidadas, haciendo variar primero el ndice de filas y luego columnas. d) La diagonal principal es cuando i=j y la triangular inferior es i>j. e) Para recorrer una columna o fila de una matriz solo se requiere de un ciclo for. 2. Un bucle para recorrer una tabla bidimensional de 20 por 30 enteros sera de la forma: for (i=0;i=20;i++) for (j=0;j=30;j++) for (i=0;i==20;i++) for (j=0;j==30;j++) Ninguna de las restantes respuestas es correcta for (i=0;i<=20;i++) for (j=0;j<=30;j++) for (i=0;i<20;i++) for (j=0;j<30;j++)

3. Cul de las siguientes expresiones localiza la informacin del tercer elemento de la cuarta fila de la tabla m? Ninguna de las restantes respuestas es correcta m(3,4) m[3][4] m[3;4] m[3,4] 4. Qu doble bucle for imprime los elementos de una matriz nn que se encuentren por debajo de la diagonal principal en orden de columnas. Es decir dada
int t[3][3]={1,2,3,4,5,6,7,8,9}

imprimira 4 7 8.

Algoritmo y Estructura de Datos Ing. en Sistemas de Informacin 1 ao Docente: Gabriela Ribotta Ayudante: Mara Laura Lpez for(i=0;i<n;i++) for(j=0;j<i;j++) printf ("%d ",t[i][j]); for(i=0;i<n;i++) for(j=0;j<i+1;j++) printf ("%d ",t[i][j]); for(i=0;i<n;i++) for(j=i;j<n;j++) printf ("%d ",t[i][j]); for(i=0;i<n;i++) for(j=i+1;j<n;j++) printf ("%d ",t[i][j]); for(i=0;i<n;i++) for(j=0;j<=i;j++) printf ("%d ",t[i][j]);

Das könnte Ihnen auch gefallen