En visual c++ existen 3 tipos bsicos de variables: char, int y float. El lenguaje visual C++ permite, construir estructuras ms complejas a partir de estos tipos bsicos. Una de ellas son los arreglos. PROBLEMA. Suponga ue se desea desarrollar un programa para: !. "eer y almacenar una lista de cali#icaciones de un examen. Supongamos ue $ay !%% cali#icaciones. &ebemos utili'ar !%% variables di#erentes nota!, nota(, ...., nota!%%, de ese modo son !%% direcciones di#erentes de memoria para almacenar las cali#icaciones del examen. Se imagina declarar las !%% variables, )cuntas instrucciones involucra* +nt nota!, nota(, nota3,........., nota!%%, (. Encontrar su media -edia . /nota!+nota(+.......+nota!%%01!%% 3. Escribir una lista de las cali#icaciones mayores ue la media: Si nota! 2 media entonces escribir /nota!0 3in4si Si nota( 2 media entonces escribir /nota(0 3in4si 55 55 Si nota!%% 2 media entonces escribir /nota!%%0 3in4si &espu6s ue aprendas a usar arreglos vers c7mo se a$orra instrucciones porue es #cil recorrer toda la lista de notas con unas pocas instrucciones. En el caso anterior, cuando el acceso a la in#ormaci7n es secuencial, s7lo se puede acceder a un elemento buscando desde el principio de la lista, y esto es algo lento. "o ue se necesita es una estructura de acceso directo ue permita almacenar y recuperar los datos directamente especi#icando su posici7n en la estructura, de esa manera se reuerir el mismo tiempo para acceder al elemento de la posici7n !%% ue el de la posici7n 8. 9.!. &e#inicion.: Colecci7n ordenada de elementos de un mismo tipo. ;rdenada signi#ica ue cada elemento tiene una ubicaci7n determinada dentro del arreglo y debemos conocerla para accederlo. Es una colecci7n de datos del mismo tipo, ue se almacenan en posiciones consecutivas de memoria y reciben un nombre com<n. =ara re#erirse a un determinado elemento de un array se deber utili'ar un >ndice, ue especi#iue su posici7n relativa en el array. Un arreglo es una colecci7n #inita, $omog6nea y ordenada de elementos. Finita: ?odo arreglo tiene un l>mite, es decir determinar cul ser el n<mero mximo de elementos ue podrn #ormar parte del arreglo. Homognea: ?odos los elementos del arreglo deben ser del mismo tipo. "enguaje de =rogramaci7n : =ro#. @os6 Aupanui =6re' Ordenada: Se puede determinar cul es el primer elemento, el segundo, el tercero,.... y el n:6simo elemento. Son $erramientas de programaci7n ue nos permiten conservar datos en la memoria del computador, asocindolos por el tipo de dato ue correspondan, permitiendo su acceso muy #cilmente a trav6s de un >ndice ue identi#ica el lugar donde se encuentra el dato ue se desea acceder. Sin embargo el contenido de los arreglos se pierde cuando termina la ejecuci7n del programa ue los utili'a. 7.2. Declaracion de un Array: Se declara de modo similar a otros tipos de datos, excepto ue se debe indicar el tamaBo o longitud del array. Sintaxis: Ctipo2 nombre_arregloDEumero4elementosF, donde: tipo: Es el tipo de dato a almacenar en el arreglo. nombre_arreglo: es el nombre que se le asigna, as como a una variable Numero_elementos: es la cantidad de elementos del tipo indicado que almacena. 7.3. Asignacin de un arreglo: nombre_arregloD>ndiceF . expresi7n, Esta instrucci7n asigna el valor asociado de la expresi7n a la posici7n ndice del arreglo /nombre_arreglo. El >ndice debe ser un valor del tipo entero. 7.4. Acceso al contenido de un arreglo: nombre_arregloD>ndiceF extrae el contenido del arreglo en una determinada posici7n o indice. 7.5. CLASIFICACIO: "os arreglos se clasi#ican de acuerdo con el n<mero de dimensiones ue tienen. Gs> se tienen los: : Unidimensionales /vectores0 : Hidimensionales /tablas o matrices0 : -ultidimensionales /tres o ms dimensiones0 a0. ARREGLOS UNIDIMENSIONALES: Estn #ormados por un conjunto de elementos de un mismo tipo de datos ue se almacenan bajo un mismo nombre, y se di#erencian por la posici7n ue tiene cada elemento dentro del arreglo de datos. Gl declarar un arreglo, se debe iniciali'ar sus elementos antes de utili'arlos. =ara declarar un arreglo tiene ue indicar su tipo, un nombre <nico y la cantidad de elementos ue va a contener. En nuestro ejemplo: almacenar !%% cali#icaciones in! no!a"#$$%& '' (eclarar )n arreglo !8 EotaD%F !I EotaD!F !J EotaD(F !% EotaD3F !( EotaDIF 5. 555.. 5. 555 !I EotaDKJF !I EotaDKKF "enguaje de =rogramaci7n : =ro#. @os6 Aupanui =6re' =ara acceder a valores espec>#icos del arreglo, use un valor de >ndice ue apunte al elemento deseado. Ejemplo, acceder al primer elemento del arreglo notas debe utili'ar el valor de >ndice % /notaD%F0. En los arreglos el primer elemento se encuentra en la direcci7n 7 indice % y el <ltimo con un valor menos en una unidad al tamaBo del arreglo. * Programa +)e de,ine )n arreglo o!a de #$$ elemen!os en!eros. Adem-s calc)la el !ama.o del arreglo/ L int notaD!%%F, 11 de#inici7n de un arreglo de 8 elementos enteros int n.si'eo#/nota01I, 11 devuelve el numero de bytes reservados para el array cout CCM?amaBo del arreglo nota. M CC n CCendl, N * Crear )n arreglo no!a de 5 elemen!os y mos!rar s) con!enido inicial. L int notaD8F, 11 de#inicion de un arreglo de 8 elementos enteros int n.si'eo#/nota01I, 11 tamaBo del arreglo cout CCMtamaBo del arreglo. M CC n CCendl, #or /int x.% , x C./n:!0 , x++0 cout CCM+ndice MCCx CCM contiene . M CCnotaDxF CCendl, N * Iniciali0aci1n =ara iniciali'ar con cero todos los elementos del arreglo: desde i . ! $asta 9% $acer arreDiF . % #in4desde
"enguaje de =rogramaci7n : =ro#. @os6 Aupanui =6re' * Crear )n arreglo no!a de 5 elemen!os y Iniciali0ar s) con!enido y mos!rar. L int notaD8F, int n.si'eo#/nota01I, cout CCMtamaBo del arreglo. M CC n CCendl CC endl, #or /int x.% , x C./n:!0 , x++0 notaDxF . %, #or /x.% , x C./n:!0 , x++0 cout CCM+ndice MCCx CCM contiene . M CCnotaDxF CCendl, N O Crear )n arreglo !alla del !i2o real y PAIS del !i2o cadena de #5 carac!eres3 el !ama.o de los arreglos es de 5 elemen!os. Iniciali0ar s) con!enido y mos!rar. Pinclude Mstda#x.$M Pinclude Miostream.$M Pinclude Mstring.$M int main/int argc, c$arO argvDF0 L #loat tallaD8F, n.si'eo#/talla01I, #or /int x.% , x C./n:!0 , x++0 talla.%.%, 11 iniciali'ar el arreglo ?G""G c$ar paisD8FD!8F, 11 c$ar de !8 carcteres y de 8 arreglos #or /int x.% , x C./n:!0 , x++0 strcpy/paisDxF,MM0, 11 iniciali'ar el arreglo =G+S #or /x.% , x C.I , x++0 11 mostrar el contenido del arreglo =G+S cout CCM+ndice MCCx CCM contiene . M CCpaisDxF CCendl, N O otra #orma de ingresar valores a un arreglo. L int notaDIF.L!(,!3,!I,!8N, #or /int x.% , xCI ,x++0 cout CCMEumero ingresados. MCCnotaDxF CC endl, c$ar paisDIFD!%F.LM=EQUM,MHQGS+"M,MUQURUGAJKM,MECUG&;QMN, #or /x.% , xCI ,x++0 cout CCM =aises ingresados. MCCpaisDxF CC endl, N OOEota: El arreglo pais tiene I posiciones de !% caracteres cada uno, pero al almacenar in#ormaci7n en uno de ello solo acepta K caracteres, de lo contrario da error de over#loS. "enguaje de =rogramaci7n : =ro#. @os6 Aupanui =6re'