Arreglos Bidimensionales sle

download Arreglos Bidimensionales sle

of 20

Transcript of Arreglos Bidimensionales sle

  • 7/23/2019 Arreglos Bidimensionales sle

    1/20

    FUNDAMENTOS DE ALGORITMOS

    INF 1141

    UNIDAD 5: ARREGLOS

    BIDIMENSIONALES

    [email protected]

    2 Semestre 2015

    Fundamentos de Algoritmos

    mailto:[email protected]:[email protected]
  • 7/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.