Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos...
-
Upload
novio-ledo -
Category
Documents
-
view
223 -
download
0
Transcript of Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos...
![Page 1: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/1.jpg)
Programación I - 2011Programación I - 2011
Arreglos II- Matrices
![Page 2: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/2.jpg)
Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables índice, que da la posición en la estructura (fila,columna) para acceder al componente.
MatrizMatriz
Un tipo de dato Matriz es una colección ordenada e indexada de elementos.
![Page 3: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/3.jpg)
MatrizMatrizEstructura homogénea: los datos que almacena son del mismo tipo.
Estructura estática: su tamaño no varía al agregar o sacar elementos de la misma.
Estructura indizada: permite recuperar cualquier elemento del arreglo indicando su posición (fila,columna).
![Page 4: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/4.jpg)
DeclaraciónDeclaración
Program uno; type ventas= array[rango,rango] of tipo;
integercharbooleanenumerativo
integercharbooleanenumerativorealregistros
Ejemplo:type ventas= array [1..12,1..31] of integer;
![Page 5: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/5.jpg)
OperacionesOperaciones
m1:= m2;
Comparar dos matrices de manera directa
If (m1 = m2) then … NO!
Lectura de una matriz read(m1); NO!
Escritura de una matriz write(m1); NO!
Asignar una matriz a otra
![Page 6: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/6.jpg)
EjercicioEjercicio
Dada una Matriz A de N x M de números enteros (N y M deben ser constantes definidas en el programa), se pide realizar: a)Realizar un módulo que reciba la matriz A, un valor V y que retorne dicha matriz en la que se ha eliminado la V-ésima fila.
a)Realizar un módulo que reciba la matriz A, un vector B, un valor V y que inserte el vector B como columna V-ésima de la matriz A.
![Page 7: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/7.jpg)
Entendiendo el enunciadoEntendiendo el enunciadoInciso a)a)Realizar un módulo que reciba la matriz A, un valor V y que retorne dicha matriz en la que se ha eliminado la V-ésima fila.
El módulo recibe una matriz, con lo cual deberá recibir la dimensión lógica de filas ó columnas.
Asumimos que la matriz que hemos de tratar está cargada con “filas completas”, con lo cual sólo recibiremos la matriz y la dimensión lógica de filas (pues las columnas por filas estarán completas).
X x x x x x x
X x x x x x x
X x x x x x x
![Page 8: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/8.jpg)
Entendiendo el enunciadoEntendiendo el enunciadoTambién recibirá un valor V como dato, para eliminar la fila V de la matriz.
Sólo deberíamos controlar la dimensión lógica por filas. Para tal fin utilizaremos una variable:
VAR dimLogFila: Integer;
A B C D E F G
H I J K L M N
Ñ O P Q R S T
U V W X Y Z @
A B C D E F G
H I J K L M N
U V W X Y Z @
dimLogFila = 4 dimLogFila = 3
V
![Page 9: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/9.jpg)
Entendiendo el enunciadoEntendiendo el enunciado
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Inciso b) Realizar un módulo que reciba la matriz A, un vector B, un valor V y que inserte el vector B como columna V-ésima de la matriz A.
Se debe implementar un módulo que reciba una matriz, la dimensión lógica de columnas, un vector B, y un valor N que representa el número de fila en donde debemos insertar dicho vector. Debemos comprender que la matriz que hemos de tratar está cargada con “columnas completas”.
![Page 10: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/10.jpg)
Entendiendo el enunciadoEntendiendo el enunciado
También recibirá un valor V y un vector B, para insertar B en la posición V.
Sólo deberíamos controlar la dimensión lógica por columnas.Para tal fin utilizaremos una variable:
VAR dimLogColumna: Integer;
A F K
B G L
C H M
D I N
E J Ñ
A F O K
B G P L
C H Q M
D I R N
E J S Ñ
dimLogColumna = 3 dimLogColumna = 4
VO
P
Q
R
S
B V
![Page 11: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/11.jpg)
Resolviendo el ejercicioResolviendo el ejercicio
Program ejercicio;const N = 100; M = 100;type
matriz = array [1..N, 1..M] of integer;vector = array [1..N] of Integer;
varA: matriz;
B: vector;dimLogFila, dimLogColumna: integer;
![Page 12: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/12.jpg)
procedure eliminar (var A: matriz; var dimLogFila: integer; V: integer);var
i,j: integer;begin if ( V > 0 ) and ( V <= dimLogFila) then begin if ( V < dimLogFila ) then for i:= V to (dimLogFila - 1) do for j:= 1 to M do A[i,j]:= A[i+1,j]; dimLogFila:= dimLogFila - 1; end;end;
Módulo para eliminar filaMódulo para eliminar fila
Solución inciso a)
![Page 13: Programación I - 2011 Arreglos II- Matrices. Un arreglo (matriz) es una estructura de datos compuesta que permite acceder a cada componente por dos variables.](https://reader035.fdocuments.net/reader035/viewer/2022070105/5665b4631a28abb57c911d39/html5/thumbnails/13.jpg)
procedure insertar (var A: matriz; var dimLogColumna: integer; B: vector; dimLogVector: integer; V: integer);var
i, j, m : integer;begin
if ( dimLogColumna < M ) and ( V > 0 ) and ( V <= DimLogColumna ) and (dimLogVector = N) then begin dimLogColumna := dimLogColumna + 1; for i:= (dimLogColumna - 1) downto V do for j:= 1 to dimLogVector do A[j,i + 1]:= A[j, i]; for m:= 1 to DimLogVector do A[m, V] := B[m]; end;end;
Módulo para insertar columnaMódulo para insertar columna
Solución inciso b)