Sei sulla pagina 1di 13

Curso: geometra analtica

VECTORES Y MATRICES
4.- NOCIN DE VECTOR
Nueva estructura de objeto, frecuentemente utilizada en informtica y a la
que se aplican numerosos tratamientos iterativos. Por ejemplo, supongamos una
empresa con 40 sucursales y que deseamos calcular el total de rentas.
El procedimiento a seguir sera ir sumando cada elemento del vector.
a! "otal #enta$%! & #enta$'! & #enta$(! & ... & #enta$40!
)e esta forma se define el vector en algortmica a trav*s de un n+ ndice que va
a indicar el elemento del vector con el cual estamos ,aciendo operaciones.
b! #EN"- $.! . /%..400
"1"-2 0 #ariable donde vamos a almacenar la sumatoria.
Para . de % ,asta 40 ,acer
"1"-2 "1"-2 & #EN"-$.!
3in para
Definicin de Vector:
4onjunto ordenado que contiene un n+ fijo de elementos $su dimensi5n! de
cualquier tipo vlido definido con la condici5n de que todos deben ser del mismo tipo.
3orma de declarar un vector6
#ector tipo nombre /ndice mnimo .. ndice m7imo0
Ejem!o: Para el ejemplo anterior la declaraci5n del vector quedara de esta
forma6
vector entero venta /%..400
4.".- O#ERACIONES CON VECTORES
31
Curso: geometra analtica
A$i%n&cin
En general, los lenguajes de programaci5n incluyen como muc,o instrucciones
de lectura8escritura de vectores completos, siendo muy pocos la que tienen definidas
otras operaciones primitivas con el vector tomado como dato 9nico.
2a estructura de control asociada de manera natural con los vectores es la estructura
de tipo :P-;-:
Ejem!o:
-lgoritmo .nicializar<#ector
#ector de reales # /% .. %000
Para i de % ,asta %00 ,acer
#$i! 0.0
3in para
3inal
En algunos lenguajes se permite la asignaci5n directa entre vectores de igual
dimensi5n y tipo.
2a condici5n principal para poder realizar este tipo de asignaciones es que
debe cumplirse que los dos vectores sean del mismo tipo y de la misma longitud.
u v el vector =u= pasa a contener los datos de =v=
1tra forma de ,acer esta asignaci5n es a trav*s de la asignaci5n de elemento en
elemento. Este tipo de asignaci5n es la que se realiza de forma com9n en
programaci5n, y la que utilizaremos en nuestros algoritmos.
Para i de % ,asta n ,acer
u$i! v$j!
3in para
)e este modo veamos un ejemplo6 "enemos dos vectores con las mismas
caractersticas $tipo y longitud!. >e pretende intercambiar los datos entre dos vectores
a b. Para ello utilizaremos un elemento de apoyo c.
-lgoritmo .ntercambio de vectores
32
Curso: geometra analtica
#ariables enteras i, n, c
#ectores de enteros a /%..%000, b/%..%000
Escribir ?.ntroduzca el n9mero de elementos de los vectores@
2eer n
A Para i de % a n
Escribir ?.ntroduzca el elemento a/?,i,@0@
2eer a/i0
Escribir ?.ntroduzca el elemento b/?,i,@0@
2eer b/i0
A 3in<Para
A Para i de % a n
c a/i0 1bs*rvese como se realiza el proceso de
a /i0 b/i0 intercambio. Necesitamos la variable de
b /i0 c apoyo para no perder por sobrescritura los datos de un
vector.
A 3in<Para
A Para i de % a n
Escribir ?a/?,i,@0B@,a/i0
Escribir ?b/?,i,@0B@,b/i0
A 3in<Para
3inal
4.".".- NECESIDAD DE' #REDIMENSIONAMIENTO #OR E(CESO
Es muy importante entender que la zona de declaraci5n de variables de un
algoritmo >.ECP;E >E EDE4E"- -N"E> FEE 2-> >EN"EN4.-> )E2 C.>C1.
)ebido a esto, E> .CP1>.G2E 41214-; EN- #-;.-G2E 41C1 ).CEN>.1N )E EN
#E4"1; 1 C-";.H. Por ello, siempre que pretendamos manipular un n9mero de datos
escogido por el usuario, tendremos que recurrir a un predimensionamiento por e7ceso,
considerando un tamaIo superior al que *ste escoger. Jabitualmente se puede poner
%00 como dimensi5n por defecto, salvo casos en los que se vea claro que sean
necesarios ms elementos.
4.).- 'ECT*RA Y ESCRIT*RA
4omo ,emos visto anteriormente, en algortmica podemos utilizar la
asignaci5n de forma directa o por medio de la asignaci5n de los elementos. )e
igual forma a la ,ora de leer podemos utilizar la lectura directa o lectura por
elementos.
Ejemplo de lectura 8 escritura por elementos6
Para i de % a n ,acer
2eer v$i!
3in para
33
Curso: geometra analtica
Para i de % a n ,acer
Escribir v$i!
3in para
3inalmente, decir que aunque por facilitar la comprensi5n de los ejemplos aqu
mostrados, se ?obviarn@ las operaciones de lectura y escritura realizndolas en forma
directa, los algoritmos de e7amen >.ECP;E debern indicarse estas operaciones
desarrolladas, es decir, por elementos.
4.+.- O#ERACIONES E'EMENTA'ES CON VECTORES N*M,RICOS
S-m& de .ectore$
-lgoritmo suma<vectores
4onstante nB ... 3orma de resolver el problema del
#ariable entera i predimensionamiento por e7ceso
#ectores reales a/%..n0, b/%..n0, c/%..n0
2eer a,b 2E4"E;- ).;E4"-, N1 E>-;K
Para i de % a n ,acer
c$i! a$i!&b$i!
3in para
Escribir c E>4;."E;- ).;E4"-, N1 E>-;K
3inal
2os vectores que se suman ,an de ser del mismo tipo y dimensi5n.
#rod-cto or -n e$c&!&r
-lgoritmo producto por escalar
4onstante nB ...
#ariable real 7
entera i
vectores reales a$%..n!,b$%..n!
2eer a
2eer 7
Para i de % a n ,acer
b$i! 7La$i!
3in para
Escribir b
3inal
#rod-cto e$c&!&r de do$ .ectore$
-lgoritmo producto escalar
constante nB ...
variable entera i
real c
vectores reales a$%..n!, b$%..n!
2eer a,b
c 0.0
34
Curso: geometra analtica
Para i de % a n ,acer
c c&a$i!Lb$i!
3in para
Escribir c
3inal
Md-!o de -n .ector
-lgoritmo modulo
constante nB ...
variable entera i
real modulo, suma<cuadrados
vector real a $%..n!
2eer a
suma<cuadrados 0.0
Para i de % a n ,acer
suma<cuadrados suma<cuadrados & a$i!La$i!
3in para
modulo sqr $suma<cuadrados!
Escribir m5dulo
3inal
4.4.- IDENTI/ICACIN DE #O'INOMIOS CON VECTORES
>ea un polinomio de grado n6
P x P x P x P x P
n
x
n
n
( ) ... = + + + +

1
1
1 0
Pude representarse mediante un vector donde sus elementos son los coeficientes
del polinomio.
vector real P$0..n!
S-m& de o!inomio$
-lgoritmo suma<polinomios
constante nB...
vectores reales p$0..n!,q$0..n!,r$0..n!
variable entera i
2eer p,q
Para i de % a n ,acer
r$i! p$i! & q$i!
3in para
Escribir r
3inal
35
Curso: geometra analtica
E.&!-&cin de -n o!inomio
;egla de ;uffini6 valor p$7! para 7Ba . >e basa en dividir el polinomio p/0..n0 por $7Aa!,
obteniendo el polinomio cociente, q/0..nA%0
qnA% B pn
qnA' B pnA% &a qnA%
...
q0 B p% & aq%
r B p0 & aq0
#eamos a,ora el algoritmo.
-lgoritmo ;uffini
constante nB...
#ariable real a
entera i
#ectores reales p$0..n!, q$0..nA%!
2eer p
2eer a
q$nA%! p$n!
Para i de nA% a % incremento A% ,acer
q$iA%! p$i! & aLq$i!
3in para
r p$0!&aLq$0!
Escribir ?Polinomio cociente B @ q
Escribir ?;esto $valor de p$a! B ?, r
3inal
4.0.- ORDENACION Y 1*S2*EDA
#eamos en este apartado las operaciones comunes en el tratamiento de
vectores.
Orden&cin or $e!eccin
>upongamos un vector, donde parte de sus elementos estn ordenados y
otros no. 2os pasos a seguir para realizar la ordenaci5n son los siguientes6
r n t d a , m z o M s c
36
Curso: geometra analtica
a% a' ... aMA% aM ... ... ... ai ... ... an
Elementos desordenados
a! Para realizar la ordenaci5n por selecci5n se ,acen varios barridos del
vector. Primeramente cogemos el primer elemento del vector y lo
comparamos con todos los elementos restantes buscando aquel elemento que
posea el valor ms pequeIo.
r n t d a , m z o M s c
a% a' ... aMA% aM ... ... ... ai ... ... an
b! Ena vez encontrado el elemento menor, se coloca en la posici5n
correspondiente, realizando un intercambio de posiciones entre el elemento
que ,emos comparado y el que ,emos encontrado.
a n t d r , m z o M s c
a% a' ... aMA% aM ... ... ... ai ... ... an
c! Ena vez ordenado el primer elemento, realizamos la misma operaci5n con
los restantes. 3inalmente el vector quedar ordenado.
a c d , M m n o r s t z
a% a' ... aMA% aM ... ... ... ai ... ... an
El algoritmo de ordenaci5n por selecci5n es el siguiente.
-lgoritmo >elecci5n
constante nB...
variable entera i,j,M
real 7 variable de apoyo
vector de reales a$%..n!
2eer a
Para i de % a nA% ,acer el ultimo =n= ya estar ordenado.
M i ?M@ es el ndice del elemento menor a permutar
37
Curso: geometra analtica
con a/i0, inicialmente lo ponemos igual que i
Para j de i&% a n ,acer
si a$j! N a$M! entones
M j >i aparece un elemento de menor valor, fijamos
3insi ?M@ a su ndice
3in para
7 a$i! Permutamos a/i0 con a/M0
a$i! a$M!
a$M! 7
3in para
Escribir a
3inal
Ejercicio #ro-e$to: ;ealizar la traza para la ordenaci5n por selecci5n del vector
aB$OP,Q(,R,%P,'Q,%','!
13$4-ed& 'ine&!
)ado un vector que suponemos desordenado, localizar un elemento que tenga
un valor determinado requerir un barrido a lo largo del mismo ,asta encontrar dic,o
elemento.
-lgoritmo b9squeda<lineal
constante nB ...
variable entera i
real 7
vector de reales a$%..n!
2eer a
2eer 7
y %
mientras $a$i! 7 and i n! ,acer
i i&%
38
Curso: geometra analtica
fin mientras
si i n entonces
escribir $:)ato :S7S: Encontrado en la posici5n6 :Si!
sino escribir $:)ato no encontrado:!
finsi
3inal
13$4-ed& 1in&ri&
>i el vector est ordenado, e7isten m*todos de b9squeda mas eficientes. Eno
de ellos es el de la b9squeda dicot5mica. #eamos un ejemplo donde el vector est
ordenado de forma ascendente $menor AT mayor!.
-lgoritmo Gusqueda<)icot5mica
constante nB...
variable entera i,j,m
real 7
vector a$%..n!
2eer a
2eer 7
i %
j n
repetir
m $i&j!8'
si 7 N a$m! entonces
39
Curso: geometra analtica
j mA%
finsi
si 7 T a$m! entonces
i m&%
finsi
,asta que $a$m!B7 or iTj!
si a$m! B 7 entonces
escribir $:)ato :S7S: Encontrado en la posici5n6 :Sm!
sino escribir $:)ato no encontrado:!
finsi
3inal
4.5.- MATRICES.
Podemos e7tender el concepto de vector a estructuras con dos ndices, es decir,
matrices.
)e forma anloga a la utilizaci5n de un bucle, normalmente de tipo :para:,en el
tratamiento de los elementos de un vector para el caso de una matriz, l5gicamente,
se requerirn dos bucles compuestos.
-l igual que en el caso de vectores, todos los elementos de una matriz deben ser
del mismo tipo. )eclaraci5n6
Catriz tipo nombre $ndice fila mn..ndice fila m7, ndice col mn..ndice col m7!
2os conceptos de vector y matriz no son sino casos particulares de una
estructura general de :p: dimensiones que denominaremos tabla.
4.6.- O#ERACIONES CON MATRICES.
A$i%n&cin.
40
Curso: geometra analtica
Por ejemplo6 inicializaci5n a cero 6
para i de % a m ,acer
para j de % a n ,acer
a$i,j! 0.0
fin para
fin para
Definicin de m&tri7 identid&d
para i de % a n ,acer
para j de % a n ,acer
si iBj entonces
.$i,j! %
sino .$i,j! 0
finsi
fin para
fin para
-signaci5n de valores introducidos por el usuario6
para i de % a m ,acer
para j de % a n ,acer
leer a$i,j!
fin para
fin para
-l igual que con los vectores, a efectos de simplificar los algoritmos de ejemplo,
e7presaremos en ocasiones la lectura y escritura de forma abreviada $N1 PE;C.".)1
E2 EDE;4.4.1> )E EU-CEN!6
leer a
escribir a
4.8.- O#ERACIONES E'EMENTA'ES CON MATRICES N*M,RICAS.
S*MA DE MATRICES.
-lgoritmo suma de matrices
constantes mB..., nB...
variables enteras i, j
41
Curso: geometra analtica
matrices reales a$%..m,%..n!, b$%..m,%..n!, c$%..m,%..n!
leer a, b
para j de % a m ,acer
para j de % a n ,acer
c$i,j! a$i,j! & b$i,j!
fin para
fin para
escribir c
3inal
Ejercicio #ro-e$to: Jallar la traza para6 a$',(,A%,4,P,%0! y b$%,O,Q,%R,A(,'O!
Evidentemente, las matrices ,an de ser del mismo tipo y deben tener las mismas
dimensiones.
#rod-cto de -n& m&tri7 or -n e$c&!&r
-lgoritmo producto por un escalar
constantes mB..., nB...
variables enteras i, j
variable real 7
matrices reales a$%..m,%..n!, b$%..m,%..n!
leer a
leer 7
para i de % a m ,acer
para j de % a n ,acer
b$i,j! 7 L a$i,j!
fin para
fin para
escribir b
3inal
#rod-cto m&trici&!
-lgoritmo producto matricial
constantes mB..., nB..., qB...
variables enteras i, j, M
matrices reales a$%..m,%..n!, b$%..n,%..q!, c$%..m,%..q!
leer a, b
para i de % a m ,acer
para j de % a q ,acer
c$i,j! 0.0
para M de % a n ,acer
c$i,j! c$i,j! & a$i,M!Lb$M,j!
fin para
fin para
fin para
42
Curso: geometra analtica
escribir c
3inal
Ejercicio$ #ro-e$to$
".- )ado un vector :a: de n componentes reales, formular un algoritmo para
determinar los componentes m7imo y mnimo.
).- Escribir un algoritmo para obtener la traspuesta de una matriz -$m,n!.
+.- 1btener un algoritmo que lea un conjunto de n datos reales, los almacene en un
vector :a: y determine6
a.A El recorrido, r B ma7$aj! A min$aj!
b.A El valor medio6 a
n
a
i
i
n
=
=

1
1
c.A 2a desviaci5n tpica6 =
=

1
2
1
n
a a
i
i
n
( )
d.A El coeficiente de variaci5n6

a
4.- Codificar el algoritmo de ordenaci5n por selecci5n, de forma que opcionalmente la
ordenaci5n pueda ser ascendente o descendente.
0.- >ean dos matrices de dimensiones m,n y l,M. )iseIar un un algoritmo que detecte
aquellos elementos presentes en ambas matrices y los escriba, indicando su
posici5n en las dos matrices $suponiendo que no ,ay valores repetidos dentro de
ninguna de las dos matrices!.
5.- )ado un vector de n elementos enteros desordenado, escribir un algoritmo que
detecte aquellos elementos que estn repetidos, escribiendo el elemento y el n9mero
de veces que se repite.
43

Potrebbero piacerti anche