9 unidad 3 nueva.pdf

71
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

Upload: tomas-garcia

Post on 03-Dec-2015

221 views

Category:

Documents


0 download

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

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