View
271
Download
0
Category
Preview:
Citation preview
7/23/2019 Arreglos Bidimensionales sle
1/20
FUNDAMENTOS DE ALGORITMOS
INF 1141
UNIDAD 5: ARREGLOS
BIDIMENSIONALES
l.griffiths.m@gmail.com
2 Semestre 2015
Fundamentos de Algoritmos
mailto:l.griffiths.m@gmail.commailto:l.griffiths.m@gmail.com7/23/2019 Arreglos Bidimensionales sle
2/20
Qu aprenderemos hoy?
Fundamentos de Algoritmos
1. Qu es un arreglo bidimensional?
2. Cmo se declaran los arreglos bidimensionales en SL?
3. Cmo se indexan los elementos en un arreglo bidimensional?
4. Cules son las principales operaciones sobre arreglos bidimensionales ycmo se programan?
7/23/2019 Arreglos Bidimensionales sle
3/20
Qu es un Arreglo Bidimensional?
Fundamentos de Algoritmos
ARREGLOBIDIMENSIONAL (matriz)
Vector de vectoresTiene 2 dimensiones : FILA
y COLUMNA
Conjunto finito deelementos homogneos
Se almacenan enposiciones consecutivas
de memoria
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
Columnas
Filas
7/23/2019 Arreglos Bidimensionales sle
4/20
Cmo se declara un
Arreglo Bidimensional en SL?
Fundamentos de Algoritmos
La notacin algortmica que utilizaremos para declarar una variable de tipomatriz en SL es la siguiente:
: matriz [DimFila, DimColumna]
EJEMPLOS
A: matriz[3,5] cadenaB: matriz[3,3] numerico
C: matriz[10,10] logico
7/23/2019 Arreglos Bidimensionales sle
5/20
Tamao de una Matriz
Fundamentos de Algoritmos
Tamao de unamatriz
Tamao fsico filanfTamao fsico columnanc
Tamao lgico filamfTamao lgico columnamc
mf
7/23/2019 Arreglos Bidimensionales sle
6/20
Indexacin de
Arreglos Bidimensionales en SL
Fundamentos de Algoritmos
Mecanismo mediante el cual se puede acceder al elemento almacenado encada posicin de la matriz. En SL la indexacin es en base 1 .
Para acceder a cada elemento de la matriz se necesitan 2 ndices : un ndiceFILA y un ndice COLUMNA
1 columnas
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
2 3 4 5
1
23
4
filas
7/23/2019 Arreglos Bidimensionales sle
7/20
Operaciones sobre Arreglos Bidimensionales
Fundamentos de Algoritmos
OPERACIONES BSICAS
1. Asignar un valor a una posicin (fila,columna) de la matriz.2. Leer un valor y almacenarlo en una posicin (fila,columna) de la matriz3. Escribir el contenido de una posicin (fila,columna) de la matriz
OTRAS
Recorrido, Insercin, eliminacin, bsqueda, ordenamiento.
7/23/2019 Arreglos Bidimensionales sle
8/20
Asignar un valor a una posicin (fila , columna)
de la matriz
Fundamentos de Algoritmos
[indice_fila, indice_columna]=Valor
EJEMPLOS
A [2 , 4]=5
B[i , j]=10
7/23/2019 Arreglos Bidimensionales sle
9/20
Leer un valor y almacenarlo en una posicin
(fila , columna) de la matriz
Fundamentos de Algoritmos
leer ( [indice_fila, indice_columna])
EJEMPLOS
leer (numero [2, 4])
leer(A[i,j])
7/23/2019 Arreglos Bidimensionales sle
10/20
Escribir el contenido de una posicin
(fila , columna) de la matriz
Fundamentos de Algoritmos
imprimir ( [indice_fila, indice_columna])
EJEMPLOS
imprimir(la cantidad es: , A[i, j])
imprimir(la cantidad es: , B[1,1])
7/23/2019 Arreglos Bidimensionales sle
11/20
Matrices Recorrido para Poblar
Fundamentos de Algoritmos
desde i = 1 hasta DimFila{
imprimir (\ndatos fila ,i,\n)desde j = 1 hasta DimCol{
imprimir(\ndato posicin ,i, ,j, = )
leer (nota [i, j])}
}
Poblar por filas
Poblar por columnas
desde i = 1 hasta DimCol{
imprimir (\ndatos columna ,i,\n)
desde j = 1 hasta DimFila{
imprimir (\ndato posicin ,j,,i, = )leer (nota [j, i])
}}
7/23/2019 Arreglos Bidimensionales sle
12/20
EJERCICIO # 1
Fundamentos de Algoritmos
1. Escriba un programa que permita poblar una matriz de enteros de orden3x3, la muestre por pantalla y sume sus elementos. Use subrutinas.
programa ej1matvar MATRIZ:matriz [3,3] numerico
suma:numericoiniciocls()PoblarMatriz(MATRIZ,3,3)MostrarMatriz(MATRIZ,3,3)suma=SumarElementos (MATRIZ,3,3)
imprimir("La suma de los elementos de la matriz es ",suma,"\n")fin
7/23/2019 Arreglos Bidimensionales sle
13/20
Fundamentos de Algoritmos
sub PoblarMatriz(refM:matriz [3,3] numerico;DimFila,DimCol:numerico)var i,j:numericoinicio
desde i=1 hasta DimFila{
desde j=1 hasta DimCol{imprimir("Ingrese elemento matriz posicin ",i,",",j," : ")leer(M[i,j])
}}
fin
7/23/2019 Arreglos Bidimensionales sle
14/20
Fundamentos de Algoritmos
sub MostrarMatriz(M:matriz [3,3] numerico ; DimFila,DimCol:numerico)var i,j:numericoinicio
imprimir("MATRIZ\n")desde i=1 hasta DimFila
{ desde j=1 hasta DimCol{
imprimir(M[i,j]," ")}imprimir("\n")
}fin
7/23/2019 Arreglos Bidimensionales sle
15/20
Fundamentos de Algoritmos
sub SumarElementos(M:matriz[3,3] numerico;DimFila,DimCol:numerico) retorna numericovar i,j,suma:numericoinicio
suma=0desde i=1 hasta DimFila{
desde j=1 hasta DimCol{
suma=suma+M[i,j]}
}retorna suma
fin
7/23/2019 Arreglos Bidimensionales sle
16/20
EJERCICIO # 2
Fundamentos de Algoritmos
2. Escriba un programa que permita poblar una matriz de enteros de orden5x5, la muestre por pantalla y sume los elementos de su diagonal principal.Use subrutinas.
programa ej2matvar MATRIZ:matriz [5,5] numerico
SumaDiag:numericoiniciocls()PoblarMatriz(MATRIZ,5,5)MostrarMatriz(MATRIZ,5,5)SumaDiag=SumaElementosDiagonalMatriz(MATRIZ,5,5)
imprimir("La suma de los elementos de la diagonal de la matriz es ",SumaDiag,"\n")
fin
7/23/2019 Arreglos Bidimensionales sle
17/20
Fundamentos de Algoritmos
sub PoblarMatriz(refM:matriz [5,5] numerico;DimFila,DimCol:numerico)var i,j:numericoinicio
desde i=1 hasta DimFila{
desde j=1 hasta DimCol{imprimir("Ingrese elemento matriz posicin ",i,",",j," : ")leer(M[i,j])
}}
fin
7/23/2019 Arreglos Bidimensionales sle
18/20
Fundamentos de Algoritmos
sub MostrarMatriz(M:matriz [5,5] numerico ; DimFila,DimCol:numerico)var i,j:numericoinicio
imprimir("MATRIZ\n")desde i=1 hasta DimFila{
desde j=1 hasta DimCol{
imprimir(M[i,j]," ")}imprimir("\n")
}fin
7/23/2019 Arreglos Bidimensionales sle
19/20
Fundamentos de Algoritmos
sub SumaElementosDiagonalMatriz(M:matriz[5,5]numerico;DimFila,DimCol:numerico) retorna numericovar i,j,suma:numericoinicio
suma=0desde i=1 hasta DimFila{
desde j=1 hasta DimCol{
si (i==j){
suma=suma+M[i,j]}
}}retorna suma
fin
sub SumaElementosDiagonalMatriz(M:matriz[5,5]numerico;DimFila,DimCol:numerico) retorna numericovar i,j,suma:numericoinicio
suma=0
desde i=1 hasta DimFila{suma=suma+M[i,i]
}retorna suma
fin
7/23/2019 Arreglos Bidimensionales sle
20/20
EJERCICIOS PROPUESTOS
Fundamentos de Algoritmos
3. Escriba un programa que permita poblar una matriz de enteros de orden5x5, la muestre por pantalla y la rote 90 hacia la derecha.
4. Escriba un programa que permita poblar una matriz de enteros de orden5x5, la muestre por pantalla y la rote 90 hacia la izquierda.
5. Escriba un programa que permita poblar una matriz de enteros de orden5x5, la muestre por pantalla y la rote sobre la diagonal principal.
Recommended