You are on page 1of 25

Repblica Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI http !!

aldea"raypedrodeagreda#$ordpress#co% &laborado por Pro"# &l'as (isneros cisneros#elias)g%ail#co% *+!,*!-.

/engua0e (11 Arreglos unidi%ensionales y %ultidi%ensionales

(reative co%%ons Usted es libre de Copiar, distribuir y comunicar pblicamente la obra . Hacer obras derivadas .

Ba0o las condiciones siguientes Reconocimiento. Debe reconocer los crditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra . !o comercial. !o puede utili"ar esta obra para fines comerciales.

Compartir ba#o la misma licencia. $i altera o transforma esta obra, o genera una obra derivada, s%lo puede distribuir la obra generada ba#o una licencia idntica a sta.

&'()

(ontenido *rreglos......................................................................................................................................................( *rreglos unidimensionales.........................................................................................................................+ *signaci%n entre arreglos......................................................................................................................) *rreglos multidimensionales ...................................................................................................................., *lgunas operaciones con arreglos.......................................................................................................&.peraciones con arreglos unidimensionales......................................................................................&( .peraciones con arreglos multidimensionales ..................................................................................&/ *rreglos de caracteres multidimensionales..............................................................................................&0 1niciali"aci%n de arreglos en C22 ..........................................................................................................&3 4#ercicios propuestos...............................................................................................................................(& 5ibliograf6a..............................................................................................................................................()

Arreglos 7n arreglo o array (en ingls es una colecci%n de variables relacionadas a las que se hace referencia por medio de un nombre comn. .tra definici%n v8lida es que un arreglo es un con#unto de datos que se almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de un arreglo se utili"a un 6ndice. 4n el lengua#e C22 un arreglo se le conoce como un tipo de dato compuesto. 9os arreglos pueden tener una o varias dimensiones. & ( Representaci%n gr8fica de float arreglo:0;< un arreglo de una di%ensi2n / + ) 0 arreglo:-; arreglo:&; arreglo:(; arreglo:/; arreglo:+; arreglo:);

('()

int arreglo:+;:+;

Representaci%n gr8fica de un arreglo de dos di%ensiones

int arreglo:+;:+;:/; Representaci%n gr8fica de un arreglo de tres di%ensiones

3ndice de un arreglo =odo arreglo est8 compuesto por un nmero de elementos. 4l 6ndice es un nmero correlativo que indica la posici%n de un elemento del arreglo. 9os 6ndices en C22 van desde la posici%n - hasta la posici%n tama>o ? &. &le%ento de un arreglo 7n elemento de un arreglo es un valor particular dentro de la estructura del arreglo. @ara acceder a un elemento del arreglo es necesario indicar la posici%n o 6ndice dentro del arreglo. 4#emploA arreglo:-; ''@rimer elemento del arreglo
/'()

arreglo:/; ''Cuarto elemento del arreglo

Arreglos unidi%ensionales 7n arreglo de una dimensi%n es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre comn. 7na variable individual del arreglo se llama elemento del arreglo. @ara declarar un arreglo de una sola dimensi%n se usa el formato generalA tipo_dato identificador[tamao];

arreglo:-; int arreglo:/;< arreglo:&; arreglo:(;

7n elemento del arreglo se accede indeBando el arreglo por medio de un nmero del elemento. 4n C22 todos los arreglos empie"an en -, esto quiere decir que si se desea acceder al primer elemento del arreglo debe usar el 6ndice igual a -. @ara indeBar un arreglo se especifica el 6ndice del elemento que interesa dentro de un corchete, e#emplo< valor = arreglo[1]; 9os arreglos empie"an en -, de manera que el 6ndice & se refiere al segundo elemento. @ara asignar el valor a un elemento de un arreglo, ponga el elemento en el lado i"quierdo de una sentencia de asignaci%n. mi_arreglo[0] = 100; C22 almacena arreglos de una sola dimensi%n en una locali"aci%n de memoria contigua con el primer elemento en la posici%n m8s ba#a. De esta manera, miCarreglo:-; es adyacente a miCarreglo:&;, que es adyacente a miCarreglo:(; y as6 sucesivamente. @uede usar el valor de un elemento de un arreglo donde quiera que usar6a una variable sencilla o una constante. Ejemplo 1. *rreglo de una dimensi%n

+'()

Declaraci%n int arreglo:/;< '' forma un arreglo de una dimensi%n y de tres elementos !ombre del arreglo arreglo !ombre de los elementos arreglo:-; D primer elemento arreglo:&; D segundo elemento arreglo:(; D tercer elemento

Ejemplo 2, el siguiente programa carga el arreglo sqrs con los cuadrados de los nmeros del & al &- y luego los visuali"a.

1. using namespace std; 2. #include <iostream> . int main!" #. $ %. int s&rs[10]; '. int i; (. for !i=1;i<11;i))" $ *. s&rs[i+1]=i,i; -. . 10. for !i=0;i<10;i))" $ 11. cout<<s&rs[i]<<endl; 12. . 1 . return 0; 1#. .

9a forma como se almacenan los valores en el arreglo es la siguienteA s&rs[0] = 1,1 s&rs[1] = 2,2 s&rs[2] = , s&rs[ ] = #,# s&rs[#] = %,% s&rs[%] = ',' s&rs['] = (,( s&rs[(] = *,* s&rs[*] = -,s&rs[-] = 10,10

Asignacin entre arreglos 4n C22 no se puede asignar un arreglo completo a otro arreglo. @or e#emplo, este fragmento es
)'()

incorrecto. char a&:&-;, a(:&-;< . . . a(Ea&< '' 4s incorrecto $i desea copiar los valores de todos los elementos de una arreglo a otro debe hacerlo copiando cada elemento por separado. @or e#emplo, el siguiente programa carga a& con los nmeros & a &- y despus los copia en a(. Ejemplo 3.

1. using namespace std; 2. #include <iostream> . int main!" #. $ %. int a1[10]/ a2[10]; '. int i; (. 001niciali2aci3n de a1 *. for !i=0; i<10;i))" -. a1[i]=i)1; 10. 004opiar en a2 11. for !i=0; i<10;i))" 12. a2[i]=a1[i] 1 . 005ostrar a2 1#. for !i=0; i<10;i))" 1%. cout<<a2[i]<<endl; 1'. return 0; 1(. .

9a forma como quedar8n los valores en el arreglo es la siguienteA a1[0] = a2[0] a1[1] = a2[1] a1[2] = a2[2] a1[ ] = a2[ ] a1[#] = a2[#] a1[%] = a2[%] a1['] = a2['] a1[(] = a2[(] a1[*] = a2[*] a1[-] = a2[-]

9os arreglos prestan mucha utilidad cuando es necesario mane#ar lista de informaci%n. @or e#emplo, este programa lee la temperatura al mediod6a, durante todos los d6as de un mes y luego informar la temperatura promedio mensual as6 como el d6a m8s caluroso y el m8s fr6o. Ejemplo 4. 1. 2. . #. using namespace std; #include <iostream> int main!" $
0'()

%. int temp[ 1]/min/ ma6/ media; '. int dias; (. cout<<74uantos d8as tiene el mes7<<endl; *. cin>>dias; -. for!int i=0;i<dias;i))"$ 10. cout<<71ntrodu2ca la temperatura de mediod8a del d8a7<<i)1<<797<<endl; 11. cin>>temp[i]; 12. . 1 . 00 :allar la media 1#. media=0; 1%. for!int i=0;i<dias;i))"$ 1'. media=media)temp[i]; 1(. . 1*. cout<<7;emperatura media9 7<<media0dias<<endl; 1-. 00:allar min < ma6 20. min='0;00 ;emperatura minima de la tierra es +-0 =rados cent8grados 21. ma6=+-0; 00 ;emperatura m>6ima de la tierra es '0 =rados cent8grados 22. for!int i=0;i<dias;i))"$ 2 . if!min>temp[i]" min=temp[i]; 2#. if!ma6<temp[i]" ma6=temp[i]; 2%. . 2'. cout<<7;emperatura m8nima9 7<<min<<endl; 2(. cout<<7;emperatura m>6ima9 7<<ma6<<endl; 2*. return 0; 2-. . Arreglos %ultidi%ensionales 4s una estructura de datos est8tica y de un mismo tipo de datos, y de longitud fi#a que almacena datos de forma matricial. De igual forma que los arreglos unidimensionales, el almacenamiento de los datos en la memoria se reali"a de forma secuencial y son accedidos mediante 6ndices. 9os arreglos multidimensionales son tambin conocidos como matrices. @or lo tanto se llama matri" de orden FmGnF a un con#unto rectangular de elementos dispuestos en filas FmF y en columnas FnF, siendo m y n nmeros naturales. 9as matrices se denotan con letras maysculasA *, 5, C, ... y los elementos de las mismas con letras minsculas y sub6ndices que indican el lugar ocupadoA a, b, c, ... 7n elemento genrico que ocupe la fila i y la columna # se escribe i,#. $i el elemento genrico aparece entre parntesis tambin representa a toda la matri"A * (i,# . 7na matri" de orden /B+ se muestra a continuaci%n, siendo H una matri" de / filas y + columnas, la representaci%n gr8fica de sus posiciones ser6a la siguienteA
,'()

4 +56 Iilas E /, columnas E + columnas c0 f0 filas f1 f2 m[f0/c0] m[f1/c0] m[f2/c0] c1 m[f0/c1] m[f1/c1] m[f2/c1] c2 m[f0/c2] m[f1/c2] m[f2/c2] c m[f0/c ] m[f1/c ] m[f2/c ]

4atrices cuadradas 7na matri" cuadrada es una matri" que tiene el mismo nmero de filas y columnas. 9a matri" que se muestra a continuaci%n es de orden /B/.

7eclaraci2n de arreglos %ultidi%ensionales 9a sintaBis es la siguienteA


tipo_dato identificador 8dimensin19 8dimensin29 ### 8dimensinN9 : 7onde N es un n%ero natural positivo#

4#emplo *rreglo de dos dimensiones de orden (B/. char m:(;:/; < c0 f0 f1 a b c1 B y c2 J &-

Declaraci%n char m:(;:/;< '' forma una tabla de dos filas y tres columnas '' cada fila es un arreglo de una dimensi%n
3'()

'' la declaraci%n indica que hay dos arreglos de una dimensi%n !ombre del grupo m D indica la locali"aci%n del grupo en la memoria !ombre de las filas

m:-; D primera fila D indica la locali"aci%n de la fila dentro del grupo m:&; D segunda fila D indica la locali"aci%n de la fila dentro del grupo !ombre de los elementos m:-;:-; D primer elemento m:-;:&; D segundo elemento m:-;:(; D tercer elemento m:&;:-; D cuarto elemento m:&;:&; D quinto elemento m:&;:(; D seBto elemento m:-;:-; m:&;:-; m:-;:&; m:&;:&; m:-;:(; m:&;:(;

Haciendo referencia a algunos elementos obtendr6amos lo siguienteA m:-;:-; E a m:&;:&; E y m:&;:(; E & m:-;:(; E J

Ejemplo 5. 9lenado de un arreglo de enteros de dimensi%n /B(. 4n este e#emplo el llenado lo reali"a el usuario, en otros e#emplos se ver8 como reali"ar llenado de matrices mediante asignaci%n autom8tica, c8lculos de operaciones, etc.

K'()

1. #include <iostream> 2. using namespace std; . int main!" #. $ %. int matri2 [ ][2]; '. int valor; (. for!int i=0;i< ;i))" 00 ?ecorre las filas de la matri2 *. $ -. for!int @=0; @<2;@))" 00 ?ecorre las columnas de la matri2 10. $ 11. cout<<71ngrese el valor de la matri2 en la posicion [7<<i<<7/7<<@<<7]7<<endl; 12. cin>>valor; 1 . matri2[i][@] = valor; 1#. . 1%. . 1'. 00 1mprimiendo el arreglo en formato matricial 1(. for!int i=0;i< ;i))" 1*. $ 1-. cout<<7A7; 20. for!int @=0; @<2;@))" 21. $ 22. cout<<7Bt7<<matri2[i][@]<<7Bt7; 2 . . 2#. cout<<7A7<<endl; 2%. . 2'. return 0; 2(. . Algunas operaciones con arreglos * continuaci%n un e#emplo de operaciones de llenado de dos arreglos multidensionales o matrices de orden /B(. 9a matri" se llena autom8ticamente, la matri" * se llena con valores de un contador que va desde - a hasta K. 9a matri" 5 se llena con un acumulador que inicia desde &- y va incrementado y almacenando su valor a ra"%n de /. *dicionalmente se utili"a una opci%n para indicar al usuario si desea continuar traba#ando en el programa. Revise el Ejemplo 6A 1. 2. . #. 0, Cutor9 Dlias 4isneros EecFa9 1-+0(+200correo9cisneros.eliasGgmail.com
&-'()

%. ,0 '. #include <iostream> (. #include <string.F> *. using namespace std; -. int main!" 10. $ 11. int matri2_C [ ][2]/matri2_H [ ][2]; 12. int valores_C=0/ valores_H=10; 1 . cFar opcion[2]; 1#. int comparacion=0; 1%. cout<<7Hienvenido al programa de 4adenas 5ultidimensionales !Iresione Dnter"7<<endl; 1'. getcFar!"; 1(. do 1*. $ 1-. valores_C=0/ valores_H=10; 20. 00Jlenado arreglo C < H 21. for!int i=0;i< ;i))" 00 ?ecorre las filas de la matri2 22. $ 2 . for!int @=0; @<2;@))" 00 ?ecorre las columnas de la matri2 2#. $ 2%. matri2_C[i][@] = valores_C; 00 Csignaci3n de valores_C al elemento matri2_C[i][@] 2'. valores_C = valores_C)1;00 1ncremento de la variaKle en 1 2(. matri2_H[i][@] = valores_H;00 Csignaci3n de valores_H al elemento matri2_H[i][@] 2*. valores_H = valores_H) ; 00 1ncremento de la variaKle en 2-. . 0. . 1. 00 1mprimiendo el arreglo C en formato matricial 2. cout<<75atri2 C 7<<endl; . for!int i=0;i< ;i))" #. $ %. cout<<7A7; '. for!int @=0; @<2;@))" (. $ *. cout<<7Bt7<<matri2_C[i][@]<<7Bt7; -. . #0. cout<<7A7<<endl; #1. . #2. 00 1mprimiendo el arreglo H en formato matricial # . cout<<75atri2 H 7<<endl; ##. for!int i=0;i< ;i))" #%. $
&&'()

#'. cout<<7A7; #(. for!int @=0; @<2;@))" #*. $ #-. cout<<7Bt7<<matri2_H[i][@]<<7Bt7; %0. . %1. cout<<7A7<<endl; %2. . % . cout<<7Iara continuar el programa presione Li/ para salir Mo9 7<<endl; %#. gets!opcion"; %%. 00 ;ransformaci3n de cadena a ma<usculas %'. int tamano =strlen!opcion"; %(. for!int i=0;i<tamano;i))" %*. opcion[i]= toupper!opcion[i]"; %-. comparacion = strcmp!opcion/7L17"; '0. '1. .NFile!comparacion==0"; '2. cout<<7Ein7<<endl; ' . return 0; '#. . peraciones con arreglos unidimensionales Su%a y Resta 9os arreglos deben tener el mismo tama>o y la suma se reali"a elemento a elemento. @or e#emplo C E * 2 5. Donde *, 5 y C son arreglos de enteros de tama>o /. C
c--Ea--2b-c-&Ea-&2b-& c-(Ea-(2b-(

*
a--

5
b--

a-& a-(

b-& b-(

'L4Btracto de c%digo fuenteL' int C[ ]/H[ ]/4[ ]; for !int @=0;@< ;@))"
&('()

$ C[@] = @, ; 00 Csignaci3n de valores para arreglo C H[@] = @+2; 00 Csignaci3n de valores para arreglo H 4[@]=C[@])H[@]; 00 Csignaci3n de valores para arreglo 4 . peraciones con arreglos multidimensionales 4n matem8ticas, una matri" es una tabla de nmeros consistente en cantidades abstractas que pueden sumarse y multiplicarse. 9as matrices se utili"an para describir sistemas de ecuaciones lineales, reali"ar un seguimiento de los coeficientes de una aplicaci%n lineal y registrar los datos que dependen de varios par8metros. @ueden sumarse, multiplicarse y descomponerse de varias formas, lo que tambin las hace un concepto clave en el campo del 8lgebra lineal. 9as matrices son utili"adas ampliamente en la computaci%n, por su facilidad para manipular informaci%n. 4n este conteBto, son la me#or forma para representar grafos, y son muy utili"adas en el c8lculo numrico.

Propiedades L *sociativa Dadas las matrices mGn *, 5 y C * 2 (5 2 C E (* 2 5 2 C L Conmutativa Dadas las matrices mGn * y 5 *25E52* L 4Bistencia de matri" cero o matri" nula *2-E-2*E* L 4Bistencia de matri" opuesta con M* E :Mai#; * 2 (M* E Su%a y resta
&/'()

9os arreglos deben tener el mismo orden y la suma se reali"a elemento a elemento. @or e#emplo sean *,5 y C arreglos de nmeros punto flotante de orden (B/. 4ntonces la operaci%n C E *25 ser6aA

C
c--Ea--2b-c&-Ea&-2b&c(-Ea(-2b(c-&Ea-&2b-& c&&Ea&&2b&& c(&Ea(&2b(& c-(Ea-(2b-( c&(Ea&(2b&( c((Ea((2b((

E
a--

*
a-& a&& a(& a-( a&( a((

5
b-b-& b&& b(& b-( b&( b((

a&a(-

b&b(-

'L4Btracto de c%digo fuenteL' float C[ ][ ]/H[ ][ ]/4[ ][ ]; for !int i=0;i<2;))" $ for !int @=0;@< ;@))" $ C[i][@] = !2,i)1"0 ; 00 Csignaci3n de valores para el arreglo C H[i][@] = 2,@; 00 Csignaci3n de valores para el arreglo H 4[i][@]=C[i][@])H[i][@]; 00 Csignaci3n de valores para el arreglo 4 . . Producto por un escalar Dada una matri" * y un escalar c, su producto c* se calcula multiplicando el escalar por cada elemento de * (i.e. (c* :i, #; E c*:i, #; . 4#emplo

&+'()

Iropiedades $ean * y 5 matrices y c y d escalares. L ClausuraA $i * es matri" y c es escalar, entonces c* es matri". L *sociatividadA (cd * E c(d* L 4lemento !eutroA &N* E * L DistributividadA o De escalarA c(*25 E c*2c5 o De matri"A (c2d * E c*2d* 4#emplo de producto de un escalar por una matri" Reali"ar la operaci%n HE(L$ donde H y $ son arreglos de dimensi%n dos de orden (B(.

H
m--E(Ls-m-&E(Ls-& m&-E(Ls&m&&E(Ls&&

L
s--

$
s-& s&&

s&-

'L4Btracto de c%digo fuenteL' float H:(;:(;, $:(;:(;< for !int i=0;i<2;))" $ for !int @=0;@<2;@))" $ L[i][@] = i)@; 00 Csignaci3n de valores para el arreglo L 5[i][@]=2,L[i][@]; 00 Csignaci3n de valores para el arreglo 5 . .

Producto de %atrices 4l producto de dos matrices se puede definir s%lo si el nmero de columnas de la matri" i"quierda es el mismo que el nmero de filas de la matri" derecha. $i * es una matri" mGn y 5 es una matri" nGp,
&)'()

entonces su producto matricial *5 es la matri" mGp (m filas, p columnas dada porA (*5 :i,#; E *:i,&; 5:&,#; 2 *:i,(; 5:(,#; 2 ... 2 *:i,n; 5:n,#; para cada par i y #.

@or e#emploA

Arreglos de caracteres %ultidi%ensionales 9os arreglos de cadenas, que a menudo se conocen como tablas de cadenas son comunes en la programaci%n en C22. 7na tabla de cadenas de dos dimensiones es creada como otro cualquier arreglo de dos dimensiones. !o obstante, la forma como se conceptuali"ar8 ser8 levemente diferente. @or e#emploA

char nombres:&-;:)-; 9eidysOHenryO&0'()

9uisO*leBisOPosO4strellaO*lbertoODucyelisO*ngelOPoanO-

4sta sentencia especifica una tabla que puede contener hasta de &- cadenas, cada una de hasta )caracteres de longitud (incluyendo el car8cter de fin de cadena . @ara acceder a una cadena dentro de la tabla se especifica solamente el primer 6ndice. @or e#emplo para introducir una cadena desde el teclado en la tercera cadena de nombres, se utili"ar6a la siguiente sentenciaA gets!nomKres[2]"; De la misma manera, para dar salida a la primera cadena se utili"ar6a la sentencia cout<<nomKres[0]; OKteniendo Jeid<s cout<<nomKres[%]; OKteniendo Dstrella 9a declaraci%n que sigue crea una tabla de tres dimensiones con tres listas de cadenas. Cada lista tiene cinco cadenas de longitud, y cada cadena puede almacenar 3- caracteres. cFar animales[2][%][*0]; @ara acceder a una cadena concreta en este caso, debe especificar las primeras dos dimensiones. @or e#emplo, para acceder a la segunda cadena de la tercera lista especifique animales:(;:&;. 4n el siguiente e#emplo se utili"an dos listas (nombres y apellidos con capacidad de almacenar ) cadenas de /- caracteres cada una. Ejemplo !. 1. 2. . #. %. #include <iostream> using namespace std; int main!" $ int cant_estud = %;
&,'()

'. (. *. -. 10. 11. 12. 1 . 1#. 1%. 1'. 1(. 1*. 1-. 20. 21. 22. 2 ..

cFar nomKres[%][ 0]/ apellidos[%][ 0]; cout << 7BtBtIrograma de demostraci3n de arreglos de cadenas7 << endl; for! int i=0;i<cant_estud;i))" $ cout<<7Dstudiante 7<<i)1<<79 7<<endl; cout<<71ngrese el MomKre9 7; gets!nomKres[i]"; cout<<71ngrese el Cpellido 9 7; gets!apellidos[i]"; cout<<7 7<<endl; . cout << 7BtBt4arga reali2ada...7 << endl; for! int i=0;i<cant_estud;i))" $ cout<<7Dstudiante 7<<i)1<<7 es 9 7<<nomKres[i]<<7 7<<apellidos[i]<<endl; . return 0;

Inicializaci2n de arreglos en (11 =al como a otros tipos de variables, puede darle valores iniciales a los elementos de una arreglo. 4sto se consigue especificando una lista de valores que tendr8n los elementos del arreglo. tipo_dato identificador [tamao] =$lista de valores.; 9a lista de valores es un con#unto de valores separados por comas que son de un tipo de dato compatible con el tipo de dato del arreglo. 9a primera constante ser8 colocada en la primera posici%n del arreglo, la segunda constante en la segunda posici%n, y as6 sucesivamente . @or e#emploA int mem['] = $1/0/+ /2#/1%/1.; 4sto significa que men:-; tendr8 el valor de &, y que men:+; tendr8 el valor de &). @ara la iniciali"aci%n de arreglos de caracteres eBisten dos maneras. $i el arreglo no tiene una cadena terminada en nulo, simplemente especifique cada car8cter usando una lista separada por comas como se muestra a continuaci%nA char letras:/; E QR*R,R5R,RCRS $i el arreglo va a contener una cadena, puede iniciali"ar el arreglo usando una cadena encerrada entre comillas, tal como se muestra. char nombre:+; E T*5CU< 9os arreglos de mltiples dimensiones son iniciali"ados de la misma manera que los de una dimensi%n. Ejemplo ". peraciones con matrices
&3'()

$uponga que debe construir un programa para registrar los tiempos de los chequeos de + velocistas que compiten para un cupo en la clasificaci%n nacional. Cada velocista corre por un carril, y se deben reali"ar / chequeos por cada velocista. 7sted debe registrar el nombre del velocista que corre por cada canal, registrar el tiempo de cada prueba y su tiempo promedio. =ome en cuenta que el nombre de tiene una longitud de m8Bimo +- caracteres. 1. #include <iostream> 2. using namespace std; . int main!" #. $ %. cFar competidores [#][#0]; 0,5atri2 de nomKres de competidores,0 '. float carreras[#][ ]; 0,5atri2 de tiempos en cada vuelta de los competidores,0 (. float prom_competidores[#]; 0,Pector de tiempos promedio de los competidores,0 *. float acumulador=0; -. cout << 71nformaci3n del tiempo de cada competidor en el cFe&ueo7 << endl; 10. 0,Jlenando el vector de nomKres de participantes,0 11. for !int i=0;i<#;i))" 12. $ 1 . cout<<71ngrese el nomKre del competidor del carril 7<<i)1<<endl; 1#. gets!competidores [i]"; 1%. . 1'. 0,Jlenando la matri2 de tiempos en cada cFe&ueo,0 1(. for !int @=0;@<#;@))" 1*. $ 1-. acumulador=0; 20. cout<<71ndi&ue el tiempo del 4ompetidor 7<<competidores[@]<<endl; 21. for!int Q=0;Q< ;Q))" 22. $ 2 . cout<<7Dn la prueKa 7<<Q)1<<endl; 2#. cin>>carreras[@][Q]; 2%. acumulador=acumulador)carreras[@][Q]; 2'. . 2(. 0,=uardando el promedio de las dos carreras en el vector,0 2*. prom_competidores[@]=acumulador0 ; 2-. . 0. 0,1mprimiendo los resultados,0 1. for !int @=0;@<#;@))" 2. $ . cout<<7Dl tiempo del 4ompetidor 7<<competidores[@]; #. for!int Q=0;Q< ;Q))" %. $
&K'()

'. cout<<7Bt7<<carreras[@][Q]; (. *. . -. cout<<7Bt;iempo promedio= 7<<prom_competidores[@]<<endl; #0. . #1. return 0; #2. . $uponga los siguientes datos de entrada, c8rguelos como datos de prueba. char competidores:+;:+-;< 4l6as Cisneros Puan V. Cisneros 9igia Cisneros $im%n Cisneros

float carreras:+;:/;< &K,K K &-,) &-,( &K,0 &-,+ &-,& &-,( K,+ &-,&

$e deber6a obtener para promCcompetidores:+;< &-,& &K,/ &-,/

(-'()

&0ercicios propuestos &. $ea @ar una arreglo de enteros de tama>o &-, realice un programa que cargue de forma autom8tica nmeros de pares en cada una de sus posiciones. (. $ea 1mpar un arreglo de enteros de tama>o &-, realice un programa que cargue de forma autom8tica nmeros impares en cada una de sus posiciones. /. $ea @arC1mpar un arreglo de enteros de tama>o &-, realice un programa cargue de forma autom8tica nmeros pares en las posiciones que sean pares e impares donde las posiciones sean impares. +. $ea un vector * de ) elementos realice las siguientes operaciones. 9os elementos del vector deben ser nmeros negativos pares. Determine cual es el mayor elemento del vector (mayC* . Determine cual es el menor elemento del vector (menC5 . ). Desarrolle un programa que realice la siguiente operaci%n. $e tienen dos vectores de ) elementos numricos cada uno, reali"ar la resta del Vector * menos el Vector 5 y almacenar el resultado en un Vector C (C E * M5 , determinar el promedio de la suma de los elementos del Vector C (promCC . 0. Continuando el e#ercicio anterior, multiplique los valores que se encuentren en las posiciones impares del vector * (multCimparC* , realice lo mismo para el vector C (multCimparC5 , determine cual de los ( valores es mayor. ,. 9lenar un Vector * de 0 elementos numricos y determinar suma de todos sus elementos, promedio de los elementos y cuantos elementos est8n por encima del promedio. Realice la mismas operaci%n para el Vector 5 E +*. 1mprima el promedio de * y de 5, indique cual es el mayor de los promedios. 3. =iene / Vectores de + elementos numricos cada uno, realice la suma del Vector *, 5 y C y guarde el resultado en un Vector D. $obre el Vector resultante D sume en la posici%n / del Vector el valor numrico &-. 4n la primera posici%n del vector * sume el valor numrico ,, realice la misma operaci%n para el vector 5. Determine cual es el mayor elemento en la posici%n - entre los vectores * y 5. K. Dado dos Vectores * y 5 de , elementos numricos cada uno realice la siguiente operaci%n. 9lene el Vector * con nmeros pares comprendidos en el intervalo &-- a &(-. 4l Vector 5 debe llenarse a partir del ltimo elemento del Vector * (forma decreciente . 4l resultado es que el
(&'()

primer elemento del vector 5 debe ser el ltimo elemento del vector *, y el ltimo elemento del vector 5 debe ser el primer elemento del vector *. Reste ambos Vectores *M5 y almacnelo en el vector R. &-. Construya un algoritmo que realice la siguiente operaci%n. $ean ( vectores numricos * y 5 de K elementos numricos cada uno. 4l vector * se debe llenar solo con valores pares y el vector 5 solo con vectores impares. 4n un vector C guarde el resultado de e#ecutar /* 2 (5. 1mprima el vector C en forma descendente. Determine el promedio del vector * y el promedio del Vector 5. &&. Construya un algoritmo que realice las siguientes operaciones. =iene dos vectores numricos de &-- elementos cada uno. *segrese que para cada vector no eBistan dos elementos consecutivos repetidos. @ara el vector * determine el promedio de valores de las posiciones pares del vector< para el vector 5 determine el promedio de valores de las posiciones impares del vector. $ume los dos vectores gu8rdelos en un vector C. 1mprima C. 1mprima el promedio pedido para el vector * y para el vector 5. &(. Construya un algoritmo que realice las siguientes operaciones. =iene + vectores *,5,C y D de &- elementos numricos cada uno, llene el vector * con nmeros pares, el vector 5 con nmeros impares, el vector C con la suma de * 2 5, el vector D con la resta de * ? 5. Determinar la suma de cada vector y utili"arlo para llenar el vector R que + elementos numricos, es decir la suma del vector * corresponde a la posici%n - del Vector R, la suma del vector 5 corresponde a la posici%n & del vector R, y asi respectivamente con C y D. 1mprima el vector R. &/. Realice un algoritmo para Calcular el valor de @R y 1H de A
I? = ( + 0 3 &+ + + + + ...... + + 3 &( &0 (-

15 =

& / ) , K + + + + + ...... + ( 0 &- &+ &3

&+. 7tilice estructura de datos tipo Vector para reali"ar los c8lculos respectivos. Dado que el tama>o del vector debe conocerse en tiempo de compilaci%n, inicialice el tama>o del vector en &--. 9a cantidad de elementos debe ser controlada con un ciclo Haga Hientras, pregunt8ndole al operador si desea generar un nuevo elemento. 1mprimir los vectores @R e 1H. &0e%plo para PR @R:-; E ('+
(('()

@R:&; E @R:(; E

('+ 2 +'3 ('+ 2 +'3 20 '&(

Arreglos %ultidi%ensionales o %atrices &). $ean *, 5 y C arreglos de orden (B( de tipo de datos entero, realice las siguientes operacionesA CE*?5 C E 5M * C E (* 2 /5 &0. $ea nomKres un arreglo de caracteres de orden &-B)-, realice una programa que solicite al usuario la carga de los nombres del personal de la una empresa, la final indique cuantos caracteres contiene cada nombre y cuantos caracteres hay en total en el arreglo nomKres. &,. $ean *, 5 y C matrices cuadradas de orden /B/ de tipo de dato float, realice las siguientes operacionesA CE*?5 C E 5M * C E (* 2 /5 C E /5 C E +* M /5 &3. $ea una matri" H de orden )B) realice las siguientes operacionesA 9lene la matri" con valores positivos impares. Determine cual es el mayor elemento de la matri". Determine cual es el menor elemento de la matri" &K. $ean W, X, Y y Z matrices de orden 0B0, realice la siguiente operaci%n. WE & + R S ,Z / )

(-. Realice la siguiente operaci%n de matrices. Hultiplicaci%n de matrices. C6H =

a-a&-

a -& K -. a&& K &-

][

K -& a . K a . K = -- -- -& &K && a &- . K --a && . K&-

][

a-- . K -&a -& . K && a&- . K -&a && . K&&

]
(/'()

(&. 7n sensor submarino instalado frente a nuestras costas toma lecturas de la temperatura del agua (grados cent6grados y el nivel ruido (decibelios todos los meses y los almacena en una matri"

de orden &(B(. Construya un programa que determine mensualmente los valores promedios, m6nimos y m8Bimos del sensor. ((. 4l equipo 9eones del Caracas reali"a en la temporada regular )- #uegos, almacene en una matri" de orden )-B( los resultados de cada uno de los #uegos. 9a columna - contiene la cantidad de carreras reali"adas por 9os 9eones y la columna & contiene las carreras real"adas por su oponente en ese #uego. Determine el promedio de carreras anotadas y recibidas durante toda la campa>a regular. (/. $e necesita implementar un control de minutos en un centro comunicaciones. 7sted dispone de una matri" de orden /--B). 7na llamada local tiene un precio de 5s. &-- por minuto, una llamada a celular 5s. /)- y una llamada internacional 5s. )-- . *l finali"ar cada llamada almacene lo siguienteA 4n la columna - se almacenan la cantidad de minutos de la llamada, en la columna & se almacena el tipo de llamada ( localE&, celularE(, internacionalE/ , en la columna ( se coloca la tarifa del tipo de llamada, en la columna / se coloca costo de la llamada (minutosLtarifa , en la columna + se coloca el monto del impuesto (costoCllamadaLiva , en la columna ) se almacena el costo total de la llamada. *l final del d6a se necesita generar un reporte con los totales , promedios, m6nimos y m8Bimos de cada columna. (+. Construya un programa que permita almacenar los datos obtenidos del sorteo ganadores del [ino =8chira durante los )/ semanas del a>o (--K. 9a estructura se debe representar de la siguiente maneraA

$orteo' @osici%n & ( . . )/ Dato

@os& & /

@os( ) +

@os/ K )

@os+ &0

@os) &( ,

@os0 &/ &(

@os, &) &)

@os3 &0 &,

@osK &, &3

@os&&K &K

@os&& ((-

@os&( (& ((

@os&/ (/ (/

@os&+ (+ (+

@os&) () ()

&

&-

&&

&/

&)

&3

(-

((

(/

(+

Determinar el nmero que m8s veces sali% en cada posici%n.

(+'()

Bibliogra"'a $childt Herbert, #$$ %ara programadores. Hc\raJMHill. &KK0. httpA''es.Ji]ipedia.org'Ji]i'Hatri"C(matem^C/^*&tica

()'()

You might also like