Está en la página 1de 24

UNIVERSIDAD PRIVADA DE TACNA

Facultad de Ingeniera

CURSO
TCNICAS DE PROGRAMACIN
EL-255
SEGUNDO CICLO

SEMANA 09

ESTRUCTURA DE DATOS:
ARREGLOS

Mg. Ing. Milagros Gleny Cohaila Gonzales


gleni_cg@hotmail.com
ARREGLOS: DEFINICIN
Es un conjunto de datos o una estructura de
datos homogneos que se encuentran ubicados
en forma consecutiva en la memoria RAM ( sirve
para almacenar datos en forma temporal).

a b c d
CARACTERSTICAS
Finita: Todo arreglo tiene su lmite, es decir
debe determinarse cual ser el nmero mximo
de elementos que podran formar parte del
arreglo.
Homognea: Todos los elementos de un
arreglo son del mismo tipo (Todos enteros, todos
booleanos, etc.)
Ordenada: Se puede determinar cual es el
primer elemento, el segundo, el tercero, y el
ensimo elemento.
Tipos
Unidimensionales (Listas, Vectores)
Multidimensionales (Tablas, Matrices)

a b c d a b
c d
VECTOR
Un arreglo o vector (llamados en ingls arrays)
es una zona de almacenamiento contiguo, que
contiene una serie de elementos del mismo tipo.
ndices
Todo vector se compone de un determinado
nmero de elementos. Cada elemento es
referenciado por la posicin que ocupa dentro
del vector. Dichas posiciones son llamadas
ndice y siempre son correlativos. Existen tres
formas de indexar los elementos de un arreglo:
TIPOS
Indexacin base-cero (0): El primer elemento del vector ser
el componente cero (0') del mismo, es decir, tendr el ndice '0'.
En consecuencia, si el vector tiene 'n' componentes la ltima
tendr como ndice el valor 'n-1'.
Indexacin base-uno (1): En esta forma de indexacin, el
primer elemento del arreglo tiene el indice '1' y el ltimo tiene el
ndice 'n' (para un arreglo de 'n' componentes).
Indexacin base-n (n): Este es un modo verstil de
indexacin en la que el ndice del primer elemento puede ser
elegido libremente, en algunos lenguajes de programacin se
permite que los ndices puedan ser negativos e incluso de
cualquier tipo escalar (tambin cadenas de caracteres).
Representacin Grfica
Notas[10,12,11,08,20]
Elementos

Notas
10 12 11 08 20
Nombre del 1 2 3 4 5
vector

ndices

Por lo tacto: Llamar a los elementos:


Nombre del vector: Notas Notas[1]=10
N de elementos: 5 Notas[2]=12
Primer ndice: 1 Notas[3]=11
ltimo ndice(n):5
Arreglos Unidimensionales
Son aquellos arreglos que conservan una sola
dimensin.
Se reconocen como:
Listas o
vectores
Sintaxis del Arreglo
Nombre-arreglo= ARREGLO()=[Lim_infLim_sup] de tipo
Donde:
Lim_inf y Lim_sup = Declara el tipo de los ndices y el nmero de
elementos que tendr el arreglo.
Tipo = Declara tipo de datos para todos los componentes del arreglo.
Nmero total de componentes.
NTC = Lim_sup - Lim_inf + 1
Nota:
El tipo de ndice puede ser de cualquier tipo ordinal (carcter, entero,
enumerado).
El tipo de componentes puede ser de cualquier tipo(entero, real, cadena de
caracteres, registro, arreglo, etc.).
Se utiliza corchetes [ ] para indicar el ndice de un arreglo.
EJEMPLOS
Sea X un arreglo de 50 elementos enteros son ndices enteros.
Definicin: X= ARREGLO [ 1.50] de enteros.
Representacin grfica:

1 2 50
Nmero de Componentes:
NTC= 50 1 + 1
Cada componente del arreglo X ser un nmero entero.
El acceso es por medio de un ndice que ser un valor comprendido
entre 1 y 50.
Por Ejemplo:
X[1] hace referencia al elemento de la posicin 1.
X[2] hace referencia al elemento de la posicin 2.
X[50] hace referencia al elemento de la posicin 50.

ndice
OPERACIONES CON ARREGLOS
Las operaciones en las que intervienen arreglos
podemos clasificar de la siguiente manera:
Lectura/ Escritura.
Asignacin.
Actualizacin.
Insercin.
Eliminacin.
Modificacin.
Ordenacin
Bsqueda.
LECTURA
Consiste en leer y asignar un valor a c/u de los
componentes.
Ejemplo:
Para X=Arreglo[1.50] de enteros.
Podemos leer: X[1], X[2] X[N] empleando
Bucle.
inicio
algoritmo leer_vector
tipo i=1 50
array[1..50] de entero : ArregloX
var
ArregloX : X
entero: i X[i]
inicio
desde i = 1 hasta 50 hacer
leer( X[i] )
fin_desde
fin fin
Impresin
Es similar al de la lectura. Se debe escribir el
valor de c/u de los componentes.
Para imprimir los N primeros componentes del
arreglo X de forma consecutiva.
inicio
algoritmo escribir_vector
tipo z=1 50
array[1..50] de entero : ArregloX
var
ArregloX : X
X [z]
entero: i
inicio
desde z= 1 hasta 50 hacer
escribir( X[z] )
fin_desde
fin fin
En algunos lenguajes es posible
ASIGNACIN asignar un variable de tipo ARREGLO
a otra exactamente del mismo tipo.
algoritmo asignar_vector
tipo inicio
array[1..100] de entero : ArregloX
var N
ArregloX : X
real : N i=1 N
entero: i

inicio X[i]
escribir( Ingrese La cantidad: )
Leer(N)

desde i = 1 hasta N hacer i=1 N


leer( X[i] )
fin_desde

desde i = 1 hasta N hacer Y[i]=X[i]


Y[i] = X[i]
fin_desde

fin fin
EJEMPLOS UNIDIMENSIONALES
Calcular la media aritmtica de los elementos del arreglo X de N
elementos. Donde:
X: arreglo definido para almacenar 100 elementos, de tipo real.
N: Nmero actual de datos del arreglo, tipo entero.
M: Variable que presenta la media aritmtica de tipo real.

Variables locales:
I: variable subndice para acceso a cada uno de los elementos, tipo
entero.
S: variable que almacena la suma de los elementos del arreglo, tipo
entero.
Media aritmtica: Desarrollo
INICIO

S=0
A
I=1 N L
G
O
S=S+X[I] R
I
T
M
O
M=S/N

FIN
EJEMPLOS PARTE 01
Realizar el Diagrama de flujo y Pseudocdigo
1. Se pide calcular el promedio de notas,
contenidas en un arreglo de N notas.
2. Realizar un programa que permita leer una lista
de N datos enteros se pide calcular el valor
mximo.
Ejercicio 01: Se pide calcular el promedio de notas, contenidas en un arreglo de N notas.
Pseudocdigo Diagrama de Flujo
algoritmo promedio_notas INICIO
tipo
array[1..100] de entero : ArregloN C
var
ArregloN : N I= 1-----> C
real : C,S, PROM
entero: I N[I]
inicio
escribir( Ingrese La cantidad: )
Leer(C)
S= 0
A
desde I = 1 hasta C hacer L
I= 1-----> C G
leer( N[I] )
fin_desde O
S= S + N[I] R
S=0
I
desde I = 1 hasta C hacer T
S= S + N[I] M
PROM= S/C
fin_desde O

PROM= S/C PROM


escribir(PROM)
fin FIN
Ejercicio 01: Se pide calcular el promedio de notas, contenidas en un arreglo de N notas.
Cdigo Fuente Diagrama de Flujo
INICIO

I= 1-----> C

N[I]

S= 0

I= 1-----> C

S= S + N[I]

PROM= S/C

PROM

FIN
Ejercicio 02: Realizar un programa que permita leer una lista de N datos enteros se pide calcular el valor mximo.

Pseudocdigo Diagrama de Flujo


algoritmo valor_maximo
INICIO
tipo
array[1..100] de entero : ArregloX N
var
ArregloX: X I= 1-----> N
real : N, MAY
entero: I
inicio X[I]
escribir( Ingrese La cantidad: )
Leer(N)

desde I = 1 hasta N hacer I= 1-----> N A


leer( X[I] ) L
fin_desde F G
V I=1
O
desde I = 1 hasta N hacer
si I=1 entonces R
MAY= X[I] MAY= X[I] V X[I]>MAY F I
si_no T
si X[I] >MAY entonces M
MAY= X[I] MAY= X[I] O
fin_si
fin_si
fin_desde

escribir(MAY) MAY
fin FIN
Ejercicio 02: Realizar un programa que permita leer una lista de N datos enteros se pide calcular el valor mximo.

Cdigo Fuente Diagrama de Flujo


INICIO

I= 1-----> N

X[I]

I= 1-----> N

V I=1 F

MAY= X[I] V X[I]>MAY F

MAY= X[I]

MAY

FIN
GRACIAS