República 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 públicamente la obra . Hacer obras derivadas .
Ba0o las condiciones siguientes Reconocimiento. Debe reconocer los créditos 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 idéntica a ésta.
&')
(ontenido *rreglos...................................................................................................................................................... *rreglos unidimensionales.........................................................................................................................+ *signaci%n entre arreglos......................................................................................................................) *rreglos multidimensionales .................................................................................................................... *lgunas operaciones con arreglos.......................................................................................................&peraciones peraciones con arreglos unidimensionales................................................................ unidimensionales................................................................ ............... ....... ............... .......& & peraciones peraciones con arreglos arreglos multidimensionales multidimensionales ................................................ ....................... ...........&/ ....... ....&/ *rreglos de caracteres multidimensionales........................................................................................... multidimensionales........................................................................................... ...&0 1niciali"aci%n 1niciali"aci%n de arreglos en C22 .................................................. .................................. ............... ....... ............... .......&3 &3 4#ercicios propuestos...............................................................................................................................& 5ibliograf6a..............................................................................................................................................)
Arreglos 7n arreglo o array (en inglés es una colecci%n de variables relacionadas a las que se hace referencia por medio de un nombre común. 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 utili"a un 6ndice. 4n el lengua#e C22 un arreglo arreglo se le conoce como un tipo de dato dato compuesto. 9os arreglos pueden tener una o varias dimensiones.
Representaci%n gr8fica de float arreglo:0;< un arreglo de una
di%ensi2n
&
arreglo:-;
arreglo:&;
/
arreglo:;
+
arreglo:/;
)
arreglo:+;
0
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 número de elementos. 4l 6ndice es un número 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 común. 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[tamaño];
arreglo:-; int arreglo:/;<
arreglo:&; arreglo:;
7n elemento del arreglo se accede indeBando el arreglo por medio de un número 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, miarreglo:-; es adyacente a miarreglo:&;, que es adyacente a miarreglo:; 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:-; primer elemento arreglo:&; segundo elemento arreglo:; tercer elemento
Ejemplo 2, el siguiente programa carga el arreglo sqrs con los cuadrados de los números del & al &- y luego los visuali"a.
1. using namespace std; 2. #include
. 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<
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
Asignación entre arreglos 4n C22 no se puede asignar un arreglo completo a otro arreglo. @or e#emplo, este fragmento es )')
incorrecto. char a&:&-;, a:&-;< . . . aEa&< '' 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 números & a &- y después los copia en a. Ejemplo 3.
1. using namespace std; 2. #include . int main!" . $ %. int a1[10]/ a2[10]; '. int i; (. nicialiaci3n de a1 *. for !i=0; i<10;i))" -. a1[i]=i)1; 10. 4opiar en a2 11. for !i=0; i<10;i))" 12. a2[i]=a1[i] 1. 5ostrar a2 1. for !i=0; i<10;i))" 1%. cout<
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 int main!" $ 0')
%. int temp[1]/min/ ma6/ media; '. int dias; (. cout<<74uantos d8as tiene el mes7<>dias; -. for!int i=0;i>temp[i]; 12. 1. :allar la media 1. media=0; 1%. for!int i=0;itemp[i]" min=temp[i]; 2. if!ma6
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 también 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 números naturales. 9as matrices se denotan con letras mayúsculasA *, 5, C, ... y los elementos de las mismas con letras minúsculas y sub6ndices que indican el lugar ocupadoA a, b, c, ... 7n elemento genérico que ocupe la fila i y la columna # se escribe i,#. $i el elemento genérico aparece entre paréntesis también representa a toda la matri"A * (i,#. 7na matri" de orden /B+ se muestra a continuaci%n, siendo una matri" de / filas y + columnas, la representaci%n gr8fica de sus posiciones ser6a la siguienteA ')
4 +56 Iilas E /, columnas E + columnas
filas
c0
c1
c2
c
f0
m[f0/c0]
m[f0/c1]
m[f0/c2]
m[f0/c]
f1
m[f1/c0]
m[f1/c1]
m[f1/c2]
m[f1/c]
f2
m[f2/c0]
m[f2/c1]
m[f2/c2]
m[f2/c]
4atrices cuadradas 7na matri" cuadrada es una matri" que tiene el mismo número 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 8dimensión19 8dimensión29 ### 8 dimensiónN 9 : 7onde N es un nú%ero natural positivo# 4#emplo *rreglo de dos dimensiones de orden B/. char m:;:/; < f0 f1
c0
c1
c2
a b
B y
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 indica la locali"aci%n del grupo en la memoria !ombre de las filas
m:-; primera fila indica la locali"aci%n de la fila dentro del grupo m:&; segunda fila indica la locali"aci%n de la fila dentro del grupo
!ombre de los elementos m:-;:-; primer elemento m:-;:&; segundo elemento m:-;:; tercer elemento m:&;:-; cuarto elemento
m:-;:-;
m:-;:&;
m:-;:;
m:&;:-;
m:&;:&;
m:&;:;
m:&;:&; quinto elemento m:&;:; seBto elemento
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 2. using namespace std; . int main!" . $ %. int matri [][2]; '. int valor; (. for!int i=0;i<;i))" ?ecorre las filas de la matri *. $ -. for!int @=0; @<2;@))" ?ecorre las columnas de la matri 10. $ 11. cout<<7ngrese el valor de la matri en la posicion [7<>valor; 1. matri[i][@] = valor; 1. 1%. 1'. mprimiendo 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<
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. . .
, Cutor9 Dlias 4isneros EecFa9 1-+0(+200correo9cisneros.eliasGgmail.com
&-')
%. , '. #include (. #include *. using namespace std; -. int main!" 10. $ 11. int matri_C [][2]/matri_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<
'. cout<<7A7; (. for!int @=0; @<2;@))" *. $ -. cout<<7Bt7<
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
E
c--Ea--2b-c-&Ea-&2b-& c-Ea-2b-
*
2
a--
E
a-& a-
5 b--
2
b-& b-
'L4Btracto de c%digo fuenteL' int C[]/H[]/4[]; for !int @=0;@<;@))"
&')
$ C[@] = @,; Csignaci3n de valores para arreglo C H[@] = @+2; Csignaci3n de valores para arreglo H 4[@]=C[@])H[@]; Csignaci3n de valores para arreglo 4
peraciones con arreglos multidimensionales 4n matem8ticas, una matri" es una tabla de números 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 también 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 numérico.
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 números punto flotante de orden B/. 4ntonces la operaci%n C E *25 ser6aA
C
E
c--Ea--2b--
c-&Ea-&2b-&
c-Ea-2b-
c&-Ea&-2b&-
c&&Ea&&2b&&
c&Ea&2b&
c-Ea-2b-
c&Ea&2b&
cEa2b
E
*
2
a--
a-&
a-
a&-
a&&
a&
a-
a&
a
2
5 b--
b-&
b-
b&-
b&&
b&
b-
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"; Csignaci3n de valores para el arreglo C H[i][@] = 2,@; Csignaci3n de valores para el arreglo H 4[i][@]=C[i][@])H[i][@]; 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 EL$ donde y $ son arreglos de dimensi%n dos de orden B.
E
m--ELs--
m&-ELs&-
m-&ELs-&
m&&ELs&&
E
L
L
$ s--
s-&
s&-
s&&
'L4Btracto de c%digo fuenteL' float :;:;, $:;:;< for !int i=0;i<2;))" $ for !int @=0;@<2;@))" $ L[i][@] = i)@; Csignaci3n de valores para el arreglo L 5[i][@]=2,L[i][@]; Csignaci3n de valores para el arreglo 5
Producto de %atrices 4l producto de dos matrices se puede definir s%lo si el número de columnas de la matri" i"quierda es el mismo que el número 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*leBisOPoséO4strellaO*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<
#include 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
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 [tamaño] =$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 Q*,5,CS $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 múltiples 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 2. using namespace std; . int main!" . $ %. cFar competidores [][0]; ,5atri de nomKres de competidores, '. float carreras[][]; ,5atri de tiempos en cada vuelta de los competidores, (. float prom_competidores[]; ,Pector de tiempos promedio de los competidores, *. float acumulador=0; -. cout << 7nformaci3n del tiempo de cada competidor en el cFe&ueo7 << endl; 10. ,Jlenando el vector de nomKres de participantes, 11. for !int i=0;i<;i))" 12. $ 1. cout<<7ngrese el nomKre del competidor del carril 7<>carreras[@][Q]; 2%. acumulador=acumulador)carreras[@][Q]; 2'. 2(. ,uardando el promedio de las dos carreras en el vector, 2*. prom_competidores[@]=acumulador; 2-. 0. ,mprimiendo los resultados, 1. for !int @=0;@<;@))" 2. $ . cout<<7Dl tiempo del 4ompetidor 7<
'. cout<<7Bt7<
float carreras:+;:/;< &-
&-,
&-,&
K,K
&-
&-,
K
K,0
K,+
&-,)
&-,+
&-,&
$e deber6a obtener para promcompetidores:+;< &-,& &K,/ &-,/
-')
&0ercicios propuestos &. $ea @ar una arreglo de enteros de tama>o &-, realice un programa que cargue de forma autom8tica números 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 números impares en cada una de sus posiciones. /. $ea @ar1mpar un arreglo de enteros de tama>o &-, realice un programa cargue de forma autom8tica números 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 números negativos pares. • Determine cual es el mayor elemento del vector (may*. • Determine cual es el menor elemento del vector (men5. ). Desarrolle un programa que realice la siguiente operaci%n. $e tienen dos vectores de ) elementos numéricos 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 (promC. 0. Continuando el e#ercicio anterior, multiplique los valores que se encuentren en las posiciones impares del vector * (multimpar*, realice lo mismo para el vector C (multimpar5, determine cual de los valores es mayor. . 9lenar un Vector * de 0 elementos numéricos 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 numéricos 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 numérico &-. 4n la primera posici%n del vector * sume el valor numérico , 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 numéricos cada uno realice la siguiente operaci%n. 9lene el Vector * con números 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 almacénelo en el vector R.
&-. Construya un algoritmo que realice la siguiente operaci%n. $ean vectores numéricos * y 5 de K elementos numéricos 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 numéricos de &-- elementos cada uno. *segúrese 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 numéricos cada uno, llene el vector * con números pares, el vector 5 con números 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 numéricos, 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 1 de A I? =
15 =
( +
+ +
& (
3
0 +
/ +
0
&(
) +
&-
+
+
3 &0
&+
, &+
(-
K +
&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 ientras, pregunt8ndole al operador si desea generar un nuevo elemento. 1mprimir los vectores @R e 1.
&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" 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. ultiplicaci%n de matrices. C6H =
[
a--
a -&
a&-
a&&
][ .
K --
K -&
K &-
K &&
][ =
a -- . K --a -& . 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 (costollamadaLiva, 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
@os&
@os
@os/
@os+
@os)
@os0
@os
@os3
@osK
@os&-
@os&&
@os&
@os&/
@os&+
@os&)
&
&
)
K
&-
&
&/
&)
&0
&
&K
-
&
/
+
)
/
+
)
0
&
&)
&
&3
&K
-
/
+
)
&
/
+
)
K
&-
&&
&/
&)
&3
-
/
+
. . )/ Dato
Determinar el número que m8s veces sali% en cada posici%n.
+')
Bibliogra"'a • •
$childt Herbert, #$$ %ara programadores. c\raJMHill. &KK0. httpA''es.Ji]ipedia.org'Ji]i'atri"(matem^C/^*&tica
)')