• No se han encontrado resultados

Vectores y Matrices. Los Arreglos pueden ser Uni-, Bi- o Mul=- dimensionales.(vector,

N/A
N/A
Protected

Academic year: 2021

Share "Vectores y Matrices. Los Arreglos pueden ser Uni-, Bi- o Mul=- dimensionales.(vector,"

Copied!
18
0
0

Texto completo

(1)

Vectores  y  Matrices  

Arreglo:  

es  una  estructura  de  datos  que  almacena  

bajo  el  mismo  nombre  (variable)  a  una  colección  

finita  de  datos  del  mismo  =po  (numéricos  o  

alfanuméricos,  pero  no  una  combinación  de  

dis=ntos  =pos).  

 

Los  Arreglos  pueden  ser  Uni-­‐,  Bi-­‐  o  Mul=-­‐

dimensionales.(vector,  tabla,  etc.)  

 

 

(2)

Caracterís=cas  

Almacena  los  elementos  en  posiciones  con.guas.  

Tienen  un  mismo  nombre  de  variable  o  iden.ficador,  que  

representa  a  todos  los  

elementos.  

 Los  elementos  son  referenciados  mediante  un  índice    que  

especifica  el  lugar  que  ocupa  cada  elemento.  

 

Se  .ene  acceso  directo  aleatorio  a  los  elementos  

individuales  del  arreglo.  

En  el  contexto  de  este  curso  lo  trataremos  como  una  

estructura  de  datos  está.ca,  se  les  

asigna  una  can=dad  fija  

de  memoria  cuando  se  declara  la  variable.  

(3)

VECTORES  

Arreglos  unidimensionales  

Ejemplo:  Se  necesitan  almacenar  las  

calificaciones  que  obtuvieron  50,  

alumnos.  

Para  hacerlo  se  necesita  reservar  50  

posiciones  de  memoria,  dar  un  nombre  al  

arreglo  y  a  cada  uno  de  los  50  estudiantes  

asignarles  una  calificación.  

(4)

Uso  del  índice  de  un  arreglo  

Cada  elemento  del  vector  se  puede  procesar  

como  si  fuera  una  variable  simple.  

El  valor  del  índice  indica  cual  es  el  elemento  que  

se  está  referenciando,  a  través  de  ellos  pueden  

realizarse  las  siguientes  operaciones:  

Asignar  valores  a  un  elemento  del  vector  

A[1]

ß

 25  

B[i]

ß

 “rojo”  

Estado[100*j-­‐1]

ß

falso  

Leer  a[1],  b[i]  

(5)

U=lizar  en  expresiones  elementos  de  vectores  

»

Max

ß

 A[n]  

»

A[1]

ß

 A[1]+A[n]  

»

A[i]

ß

 A[i]*j+3  

»

si  (A[n]<50)  entonces...  

Mostrar  elementos  de  vectores  

»

Mostrar  (“el  elemento  1  del  vector  es”,  A[1])  

Uso  del  índice  de  un  arreglo  

(6)

Uso  del  índice  de  un  arreglo  

Los  índices  de  un  arreglo  deben  ser  un  

intervalo  de  =po  simple:  

entero,  

lógico,  

carácter,  

enumerado  o  

(7)

Operaciones  con  Arreglos  

Los  arreglos  no  se  pueden  leer/escribir  en  una  

sola  sentencia.  La  lectura  o  escritura  de  un  

arreglo  se  debe  hacer  elemento  a  elemento,  y  

para  realizar  estas  operaciones  se  deben  leer  

o  visualizar  los  componentes  de  un  arreglo  

mediante  estructuras  repe==vas,  haciendo  

variar  el  índice.  

(8)

Operaciones  con  Arreglos  

El  vector  debe  ser  dimensionado.  Al  dimensionar  un  vector  le  decimos  a  la  

máquina  que  reserve  los  espacios  de  memoria  necesarios  para  los  

elementos  del  vector.    

Los  problemas  relacionados  con  vectores  tendrán  casi  siempre  esta  forma    

Inicio  

 Definir  Vector  

 

       Leer  dimensión  del  vector  

Dimensionar  Vector  

Cargar  Vector  

Procesamiento  de  los  elementos  del  vector    

Imprimir  Vector  

 

fin  

     

Por  lo  tanto,  vamos  a  tener  tres  

desde...fin  desde

 bien  diferenciados:    

Un  bucle  para  la  carga    

Un  bucle  para  el  proceso    

Un  bucle  para  la  impresión  

(9)

Carga  de  un  vector  

Ejercicio:  Cargar  un  vector  de  30  componentes.  

inicio    

 Definir  V,l  como  Enteros  

 dimensionar  V[30]  

 para  I  

ß

 1  hasta  30  hacer  

     leer  V[I]  

 fin-­‐para  

fin  

(10)

También  se  puede  u=lizar    

mientras  y  repe=r  

inicio    

 Definir  V  como  Entero  

 Definir  l  como  Entero  

 dimensionar  V[30]  

 l

ß

1    

 mientras  l<=  30  hacer    

   

 leer  V[I]  

 

 l

ß

l+1  

 fin-­‐mientras  

Fin  

inicio    

 Definir  V  como  Entero  

 Definir  l  como  Entero  

 dimensionar  V[30]  

 l

ß

1  

 repe=r    

 

 

 leer  V[I]  

 

 l

ß

l+1  

 hasta  (l>30)  

fin  

(11)

Procesando  un  vector

 

inicio    

 Definir  l,D  como  Enteros  

 Definir  suma,  promedio,  H  como  Reales    suma  ß  0  

leer  D  

Dimensionar  H[D]  

Para  I  ß  1  hasta  D  Hacer    

   leer  H  [I]    

 finPara  

Para  I  ß  1  hasta  D    Hacer      suma  ß  suma    +    H[I]    

 finPara  

promedio    ß  suma  /  D          Para  I  ß  1  hasta  D  

   Escribir  H[I]  

 finPara  

Escribir  "La  suma  de  los  elementos  del  vector  es",  suma  

Escribir  "El  promedio  es:",  promedio  

fin    

Ejercicio:  Leer  un  vector  de  D  componentes  reales.  Hallar  la  suma  y  el  promedio  de  los  elementos  del  vector.    

 

 

 

Suma=0  

D=Input(‘ingrese  D:’);  

H=zeros(D);  

for  i=1:D,  

     H(i)=input(‘ingrese  elemento’);  

End  

for  i=1:D,  

     suma=suma+H(i);  

End  

Promedio=suma/D;  

for  i=1:D,  

     disp(H(i));  

End  

Disp(‘la  suma  da:  ‘);  Disp(suma);  

Disp(‘el  prom.  Es:  ‘);  Disp(promedio);  

 

(12)

Matrices  

Un  array  bidimensional  o  matriz  es  un  conjunto  de  datos  

homogéneos  (todos  del  mismo  =po),  cada  uno  de  los  cuales  

debe  referenciarse  por  dos  índices.  Los  índices  determinan  la  

posición  de  una  fila  y  una  columna.

 

(13)

Dimensionamiento  y  Carga  de  una  matriz

   

Así  como  un  vector  =ene  que  ser  nombrado  y  

dimensionado  antes  de  ser  u=lizado,  una  

matriz  también.    

La  instrucción  para  dimensionar  una  matriz  es:  

 

dimensionar  

nombre

[filas,columnas]  

 

ej.:  Definir  mat  como  Real  

   dimensionar  mat[5,6]  

(14)

Carga  de  una  Matriz  

La  carga  de  datos  se  realiza  de  la  misma  forma  que  un  

vector,  por  medio  de  un  bucle;    

solo  que  en  este  caso,  vamos  a  necesitar  2  bucles;  uno  

que  recorra  las  filas  y  otro  las  columnas:    

       

definir  mat  como  Real  

 dimensionar  mat[5,6]  

 para  fila  

ß

 1  hasta  5  hacer

 

       para  columna  

ß

 1  hasta  6  hacer

 

                         leer  mat[fila,  columna]

 

       fin-­‐para

 

fin-­‐para

 

 

(15)

 MAT  (1,  1)  

MAT  (1,  2)  

MAT  (1,  3)  

MAT  (1,  4)  

MAT  (1,  5)  

MAT  (1,  6)        aqui  termina  el  primer    bucle  de  columnas   comienza  el  segundo  bucle  para  recorrer  la  segunda  fila    

 MAT  (2,  1)        

MAT  (2,  2)  

MAT  (2,  3)  

MAT  (2,  4)  

MAT  (2,  5)  

MAT  (2,  6)  aquí  termina  el  segundo    bucle  de  columnas  

comienza  el  tercer  bucle  para  recorrer  la  tercera  fila      MAT  (3,  1)      MAT  (3,  2)   MAT  (3,  3)   MAT  (3,  4)   MAT  (3,  5)   MAT  (3,  6)    

comienza  el  cuarto  bucle  para  recorrer  la  cuarta  fila  

 MAT(4,  1)       MAT(4,  2)   MAT(4,  3)   MAT(4,  4)   MAT(4,  5)   MAT(4,  6)    

comienza  el  quinto  bucle  para  recorrer  la  quinta  fila  

 MAT(5,  1)      

MAT(5,  2)  

MAT(5,  3)  

MAT(5,  4)  

MAT(5,  5)  

MAT(5,  6)    -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  Fin  de  ambos  bucles        

•  Una  matriz  también  puede  recorrerse  por  

columnas,  invir=endo  el  orden  de  anidamiento   de  los  bucles:   Bucle  filas    Bucle  columnas     Bucle  Columnas    Bucle  filas  

(16)

Carga  e  Impresión  de  una  Matriz  

inicio

   

     Definir  cankilas,  cantcolumnas,  fila,  columna  como  Enteros  

                 leer  can9ilas,  cantcolumnas  

     Definir  MAT  como  String

 

 

   -­‐-­‐-­‐-­‐-­‐-­‐  se  define

 

   dimesionar  MAT[can9ilas,  cantcolumnas]        

   -­‐-­‐-­‐-­‐-­‐-­‐  se  dimensiona

   

               Para  filaß  1  hasta  can9ilas  Hacer

 

                       Para  columnaß  1  hasta  cantcolumnas  Hacer

 

                               leer  MAT[fila,columna]                                                                          -­‐-­‐-­‐-­‐-­‐-­‐-­‐  lectura

 

                       fin-­‐para

 

   fin-­‐para

   

               Para  fila

ß

 1  hasta  can9ilas  Hacer

 

                       Para  columna

ß

 1  hasta  cantcolumnas  Hacer

 

                               imprimir  MAT[fila,columna]                                                

   -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  impresión

 

                       fin-­‐para

 

     fin-­‐para

 

fin

 

 

(17)

Procesando  una  matriz.

 

inicio    

 Definir  cankilas,  cantcolumnas,  i,j,suma  como  Enteros    Definir    promedio  como  Real  

               leer  can9ilas,  cantcolumnas    Definir  M  como  Entero  

dimensionar  M[  can9ilas,  cantcolumnas]    

               Para  i  ß  1  hasta  can9ilas  Hacer  

                       Para  jß  1  hasta  cantcolumnas  Hacer  

                               leer  M[i,  j]  

                       fin-­‐para  

 fin-­‐para    

               Para  iß  1  hasta  can9ilas  Hacer  

                       Para  jß  1  hasta  cantcolumnas  Hacer  

                               sumaß  suma  +  M[i,  j]  

                       fin-­‐para  

fin-­‐para    

               promedio  ß  suma  /  (can9ilas  *  cantcolumnas)      Escribir  ‘El  promedio  es:  ‘,  promedio  

(18)

Procesando  una  matriz  en  Matlab

 

 

FuncKon  PromMat  

 can9ilas=                        input(‘Ingrese  la  canKdad  de  filas’);      cantcolumnas=input(‘Ingrese  la  canKdad  de  columnas’);  

M=zeros(can9ilas,cantcolumnas);      suma=0;  

             for  i  =  1:can9ilas,  

                       for  j=1:cantcolumnas,  

                               M(i,  j)=rand();  

                       end  

 end  

             for  i  =  1:can9ilas,  

                       for  j=1:cantcolumnas,  

                               suma=suma  +  M(i,  j);  

                       end  

 end    

               promedio  =suma  /  (can9ilas  *  cantcolumnas)    

             for  i  =  1:can9ilas,  

                       for  j=1:cantcolumnas,  

                               disp(M(i,  j));  

                       end  

 end    

Referencias

Documento similar

La matriz D se forma poniendo en la diagonal de una matriz los valores propios de A, en el siguiente orden: en la i-´esima columna de D se pone el valor propio correspondiente al

Determine el valor de (m+n), de los vectores que se muetran en la figura cumple. Usando el sistema de ejes x, y, z encuentre el vector unitario del vector B. Hallar el módulo de

2 Iteration of Partially Specified Target Matrices: Application to the Bi-Factor Case 39 3 Improving Bi-factor Exploratory Modeling 55 4 Searching for G: A New Evaluation of

Él prepara arreglos florales de margaritas y tulipanes para venderlos este fin de semana.. Escribe en la tabla la cantidad de margaritas que necesita para elaborar los

Aparte de los posibles problemas técnicos que presenta un análisis de correlaciones (RePass 1976), lo que en ningún momento se plantea Converse es que la ausencia de

El resultado del producto vectorial de dos vectores es otro vector perpendicular a estos vectores, cuya dirección y sentido se obtienen mediante la regla de la mano de derecha. =

La me esta m de doc través la bús para compe o virtu Real D trabajo Durant confer vez se práctic por el asimila person Para e de una realiza alumno ponien su trab.

Se utiliz´o la clase Young, que permite crear tablas de Young y tiene como atributos la forma correspondiente a la tabla almacenada en un Vector y un vector de vectores para