Sie sind auf Seite 1von 5

Tecnologa en Desarrollo de Software

2014-1

ESTRUCTURA DE DATOS UNIDIMENSIONALES Y BIDIMENSIONALES

Un array es un identificador que referencia un conjunto de datos del mismo tipo. Imagina un tipo de dato int; podremos crear un conjunto de datos de ese tipo y utilizar uno u otro con slo cambiar el ndice que lo referencia. El ndice ser un valor entero y positivo. En C los arrays comienzan por la posicin 0. Un vector es un array unidimensional, es decir, slo utiliza un ndice para referenciar a cada uno de los elementos. Su declaracin ser: tipo nombre [tamao]; El tipo puede ser cualquiera de los ya conocidos y el tamao indica el nmero de elementos del vector (se debe indicar entre corchetes [ ] ). En el ejemplo puedes observar que la variable i es utilizada como ndice, el primer for sirve para rellenar el vector y el segundo para visualizarlo. Como ves, las posiciones van de 0 a 9 (total 10 elementos).

/* Declaracin de un array. */ #include <stdio.h> main() /* Rellenamos del 0 - 9 */ { int vector[10],i; for (i=0;i<10;i++) vector[i]=i; for (i=0;i<10;i++) printf(" %d",vector[i]); } ------------------------------------------------------------------------------/* Vector de tipo char. */ #include <stdio.h> main() /* Rellenamos un vector char */ { char cadena[20]; int i; for (i=0;i<19 && cadena[i-1]!=13;i++) cadena[i]=getche( ); if (i==19) cadena[i]='\0'; else cadena[i-1]='\0'; printf("\n%s",cadena); }

Ing. Jhon Alexander Valencia Pardo

Tecnologa en Desarrollo de Software

2014-1

/* Envo de un array a una funcin. */ #include <stdio.h> void visualizar(int []); /* prototipo */ main() /* rellenamos y visualizamos */ { int array[25],i; for (i=0;i<25;i++) { printf("Elemento n %d",i+1); scanf("%d",&array[i]); } visualizar(&array[0]); } void visualizar(int array[]) /* desarrollo */ { int i; for (i=0;i<25;i++) printf("%d",array[i]); }

Una matriz es un array multidimensional. Se definen igual que los vectores excepto que se requiere un ndice por cada dimensin. Su sintaxis es la siguiente: tipo nombre [tamao 1][tamao 2]...; Una matriz bidimensional se podra representar grficamente como una tabla con filas y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos grficos con objetos 3D. En el ejemplo puedes ver como se rellena y visualiza una matriz bidimensional. Se necesitan dos bucles para cada una de las operaciones. Un bucle controla las filas y otro las columnas. /* Matriz bidimensional. */ #include <stdio.h> main() /* Rellenamos una matriz */ { int x,i,numeros[3][4]; /* rellenamos la matriz */ for (x=0;x<3;x++) for (i=0;i<4;i++) scanf("%d",&numeros[x][i]); /* visualizamos la matriz */ for (x=0;x<3;x++) for (i=0;i<4;i++) printf("%d",numeros[x][i]); } --------------------------------------------------------------------------------------

Ing. Jhon Alexander Valencia Pardo

Tecnologa en Desarrollo de Software

2014-1

#include <stdio.h> #define N 8 void main (void) { int pos_mayor,i,v[N]={3,5,7,2,1,9,6,4}; pos_mayor=0; for(i=1;i<N;i++) { if(v[i]>v[pos_mayor]) pos_mayor=i; } printf("El elemento mayor es el %d y esta en la posicin %d.",v[pos_mayor],pos_mayor); } --------------------------------------------------------------------------------------------------------------------------#include <stdio.h> void main (void) { int v[]={4,9,6,3,2,45,-13}; int sumatorio=0,i; for(i=0;i<7;i++) sumatoria+=v[i]; printf("El sumatorio es igual a %d",sumatoria); } ---------------------------------------------------------------------------------------------------------------------- ------#include <conio.h> #include <stdio.h> #define N_FILAS 25 #define N_COLUMNAS 4 #define LIBRE 0 #define OCUPADO 1 /* Funcin que muestra el men del programa y retorna el nmero de men elegido por el usuario int mostrarMenu(); void reservarAsiento(int a[][N_COLUMNAS]); void cancelarAsiento(int a[][N_COLUMNAS]); void mostrarOcupacion(int a[][N_COLUMNAS]); int main(){ /* Los asientos inicialmente estn libres*/ int asiento[N_FILAS][N_COLUMNAS]={0}; int resp=mostrarMenu(); while(resp!=4){ switch(resp){ case 1: reservarAsiento(asiento); break; Ing. Jhon Alexander Valencia Pardo

Tecnologa en Desarrollo de Software

2014-1

case 2: cancelarAsiento(asiento); break; case 3: mostrarOcupacion(asiento); break; } resp=mostrarMenu(); } getch(); } int mostrarMenu(){ int resp; printf("\n\n"); printf("1) Reservar Asiento\n"); printf("2) Cancelar Asiento\n"); printf("3) Mostrar Ocupacion\n"); printf("4) Salir\n"); scanf("%d",&resp); return resp; } void reservarAsiento(int a[][N_COLUMNAS]){ int fila, col; printf("Escriba la fila del asiento a reservar: ");scanf("%d",&fila); printf("Escriba la columna del asiento a reservar: ");scanf("%d",&col); if(a[fila][col]==OCUPADO) printf("Ese asiento ya est reservado\n"); else { a[fila][col]=OCUPADO; printf("Reserva realizada\n"); } } void cancelarAsiento(int a[][N_COLUMNAS]){ int fila, col; printf("Escriba la fila del asiento a cancelar: ");scanf("%d",&fila); printf("Escriba la columna del asiento a cancelar: ");scanf("%d",&col); if(a[fila][col]==LIBRE) printf("Ese asiento no est ocupado\n"); else { a[fila][col]=LIBRE; printf("Cancelacin realizada\n"); } } void mostrarOcupacion(int a[][N_COLUMNAS]){ int i,j; for(i=0;i<N_FILAS;i++){ for(j=0;j<N_COLUMNAS;j++){

Ing. Jhon Alexander Valencia Pardo

Tecnologa en Desarrollo de Software

2014-1

printf("fila %d, columna %d ",i,j); if(a[i][j]==LIBRE) printf("Libre\n"); else printf("Ocupado\n"); } } }

Ing. Jhon Alexander Valencia Pardo

Das könnte Ihnen auch gefallen