Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(•...

18
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.)

Transcript of Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(•...

Page 1: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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.)  

   

Page 2: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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.  

Page 3: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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.  

Page 4: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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]  

Page 5: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

– 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  

Page 6: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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  – subrango  

Page 7: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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.  

Page 8: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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    

Page 9: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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  

Page 10: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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  

Page 11: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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);    

Page 12: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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.    

Page 13: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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]  

Page 14: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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  

 

Page 15: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

 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  

Page 16: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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    

Page 17: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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  

Fin  

Page 18: Vectores(y(Matrices( - fio.unicen.edu.ar · VECTORES(Arreglos(unidimensionales(• Ejemplo:Senecesitanalmacenarlas calificacionesqueobtuvieron50,(alumnos.(Parahacerlo(se(necesitareservar(50

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      disp(‘El  Promedio  es:  ‘);  Disp(promedio);