9 unidad 3 nueva.pdf
TRANSCRIPT
Fundamentos de Programación INC102
Escuela de Ingeniería Civil en Informática
Universidad de Valparaíso, Chile
http://www.decom-uv.cl www.uv.cl
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Contenidos
Contenidos o Introducción o Definición o Arreglos Unidimensionales o Arreglos Bidimensionales o Arreglos Multidimensionales o Operaciones con Arreglos o Algoritmos
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Introducción o En algunos programas el conjunto de datos se debe utilizar
varias veces durante su ejecución, por lo que sería impráctico
tener que ingresar cada vez que se necesiten.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Introducción
o ¿Que pasa si luego de mostrar
NOMINA necesitamos utilizar cada dato (SUE)?
o ¿Se deben ingresar nuevamente?
INICIO
FIN
NOMINA ß 0
NOMINA
SUE
I <= 5
I ß1
NOMINAß NOMINA + SUE
I ß I + 1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Introducción o Considere el siguiente ejemplo: Se esta realizando un programa
que esta sacando los promedios de los alumnos de Fundamentos de Programación, tendríamos las siguientes variables: q Para alumno 1: alum1_nota1, alum1_nota2, alum1_nota3 q Para alumno 2: alum1_nota1, alum1_nota2, alum1_nota3
q Para alumno 3: alum1_nota1, alum1_nota2, alum1_nota3
q … q Para alumno 62: alum1_nota1, alum1_nota2, alum1_nota3
o Para los 62 alumnos tendríamos 186 variables o Resulta engorroso tener que manejar tantas variables
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Introducción o Para los dos problemas presentados, se puede solucionar con la
utilización de Arreglos que es un tipo de datos estructurado.
o Una estructura de datos es una colección de datos organizados de
forma particular.
o Recordatorio Capítulo 3:
q Tipo de dato Estructurados: el idenBficador de una variable estructurada referencia a un grupo de casillas de memoria
q Representa varios componentes que pueden ser un dato simple o
estructurado
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Un arreglo se define como una colección finita, homogénea y
ordenada de elementos:
q Finita: se debe determinar cual será el número máximo de elementos
que podrá formar parte del arreglo
q Homogénea: Todos los datos del arreglos son del mismo tipo
q Ordenada: Se puede determinar cual es el primer, segundo, …, y n-
esimo elemento.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Gráficamente
o Se puede acceder a cualquier dato que este en este arrelgo
… …
1er 2do N-esimo dato dato dato
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o En los arreglos se distinguen:
q Componentes: Valores que se almacenan en cada casilla
q Índices: Especifica cuantos componentes tendrá cada arreglo, lo que
permitirá acceder a cada valor en forma individual que se encuentre
en el arreglo
o Para referenciar a los elementos del arreglo se utiliza:
q El nombre del arreglo
q El índice del arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones
dato_1 dato_2 dato_3 … … dato_n-‐1 Dato_n
1 2 3 n-1 n
Índices
Componentes
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Declaración de Arreglos:
Identificador_Arreglo = ARREGLO [ lim_inferior … lim_superior ] DE tipo
q Donde:
• Identificador_Arreglo : Nombre del arreglo
• lim_inferior : Índice de inicio del arreglo
• lim_superior : Índice de termino del arreglo
• Tipo : Tipo de datos que almacenará el arreglo
q El número total de elementos (NTE) puede calcularse utilizando:
• NTE = lim_superior – lim_inferior +1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Con tipo se declara el tipo de datos para TODOS los elementos del
arreglo
o Se utilizan ‘[’ y ‘]’ para indicar el índice de un arreglo. Entre los
corchetes se debe escribir un valor ordinal.
o El tipo de índice puede ser de cualquier tipo carácter, entero
enumerado.
o El tipo de los componentes puede ser: entero, real, cadena de
caracteres …
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Ejemplo 1:
q Sea: A un arreglo de 20 elementos enteros con índices enteros
A = ARREGLO[ 1…20] DE enteros
o NTE = (20-1 +1) = 20
… …
1 2 3 19 20
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Ejemplo 1
q A[1]: Hace referencia al elemento de la posición 1
q A[2]: Hace referencia al elemento de la posición 2
q A[3]: Hace referencia al elemento de la posición 3
q …
q A[19]: Hace referencia al elemento de la posición 19
q A[20]: Hace referencia al elemento de la posición 20
… …
1 2 3 19 20
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Ejemplo 2:
q Sea: A un arreglo de 70 enteros con índices de enteros Limite Inferior : -13
Limite Superior : 56
o NTE = (56 –(-13) +1) = 70
o A[-13] hace referencia al primer elemento
o A[-12] hace referencia al segundo elemento
o …
o A[56] hace referencia al último elemento
… …
-13 -12 -11 55 56
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Arreglos y Definiciones o Ejemplo 3:
o BOOL = ARREGLO [ ‘a’… ‘z’ ] DE BOOLEANOS
o Donde : q NTE = (ord(´z´)-ord(´a´)+1)= 122-97+1=26
(ord() entrega el valor nominal en ASCII del carácter)
q Cada elemento del arreglo podrá ser verdadero o falso y se puede acceder mediante un índice que va
desde la ´a´ a la ´z´
q Entonces:
ü BOOL[ ‘a’ ] : Hace referencia al elemento de la posición 1
ü BOOL[ ‘b’ ] : Hace referencia al elemento de la posición 2
ü BOOL[ ‘c’ ] : Hace referencia al elemento de la posición 3
ü …
ü BOOL[ ‘y’ ] : Hace referencia al elemento de la posición 19
ü BOOL[ ‘z’ ] : Hace referencia al elemento de la posición 20
… …
‘a’ ‘b’ ‘c’ ‘y’ ‘z’
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Lectura
q Lectura consiste en leer y asignar un valor a cada uno de sus
elementos.
q Ejemplo: Arreglo tamaño de 20 elementos
A[i]
i <= 20
i ß1
i ß i + 1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Lectura
q De forma consecutiva
q Leer A[ 1 ]
q Leer A[ 2 ]
q …
q Con un ciclo
A[i]
i <= 20
i ß1
i ß i + 1
… Hacer i ß1 RepeBr con i desde 1 a 20
Leer A[i] Hacer i ß i +1
{Fin ciclo} …
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Lectura
q Para cada elemento leído se asigna el correspondiente componente
según la posición indicada en i
q Al finalizar el ciclo se tendrá asignado un valor a componente del
arreglo
A[i]
i <= 20
i ß1
i ß i + 1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Escritura
q Permite escribir el valor de cada uno de los componentes
A[i]
i <= N
i ß1
i ß i + 1
… Leer N Hacer i ß 1 RepeBr con i desde 1 hasta N
Escribir A[i] Hacer i ß i +1
{fin del ciclo} …
N
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Asignación
q No es posible asignar un valor a todo el arreglo, sino que se hacer de
forma individual para cada componente.
q Ejemplo:
... A[1] ß 120 A[15] ß A[4] + 3
...
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Asignación
… Hacer i ß 1 RepeBr con i desde 1 hasta 20 Hacer A[i] ß i*2 Hacer i ß i+1 {Fin repeBr}
…
i <= 20
i ß1
A [i] ß i *2
i ß i + 1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Asignación
i <= 20
i ß1
A [i] ß i *2
i ß i + 1
i A[i]
… … 4 6 38 40
1 2
2 4
3 6
… ….
1 2 3 19 20
19
20
38
40
2
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Asignación
q Se puede realizar la copia completa de un arreglo a otro
q B = ARREGLO[ 1…20] DE enteros
q B ß A
q Es equivalente a realizar la operación elemento por elemento :
Hacer i ß 1 RepeBr con i desde 1 a 20 Hacer B[i] ß A[i] Hacer i ß i+1 {Fin del ciclo}
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización
q Insertar
q Eliminar
q Modificar
q Para:
• Arreglos desordenados
• Arreglos ordenados
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos desordenados
q Inserción
§ Primero se debe verificar que en el arreglo exista espacio suficiente.
N < 20
NßN+1 A[N]ß Y
“Espacio insuficiente para
insertar el elemento”
Y
…
1 2 N N+1 19 20
N: Var de tipo entero, almacena el número actual de elementos en el arreglo
Y: Var de tipo entero, representa valor que se insertará
A: arreglo unidimensional con capacidad máxima de 20 elementos
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos desordenados
q Eliminar
§ Para eliminar un elemento x de un arreglo desordenado se debe:
ü Verificar que el arreglo no este vacío
ü Y que el valor que se desee eliminar se encuentre en el arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos desordenados
q Eliminar
§ N : Variable de tipo entero, almacena el número actual de elementos del arreglo
§ X : variable de tipo entero. Representa el valor que se va a eliminar.
§ I : Variable de tipo entero. Se utiliza como variable de control del ciclo externo y como
índice del arreglo
§ Band : variable de tipo booleano. Se inicializa en falso. Cambia su valor a verdadero si se
encuentra el valor a eliminar en cuyo caso se interrumpe el ciclo.
§ K : Variable de tipo entero. Se utiliza como variable de control del ciclo interno y como
índice del arreglo A
§ A : Arreglo unidimensional de tipo entero.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
iß1 y band = falso
i <=N y band=falso
N >= 1
El arreglo A esta vacio
x
A[ i ]=x
iß i +1
N ß N -1 Band ß verdadero
Band=falso
El elem, x no esta en el arreglo
N
K ß 1
K <=N
A[k] ßA[k+1] K ß k+1
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos
desordenados
q Modificación
§ Cambiar un elemento x por un elemento y
§ Se debe verificar que el arreglo no este
vacío y que x se encuentre en el arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos desordenados
q Modificación
§ N : Variable de tipo entero, almacena el número actual de elementos del arreglo
§ X : variable de tipo entero. Representa el valor que se va a modificar. § I : Variable de tipo entero. Se utiliza como variable de control del ciclo externo y como
índice del arreglo
§ Band : variable de tipo booleano. Se inicializa en falso. Cambia su valor a verdadero si se
encuentra el valor a eliminar en cuyo caso se interrumpe el ciclo.
§ K : Variable de tipo entero. Se utiliza como variable de control del ciclo interno y como
índice del arreglo A
§ A : Arreglo unidimensional de tipo entero.
§ Y : Variable de tipo entero. Es el elemento que remplazará a X.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
iß1 y band = falso
i <=N y band=falso
N >= 1
El arreglo A esta vacio
x
A[ i ]=x
iß i +1 A[i] ß y Band ß verdadero
Band=falso
El elem, x no esta en el arreglo
y
N
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
q Eliminar
q Modificar
q Se debe cumplir que:
• A[1] ≤ A[2] ≤ A[3] ≤ … ≤A[n-1] ≤ A[n]
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
• Se debe verificar que exista espacio
• Se debe encontrar la posición en la que debería estar el nuevo elemento,
(no se puede alterar el orden)
• Se recorre el arreglo hasta que se encuentra un elemento mayor al que
se quiere insertar
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
• i : entero, se utiliza como variable de control de los ciclos, en el modulo
BUSCA, indica donde se encuentra o debería estar el elemento X. También se
utiliza como índices de arreglos
• X : Variable de tipo entero: representa el elemento a insertar (si es que no se
encuentra en el arreglo)
• A : Arreglo unidimensional
• POS : Entero, almacena la posición en donde se encuentra o debería
encontrar el elemento
• N : Variable de tipo entero, almacena el número actual de elementos en el
arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
N < 100
No hay espacio para insertar
Inserta
Busca
Fin
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
i<=N y A[i]<X
Busca
Fin modulo busca
x
iß1
ißi+ 1 i > N o A[i]>x
Pos ß -‐i Pos ß i
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
POS > 0
Inserta
Fin modulo Inserta
N ß N+1 POS ß POS * (-‐1)
i ß i -‐ 1
A[i] ß A[i-‐1]
El elemento ya existe i ß N
i >= (POS + 1)
A[POS]ß x
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar Inserta_ordenado El programa, si es posible, inserta un elemento x en un arreglo ordenado A de N
elementos N, i , X y POS variables de Bpo entero, A arreglo unidimensional de Bpo entero.
1. Si N < 100 Entonces Leer X Hacer i ß1
1. 1 Mientras (i <= N) Y (A[i] < X ) repeBr hacer i ß i +1
1.2.{Fin del ciclo paso 1.1} 1.3. Si (i > N) o (A[i ] > X) entonces
hacer POS ß -‐1 Sino
hacer POS ß i 1.4. {Fin del condicional del paso 1.3} 1.5. Si POS > 0 entonces
Escribir “El elemento ya existe” sino
Hacer N ß N+1, POS ß POS*(-‐1) e i ß N 1.5.1. repeBr con i desde N hasta (POS +1)
hacer A[i] ß A[i-‐1] e i ß i -‐1 1.5.2. {fin del ciclo del paso 1.5.1}
hacer A[POS] ß X 1.6. {fin del condicional 1.5} Sino Escribir “No hay espacio para nuevas inserciones” {Fin del condicional del paso 1}
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Eliminar
• Se debe verificar que el arreglo no este vacío
• Si se cumple se debe buscar la posición del elemento a
eliminar
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Eliminar
• i : entero, se utiliza como variable de control de los ciclos, en el modulo
BUSCA, indica donde se encuentra o debería estar el elemento X. También se
utiliza como índices de arreglos
• X : Variable de tipo entero: representa el elemento a insertar (si es que no se
encuentra en el arreglo)
• A : Arreglo unidimensional. Capacidad máxima 100 elementos
• POS : Entero, almacena la posición en donde se encuentra o debería
encontrar el elemento
• N : Variable de tipo entero, almacena el número actual de elementos en el
arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Eliminar
N > 0
Arreglo esta vacio
Elimina
Busca
Fin
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
i<=N y A[i]<X
Busca
Fin modulo busca
x
iß1
ißi+ 1 i > N o A[i]>x
Pos ß -‐i Pos ß i
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Insertar
POS < = 0
Inserta
Fin modulo elimina
N ß N -‐ 1
i ß i + 1
A[i] ß A[i+1]
El elemento na existe i ß POS
i < = N
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Modificar
• Se procede de forma similar a la eliminación de un elemento en un
arreglo ordenado. Se diferencian en que al modificar un elemento X por
un elemento Y se debe verificar que se mantenga el orden.
• Si el orden se altera, de debe ordenar el arreglo o eliminar y luego
insertar.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Actualización en arreglos ordenados
q Modificar
• Ejercicio:
• Desarrollar un DFD y pseudocódigo que permita modificar un arreglo
ordenado
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Arreglos multidimensionales
q El número de dimensiones que se debe utilizar en un arreglo
depende :
• Del problema que se deba resolver
• Las características del lenguaje de programación
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Arreglos bidimensionales
q Ejemplo:
• Tabla contiene:
• Lluvias en milímetros
• Correspondientes a las 12 meses del año anterior de cuatro ciudades
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Arreglos bidimensionales
q Ejemplo: Mes/lluvia Valparaíso SanBago Quilpue Temuco
Enero 50 45 60 58
Febrero 7 3 15 22
Marzo 12 10 8 17
Abril 15 5 20 35
Mayo 22 30 15 22
Junio 50 90 60 100
Julio 85 130 20 88
Agosto 70 75 88 94
SepBembre 65 49 53 105
Octubre 28 35 29 38
Noviembre 35 15 22 4
Diciembre 17 8 14 0
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Arreglos bidimensionales
q Ejemplo:
• La tabla se puede leer de la siguiente manera:
• Dado un mes, se conocen las lluvias caídas en cada uno de las ciudades.
• Y dado una ciudad, se conocen las lluvias caídas en forma mensual.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
• Usando arreglos se puede representar :
• Creando 12 arreglos de tamaño 4 cada uno.
• Cada arreglo almacena la información de un mes.
Enero
1 2 3 4
Febrero
1 2 3 4
Diciembre
1 2 3 4
…
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
• Otra representación podría ser :
• Utilizando 4 arreglos de 12 elementos
• Cada arreglo almacena la información de una ciudad durante un año
Valparaíso
1 2 3 4 5 6 7 8 9 10 11 12 Santiago
1 2 3 4 5 6 7 8 9 10 11 12
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
• Otra representación podría ser (continuación):
Quilpué
1 2 3 4 5 6 7 8 9 10 11 12 Temuco
1 2 3 4 5 6 7 8 9 10 11 12
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q En el ejemplo ninguna de las dos representaciones permiten manejar
los datos considerando los meses y las ciudades como un todo
q Por lo tanto, para la tabla descrita ninguna de las estructuras
establecidas es optima.
q La estructura que permite la representación es un Arreglo
Bidimensional
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q El arreglo A(MxN) tiene M filas y N columnas.
q Un elemento A[i,j] se encuentra en la fila i, y columna j
q Interiormente se reservan MxN posiciones consecutivas para
almacenar todos los elementos de arreglo.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
1 2 j … N
1 …
2
i
… …
M
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Declaración de arreglos Bidimensionales
q Se debe declarar :
o Numero de filas
o Numero de columnas
o Tipo de datos
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Declaración de arreglos Bidimensionales
Id_arreglo = ARREGLO[ lim_infFila … lim_supFila , lim_infCol … lim_supCol ] de TIPO
o lim_infFila … lim_supFila declara el tipo de índice de las filas y cuantas filas
tendrá en arreglo
o lim_infCol … lim_supCol declara el tipo de índice de las columnas y cuantas
columnas tendrá en arreglo
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q El número de elementos del arreglo es:
o NTE = ( limsupFila – liminfFila + 1) * ( limsupCol – liminfCol + 1)
o Los arreglos pueden ser de cualquier tipo de dato.
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
o C=ARREGLO[1…4,1…5] de ENTEROS
o NTE = ( 4 – 1 + 1 ) * ( 5 – 1 + 1 ) = 20
1 2 3 4 5
1
2
3
4
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
o Para acceder a C:
Ø C [ i , j ]
§ 1 ≤ i ≤ 4
§ 1 ≤ j ≤ 5
1 2 3 4 5
1
2
3
4
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
o Para acceder a C:
Ø Con : C [2,3] accedemos al elemento que esta en la fila 2 y columna 3
Ø Con : C[4,5] accedemos al elemento que esta en la fila 4 y columna 5
1 2 3 4 5
1
2
3
4
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos o Arreglos bidimensionales
q Ejemplo:
o Sea cadena un arreglo bidimensional de tipo caracteres con índices para las filas
de tipo carácter e índice de tipo entero para las columnas
o cadena=ARREGLO[‘a’…`z’,-5…7] de Caracteres
o NTE = (ord(‘z’) - ord(‘a’) + 1) * (7 - ( - 5 ) + 1)
= (122 – 97 + 1) * ( 7 + 5 + 1)
= (26) * (13)
= 338
o Cada elemento del arreglo debe ser de tipo carácter
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Ejemplo:
o cadena[‘b’,-3] = se accede al elemento de la segunda fila y de la tercera
columna
o cadena[‘z’,7] = elemento de la última fila y última columna
-‐5 -‐4 -‐3 … …. … 6 7
‘a’
‘b’
‘c’
…
…
‘y’
‘z’
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Operaciones con Arreglos Bidimensionales:
o Lectura
o Escritura
o Asignación
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Operaciones con Arreglos Bidimensionales
o Lectura
§ Se asigna valor a cada uno de los componentes
§ Los elementos se deben referenciar utilizando dos índices.
§ Normalmente, se utilizan dos ciclos para lograr la lectura de elementos
consecutivos
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Lectura
o En base a dos índices i , j
se avanza por el arreglo
i<=15
iß1
jß1
Inicio
j<=5
jßj+1
ißi+1
fin
MATRIZ[i,j]
Se leen los datos para el arreglo matriz
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Lectura
Programa_lectura {matriz=ARREGLO[1…15,1…5] de enteros} Hacer 1 ß 1 RepeBr con i desde 1 hasta 15 Hacer j ß 1 RepeBr con j desde 1 hasta 5 leer MATRIZ[i, j] hacer j ß j+1 {Fin del ciclo interno} Hacer i ß i+1 {fin ciclo externo} {Fin programa}
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Operaciones con Arreglos Bidimensionales
o Lectura
§ Por ejemplo si se quisiera
ingresar un numero de forma
consecutiva desde el 1
fila Columna Valor a insertar
i j
1 1 1
…
4 4
5 5
2 1 6
..
5 10
….
15 1 71
2 72
…
5 75
1 2 3 4 5
1 1 2 3 4 5
2 6 7 8 9 10
3 11 12 13 14 15
4 16 17 18 19 20
…
14 66 67 68 69 70
15 71 72 73 74 75
Fundamentos de Programación – Ingeniería Civil Informática www.decom-uv.cl
Unidad 3 - Aplicaciones
Operaciones con Arreglos
o Arreglos bidimensionales
q Operaciones con Arreglos Bidimensionales
o Escritura
§ Se debe realizar elemento por elemento
§ Para escribir todos los elementos del arreglo se debe recorrer el arreglo
utilizando los dos índices