Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un arreglo es un tipo de dato estructurado formado por un conjunto de elementos de un mismo tipo de datos.
Un tipo de dato de tipo estructurado como el arreglo es capaz de almacenar ms de un elemento (valor) a la vez, con la condicin de que todos los elementos deben ser del mismo tipo de dato, es decir, que se puede tener un arreglo de datos enteros, reales, etc.
Arreglos unidimensionales
Esta formado por un conjunto de elementos de un mismo tipo que se almacenan bajo un mismo nombre y se diferencian por la posicin que tiene cada elemento dentro del arreglo de datos.
Ejemplo:
Se tiene el nmero de unidades producidas por un obrero en cada uno de los 30 das del mes. Para almacenarlos y manejarlos, una opcin seria usar 30 variables, una para cada da, de la siguiente manera. Produccin1, produccin2, produccin3,..,produccin30
Otra opcin es usar un arreglo con una dimensin de 30 elementos, como se muestra:
1
2 Produccin 3
30
En la cual se tiene el arreglo llamado produccin con 30 elementos, el primero de ellos se identifica con la posicin 1, el que le sigue tiene la direccin 2, el siguiente la 3, asi hasta el nmero 30. Asi la produccin del da 1 se almacena en el elemento nmero 1, la produccin del da 2 se almacena en el elemento 2, y asi sucesivamente hasta la produccin del da 30 se almacena en el elemento 30.
El lenguaje C tiene la peculiaridad de que el primer elemento de un arreglo es el nmero 0 (cero), el segundo es el nmero 1, el tercero es el 2 y asi sucesivamente hasta el elemento N que es el nmero N-1.
Donde: Tipodedato: es el tipo de dato que tendr el conjunto de elementos del arreglo que se esta definiendo, puede ser int, float, char, etc. Nombrevariable: es el nombre de identificacin de la variable. Tamao: es un nmero entero que indica la cantidad de elementos que tendr el arreglo, ejemplo: 10, 20, 30, 40, 50, 100, etc. ; : indica el fin de la definicin.
Formato:
Int produccion[30]; Explicacin: Produccion es el nombre de la variable Es un arreglo que contiene 30 elementos desde el 0 al 29 Cada elemento del arreglo ser de tipo entero (int)
El subndices puede ser una constante numrica entera como 0, 1, 2, 3,, 29, una variable de tipo entero como: Produccion[i]
O bien puede ser una expresin algebraica que de un resultado de tipo entero como: Produccion[i+3] Produccion[(i*4)-j]
Como toda variable, una de tipo arreglo puede usarse para leer datos, asignarle valores mediante expresiones aritmticas, imprimir su contenido, formar parte de expresiones lgicas, etc. Ejemplo: Produccion[i]=20; Scanf(%d,&produccion[i]); Scanf(%d,&produccion[10]); Produccion[20]=produccion[1]+produccion[5]; Printf(%d,produccion[20];
Ejemplo: Elaborar un programa que lea la produccin de un obrero durante los 30 das de mes y que lo imprima. Opcin A: scanf(%d,&produccion[0]); scanf(%d,&produccion[1]); scanf(%d,&produccion[2]); scanf(%d,&produccion[29]);
Opcin B:
for (i=0;i<=29;i++) { printf(teclee produccion del dia %d:,i+1); scanf(%d,&produccion[i]); }
# include <stdio.h> void main() { int Produccion[30]; int I; printf("\nLEE E IMPRIME LA PRODUCCION DE 30 DIAS\n"); printf("DIAS DE PRODUCCION\n"); for (I=0; I<=29; I++) { printf("TECLEE PRODUCCION DIA %d : ",I+1); scanf("%d",&Produccion[I]); } printf("\n"); printf("PRODUCCION\n"); printf("\n"); for (I=0; I<=29; I++) { printf("PRODUCCION DIA %2d : %5d\n",I+1,Produccion[I]); } printf("\nPRESIONE <Intro> PARA CONTINUAR..."); fflush(stdin); getchar();
Ahora, ese tipo de dato puede ser utilizado en la definicin de variables, por ejemplo: diezenterosA; diezenterosB; diezenterosS; Otra forma:
diezenteros A,B,S;
Donde: A, B, S: son variables de tipo diezenteros, es decir, son arreglos de 10 elementos de tipo entero (int) cada uno.
Arreglos bidimensionales
Esta formado por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y que al igual que en el unidimensional, se diferencian por la posicin que tiene cada elemento dentro del arreglo de datos, con la aclaracin de que la disposicin de los elementos es en forma rectangular o cuadrada, donde la primera dimensin esta dada por los renglones y la segunda por las columnas. Un arreglo de este tipo tambin es conocido como matriz, es de orden m x n, donde m es el nmero de renglones y n es el nmero de columnas, es decir, en forma de tabla.
Donde: Tipodedato: es el tipo de dato que tiene el conjunto de elementos del arreglo que se esta definiendo; puede ser int, float, char, etc. Nombrevariable: es el nombre de identificacin de la variable. Dimension1: es un nmero entero que indica el nmero de renglones que tendr el arreglo (la primera dimensin). Dimension2: es un nmero entero que indica el nmero de columnas que tendr el arreglo (la segunda dimensin). ;: fin de la declaracin.
Formato:
Int matriz [4][5];
Explicacin: Matriz es el nombre de la variable Es un arreglo que contiene 4 renglones y 5 columnas (20 elementos) Cada elemento del arreglo es un dato de tipo entero (int)
Los subndices pueden ser constantes, variables o expresiones de tipo entero, como toda variable, una de tipo matriz puede usarse para leer datos, asignarle valores mediante expresiones aritmticas, imprimir su contenido, formar parte de expresiones lgicas, etc. Ejemplo: Matriz[1][1]=20; Scanf (%d,&matriz[r][c]); Scanf (%d,&matriz[3][4]); Matriz[1][2]=matriz[1][2]+matriz[2][3];
Ejemplo: Programa que lea los datos numricos de tipo entero para una matriz de 4 renglones con 5 columnas y adems que los imprima. Para leer los elementos de una matriz es necesario utilizar dos ciclos repetitivos anidados, el primero y mas externo, para procesar los renglones y, el segundo , que estar anidado dentro del primero, para procesar las columnas. Se define: Int numeros[4][5];
Explicacin: Se utiliza un ciclo tipo for desde 0 (cero) hasta 3 renglones (4) y dentro del proceso de cada rengln un ciclo de 0 a 4 (5) para procesar las columnas.
# include <stdio.h> void main() { int Numeros[4][5]; int Ren,Col; printf("\nLEE E IMPRIME NUMEROS EN UNA MATRIZ\n"); for (Ren=0; Ren<=3; Ren++) { for (Col=0; Col<=4; Col++) { printf("TECLEE EL VALOR [%d][%d]: ",Ren,Col); Scanf("%d",&Numeros[Ren][Col]); } } printf(" M A T R I Z\n\n"); for (Ren=0; Ren<=3; Ren++) { for (Col=0; Col<=4; Col++) { printf("%5d ",Numeros[Ren][Col]); } printf("\n"); } printf("\nPRESIONE <Intro> PARA CONTINUAR..."); fflush(stdin); getchar(); }
Relleno de arreglos
Al definir una variable de tipo arreglo, puede ser iniciada con valores en sus elementos.
# include <stdio.h> void main() { char Vocales[10] = {'a','e','i','o','u','A','E','I','O','U'}; int Rangos[6][2] = { 1,10, 11,20, 21,30, 31,40, 41,50, 51,60 }; float Z[10] = {12.5,3.25,1.5,34.67,7.6,4.0,89.6,4.5,9.0,19.5}; int R,C; printf("\nINICIA ARREGLOS CON VALORES ESPECIFICOS\n"); printf("---------------------------------------\n\n"); printf("ARREGLO INICIADO DE VOCALES\n\n"); for (R=0; R<10; R++) printf("%c,",Vocales[R]); printf("\n\nARREGLO INICIADO DE RANGOS\n\n"); for (R=0; R<6; R++) { for (C=0; C<2; C++) printf("%3d ",Rangos[R][C]); printf("\n"); } printf("\n\nARREGLO INICIADO DE NUMEROS REALES\n\n"); for (R=0; R<10; R++) printf("%5.2f,",Z[R]); printf("\n\nPRESIONE <Intro> PARA CONTINUAR..."); getchar(); }
Arreglos tridimensionales
Estn formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y que, al igual que en los unidimensionales y bidimensionales, se diferencian por la posicin que tiene cada elemento dentro del arreglo de datos, con la aclaracin de que la disposicin de los elementos es una combinacin del arreglo unidimensional y bidimensional. La primera dimensin se podra esquematizar como el arreglo unidimensional; un conjunto de elementos, la segunda y tercera dimensin es un arreglo de dos dimensiones que constituye a cada elemento de la primera dimensin.
Un arreglo de tres dimensiones se podra leer como un arreglo de matrices, es decir, un arreglo compuesto por x elementos, donde cada elemento es un arreglo de m x n de dos dimensiones, esquemticamente:
Segunda dimensin
Rengln 0 Rengln 1 Rengln 2 Rengln 3 Rengln 4
Tercera dimensin
Columnas 01234
Elemento 0 primera dimensin Elemento 1 primera dimensin Elemento 2 primera dimensin Elemento 3 primera dimensin
Donde: Tipodedato: es el tipo de dato que tiene el conjunto de elementos del arreglo que se est definiendo; puede ser int, float, char, etc. Nombrevar: es el nombre de identificacin de la variable. Dimension1: es un nmero entero que indica el nmero de elementos que tendr la primera dimensin. Dimension2: es un nmero entero que indica el nmero de elementos que tendr la segunda dimensin. Dimension3: es un nmero entero que indica el nmero de elementos que tendr la tercera dimensin.
Ejemplo:
Int numeros[4][5][5];
Numeros es un arreglo de tres dimensiones: 4 elementos de 5 x 5, es decir, un arreglo de 4 elementos, cada uno de los cuales es una matriz de 5 x 5.
del
Para relacionar cada elemento individual de un arreglo de tres dimensiones se usan tres subndices; el primero indica la primera dimensin del elemento, el segundo la segunda dimensin y el tercero la tercera dimensin, como sigue:
Nombrevar [primera] [segunda] [tercera]
Donde: Primera: indica el nmero de elemento en la primera dimensin. Segunda: indica el nmero de elemento en la segunda dimensin. Tercera: indica el nmero de elemento en la tercera dimensin.
Al igual que toda variable, una de tipo arreglo tridimensional puede usarse para leer datos, asignarle valores mediante expresiones aritmticas, etc.
Ejemplo:
Numeros[4][5][5]=50; Scanf(%d,&numeros[1][2][3]); Scanf(%d,&numeros[0][0][2]); Numeros[0][0][4]=numeros[1][1][2]+ numeros[0][0][2]+ numeros[1][2][3]; Printf(%d,numeros[0][0][4]);
Ejemplo: Elaborar un programa que lea nmeros de tipo entero para un arreglo de 4 x 5 x 5; y los imprima.
# include <stdio.h> void main() { int Numeros[4][5][5]; int Pri,Ren,Col; printf("\nLEE NUMEROS EN UN ARREGLO TRIDIMENSIONAL\n"); printf(" Y LOS IMPRIME EN LA PANTALLA\n"); printf("NUMEROS[PRIMERA][SEGUNDA][TERCERA]\n"); for (Pri=0; Pri<4; Pri++) { for (Ren=0; Ren<5; Ren++) { for (Col=0; Col<5; Col++) { printf("NUMERO[%d][%d][%d]: ",Pri,Ren,Col); scanf("%d",&Numeros[Pri][Ren][Col]); } printf("\n"); } } for (Pri=0; Pri<4; Pri++) { printf("\n\n------------ MATRIZ %d ------------\n",Pri); for (Ren=0; Ren<5; Ren++) { for (Col=0; Col<5; Col++) { printf("%4d ",Numeros[Pri][Ren][Col]); } printf("\n"); } } printf("\nPRESIONE <Intro> PARA CONTINUAR..."); fflush(stdin); getchar(); }
Arreglos tetradimensionales
Esta formado por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre y que, al igual que en los unidimensionales, bidimensionales y tridimensionales, se direfencian por la posicin que tiene cada elemento dentro del arreglo de datos, con la aclaracin de que la disposicin de los elementos es una doble combinacin del arreglo bidimensional. Las primeras dos dimensiones se podran esquematizar como un arreglo bidimensional y; la tercera y cuarta dimensin, esquematizan otro arreglo bidimensional dentro del primero.
Segunda dimensin
Columna 0 Columna 1 Columna 2
0 1 2 3 4
Elemento 0 primera dimensin Elemento 1 primera dimensin Elemento 2 primera dimensin Elemento 3 primera dimensin
tetradimensional
Al definir un arreglo es necesario hacerlo como una variable, por lo cual, en la parte de definicin de variables se utiliza el siguiente formato:
Tipo de dato nombrevar[dim1][dim2][dim3][dim4];
Donde: Tipo de datos: es el tipo de dato que tiene el conjunto de elementos del arreglo que se esta definiendo; puede ser int, float, char, etc. Nombrevar: es el nombre de identificacin de la variable. Dim1: es un nmero entero que indica el nmero de elementos que tendr la primera dimensin. Dim2: es un nmero entero que indica el nmero de elementos que tendr la segunda dimensin. Dim3: es un nmero entero que indica el nmero de elementos que tendr la tercera dimensin. Dim4: es un nmero entero que indica el nmero de elementos que tendr la cuarta dimensin.
Ejemplo:
Int numeros [4][3][5][5];
Numero es un arreglo de cuatro dimensiones: 4 renglones por 3 columnas, donde cada elemento es un arreglo de 5 x 5, es decir, una matriz de 4 x 3; donde cada uno de los elementos es una matriz de 5 x 5.
Ejemplo: Elaborar un programa que lea los nmeros de tipo entero para un arreglo de 4 x 3 x 5 x 5; y los imprima.
# include <stdio.h> void main() { Int Numeros[4][3][5][5]; int Ren1,Col1,Ren2,Col2; printf("\nLEE NUMEROS EN UN ARREGLO TETRADIMENSIONAL\n"); printf(" Y LOS IMPRIME EN LA PANTALLA\n\n"); printf("NUMEROS[PRIMERA,SEGUNDA,TERCERA,CUARTA]\n\n"); for (Ren1=0; Ren1<4; Ren1++) { for (Col1=0; Col1<3; Col1++) { for (Ren2=0; Ren2<5; Ren2++) { for (Col2=0; Col2<5; Col2++) { printf("TECLEE NUMERO[%d][%d][%d][%d]: ",Ren1+1,Col1+1,Ren2+1,Col2+1); scanf("%d",&Numeros[Ren1][Col1][Ren2][Col2]); } printf("\n"); } } } printf("\n\n"); for (Ren1=0; Ren1<4; Ren1++) { for (Col1=0; Col1<3; Col1++) { for (Ren2=0; Ren2<5; Ren2++) { for (Col2=0; Col2<5; Col2++) { printf("%4d ",Numeros[Ren1][Col1][Ren2][Col2]); } printf(" \n"); } printf("\n"); } } printf("\nPRESIONE <Intro> PARA CONTINUAR..."); fflush(stdin); getchar(); }