You are on page 1of 3

Programacin y Computacin II semestre 2012

GUA N 7 LABORATORIO: ARRAYS MULTIDIMENSIONES Objetivo: Implementar estructura de array: declaracin, incializacin e impresin Implementar algoritmos clsicos: suma, promedio, bsqueda en la estructura de datos arrays y realizar operaciones matemticas como sumar dos matrices, obtener suma: de las diagonales principales, secundarias, triangular superior, inferior, etc. Introduccin : un array multidimensional es una estructura de datos de datos bsica que SE CARACTERIZA POR SER UNA SECUENCIA DE DATOS DEL MISMO TIPO y a diferencia de los arrays unidimensional (trabajados en la clase anterior) poseen ms de un ndice. Los array mas utilizados son los de dos dimensiones: tablas o matrices. columnas
0 0 1 2 3 4 .. n P[0] [1] P[3][4] 1 2 3 4 5 .. n

Filas

Hace referencia al elemento que se encontrar en la fila 0 columna 1 Hace referencia al elemento que se encontrar en la fila 3 columna 4

Para recorre cada posicin (fila y columna) de un array bidimensional o matriz se requieren de dos CICLOS ANIDADOS (DEBE COMPRENDER EL FUNCIONAMIENTO) que permitan recorrerla por filas o columnas Si i es el ndice de la filas y j el de las columnas Si i es el ndice de la filas y j el de las columnas este ciclo for anidado permiten recorre una este ciclo for anidado permiten recorre una matriz por filas matriz por columnas

for (i=0; i<f;i++) for (j=0; j<c; j++)

for (j=0; i<f;i++) for (i=0; j<c; j++)

Al utilizar array bidimensionales DEBEMOS: 1. Declarar una variable como tipo array de dos dimensiones Tipode datos nombrearray[nmero de filas] [nmero de columnas]; Ejemplos: int F[8][6], float P[8][8], char cl[6][6], char S[8][7]; 2. Solicitar al usuario el n filas y n de columnas que va ocupar de acuerdo al mximo asignado en la instruccin anterior do { printf("ingrese el total de filas:"); scanf("%d",&f);} while(f<=0 || f>8); // ciclo para validar datos de entrada do { printf("ingrese el total de columnas:"); scanf("%d",&c);} while(c<=0 || c>8); Variables f y c almacenan la cantidad de filas y columnas que tendr la variable array bidimensional

3. Inicializar la variable array con datos Consiste en almacenar datos en los espacios de memoria de la variable creada; este almacenamiento puede hacerse a travs de asignacin, teclado o usando funcin rand 1. Asignacin Ejemplos : F[0][3]=23; alt[7][1]=1.7; cla[4][0]=s; 2. Desde el teclado :

printf("\n Ingrese ahora los %d x %d elementos=\n",f,c); for (int i=0;i<f;i++) for (int j=0;j<c;j++)

Programacin y Computacin II semestre 2012

scanf("%f",&F[i][j]);
3. Usando funcin rand con srand, stas funciones necesitan el archivo stdlib.h printf("\n Usaremos la funcion rand para generar valores al azar"); for (int i=0;i<f;i++) for (int j=0;j<c;j++) F[i][j]=rand()%50+1;// completa datos al azar por filas

Impresin de una variable de tipo array bidimensional, en forma de matriz (respetando filas y columnas) Ejemplo 1: // Imprimir una matriz printf("\nMatriz Generada\n"); for (i=0;i<f;i++) { for (j=0;j<c;j++) printf("%f ",F[i][j]); printf("\n"); } Ejemplo2: Imprime los elementos de la diagonal principal de una variable de tipo array bidimensional siempre y cuando sea cuadrada. printf("\nElementos de la diagonal principal\n"); if (c==f) { for (i=0;i<f;i++) for (j=0;j<c;j++) if (i==j) printf("\n%f ",F[i][j]); }// cierra if else printf("\n Matriz no es cuadrada");

Actividades 1. Cree un programa C que: a. Declare una variable X de tipo array bidimensional de 10x10 b. Solicite al usuario el n de filas y columnas, valide de modo que los valores ingresados nos sobrepase el mximo asignado en la declaracin y sean mayores que cero. c. Ingrese los elementos del array X usando el teclado. d. Imprima la variable X con todos sus elementos en forma de matriz . e. Modifica el ingreso de datos usando ahora la funcin rand en cualquier intervalo. f. Imprima ahora solo los elementos de la triangulas inferior. g. Solicite al usuario una columna a imprimir, valide que lo ingresado este en el rango deseado. Imprima ahora solo los elementos de la columna ingresada. h. Solicite un n por teclado e implemente un algoritmo de bsqueda que permita indicar si el elemento ingresado se encuentra en el array X y en que posicin fila y columna. i. Guarde el programa .
2. Modifique el programa ( guarde CON OTRO NOMBRE) y traslade las instrucciones de modo de crear tres funciones crea_matriz que generen los datos de una matriz X fxc y la uncin mostrar que impriman todos los elementos en forma de matriz #include <stdio.h> #include <conio.h> void crea_matriz( float F[10][10], int f, int c) { // esta funcin debe generar (rand) los fXc elementos de la matriz } void mostrar(float F[10][10], int f, int c) { // esta function debe imprimir los elementos de la matriz

Programacin y Computacin II semestre 2012

} Float mayor(float F[10][10], int f, int c) { return(?); } main() { // declare tres variables X,Z,M array bidimensional de tipo float // solicite la cantidad de filas y columnas VALIDE // ejecute la funcin crea_matriz de modo de crear tres matrices X,Z,M // ejecute la funcin imprimir e imprima las matrices creadas // ejecuta la funcin mayor e imprima los mayores nmeros de cada matriz. getche();}

3. Realiza el mismo ejercicio de la gua pasada pero ahora utiliza array bidimensional. Los resultados de las ltima elecciones a Alcalde en el pueblo San Pedro han sido los siguientes Distrito Candidato A Candidato B Candidato C 1 194 48 206 2 180 20 320 3 221 90 140 4 432 50 821 Escriba un programa que use funciones que haga las siguientes tareas: a. Generar los datos en el rango [0..2000] e imprimir las tablas generadas b. Calcular e imprimir el n de votos recibidos por cada candidato. c. Si algn candidato recibe ms del 50 % de los votos, el programa debe declararlos como ganador d. Si ningn candidato recibe ms del 50% de los votos, el programa debe indicar cual candidato pasa a segunda vuelta (los dos ms votados).

You might also like