unidad 4. arreglos y cadenasmtovar/doc/unidad4.pdf · 2009. 11. 10. · arreglos unidimensionales...

22
Unidad 4. Arreglos y Cadenas

Upload: others

Post on 03-Sep-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Unidad 4. Arreglos y Cadenas

Page 2: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

l Definición de Arreglo:¡Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La propiedad indexado significa que el elemento primero, segundo, hasta el n-ésimo de un arreglo pueden ser identificados por su ésimo de un arreglo pueden ser identificados por su posición ordinal.

¡Un arreglo es una colección finita, homogénea y ordenada de elementos del mismo tipo.

¡De manera formal se define un arreglo de tamaño n de los elementos de tipo A, es un elemento del espacio n-dimensional del conjunto A, es decir, X es arreglo de tamaño n del tipo A si y solo si n

Page 3: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

l Ambas definiciones reconocen los siguientes conceptos:l Finita: Todo arreglo tiene un límite, es decir, debe

determinarse cual será el número máximo de elementos que podrán formar parte del arreglo.

l Homogénea: Todos los elementos de un arreglo son del mismo tipo o naturaleza (todos enteros, todos

l Homogénea: Todos los elementos de un arreglo son del mismo tipo o naturaleza (todos enteros, todos booleanos, etc,), pero nunca una combinación de distintos tipos.

l Ordenada: Se debe determinar cuál es el primer elemento, el segundo, el tercero..... y el n-ésimo elemento.

Page 4: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Clasificación de los arreglos.

lLos arreglos se clasifican en:lUnidimensionales (Vectores): un sólo índice

lBidimensionales (Tablas o Matrices): dos lBidimensionales (Tablas o Matrices): dos índices

lMultidimensionales: más de dos índices

Page 5: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Arreglos unidimensionales

l Los arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número de elementos finito.¡Tamaño fijo: el tamaño del arreglo debe ser conocido en tiempo de compilación. tiempo de compilación.

¡Homogéneo: todos los elementos son del mismo tipo.¡Son almacenados en posiciones contiguas de memoria, cada uno de los cuales se les puede acceder directamente.

¡Cada elemento se puede procesar como si fuese una variable simple ocupando una posición de memoria.

Page 6: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

notación:

l Identificador_Arreglo= ARREGLO [Lim_inf..Lim_sup] DE tipo_dato

l Donde¡ Identificador_Arreglo: Es el nombre del arreglo para reconocer

a los elementos.¡ Lim_inf: es el primer elemento del arreglo¡ Lim_inf: es el primer elemento del arreglo¡ Lim_sup:es el último elemento del arreglo, para definir el

número de elementos que tendrá el arreglo¡ Tipo_dato: se declara el tipo de datos para todos los elementos

del arreglo.l Ejemplos definiciones del arreglo:

¡ A=ARREGLO [1..5] DE enteros¡ NÚMEROS=ARREGLO[1..4] DE reales ¡ LETRAS=ARREGLO[1..3] DE caracteres

Page 7: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Operaciones con Arreglos Unidimensionales.

lAsignaciónlLectura lEscrituraRecorridolRecorrido

lActualización (insertar, borrar, modificar)lOrdenaciónlBúsqueda

Page 8: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Asignaciónl En general no es posible asignar directa un valor a todo

el arreglo, sino que se debe asignar el valor deseado a cada elemento. La manera de asignar (insertar) un valor en cada elemento del arreglo unidimensional es mediante el subíndice que indica la posición, se puede utilizar la siguiente forma:mediante el subíndice que indica la posición, se puede utilizar la siguiente forma:

l <NombreVector>[subíndice] <Valor>l Ejemplos:l A[1]<- 10l PAIS[2] <- “Francia”l Numeros[10]<- 10.4l PRECIO[3] <- PRECIO[2]+10.5

Page 9: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Lectura

Para i <- 1 hasta N incremento 1 Hasta N hacerLeer ARREGLO[i]

Fin_Para

Page 10: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Problemas

l Algoritmo que presente el minimo y el maximo de un arreglo de tamaño N.

l Algoritmo que sume los cuadrados de los elementos almacenados en un arreglo

l Algoritmo que determine cuantos datos l Algoritmo que determine cuantos datos almacenados en un arreglo son pares y cuantos impares .

l Algoritmo que obtenga el producto punto de dos vectores.

l Algoritmo que obtenga la norma de un vector

Page 11: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Búsqueda secuencial

l A este método también se le conoce como búsqueda lineal y consiste en empezar al inicio del conjunto de elementos , e ir a través de ellos hasta encontrar el elemento indicado ó hasta llegar al final de arreglo.hasta llegar al final de arreglo.

l Este es el método de búsqueda más lento, pero si nuestro arreglo se encuentra completamente desordenado es el único que nos podrá ayudar a encontrar el dato que buscamos.

Page 12: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

l Comparar uno a uno los elementos el arreglo (de tamaño N) hasta encontrar el deseado.

l Existen dos condiciones que ponen fin a la búsqueda.l 1. Se encuentra el elementol 2. Se ha rastreado toda la colección y no se encuentra ell 2. Se ha rastreado toda la colección y no se encuentra ell elemento

l Si i al final es N entonces el elemento no fue encontrado, pero sino

l entonces quiere decir que el elemento esta en la posición i-ésima del

Page 13: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Algoritmo: búsqueda_linealVariables: i, N, elemento Tipo EnteroInicio

A=ARREGLO [1..N] DE enterosEscribir “Escribe los valores del arreglo:” Para i=1 hasta N incremento 1 hacer

Leer a[i]Fin_ParaEscribir “Escribe el número a buscar en el arreglo”Leer elementoi ß 1Mientras (i< N) y (a[i] <> elemento) hacerMientras (i< N) y (a[i] <> elemento) hacer

i ß i+1Fin_mientrasSi (a[i] = elemento) entonces

Escribir “Numero encontrado en la pos ” iSino

Escribir “Número no encontrado ”Fin_si

Fin

Page 14: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

lBuscar x = 3

0 3 5 9 15 30 40L=1 R=7 M= 4 Enc =F0 3 5 9 15 30 40L=1 R=4 M= 5/2 =2 Enc =T0 3 5 9 15 30 40

Page 15: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

lBuscar x=400 3 5 9 15 30 40L=1 R=7 M= 4 Enc =F0 3 5 9 15 30 400 3 5 9 15 30 40L=5 R=7 M= 12/2 =6 Enc =F

0 3 5 9 15 30 40L=7 R=7 M= 14/2 =7 Enc =T

0 3 5 9 15 30 40

Page 16: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Algoritmo: búsqueda binaria

InicioL <- 1R <- NFound <- falseMientras (L< R y no (found)) hacer

M <- (L+R) div 2M <- (L+R) div 2Si a[m]=x entonces

found <- trueSino

si a[m] < x entonces L <- m+1Sino R <- m

Fin_siFin_mientrasFin

Page 17: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Ordenamiento, ejemplo 1

i=1 i=2 i=3 i=4 i=5 i=6

8 0 0 0 0 0 0

1 8 1 1 1 1 1

0 1 8 3 3 3 30 1 8 3 3 3 3

3 3 3 8 5 5 5

10 5 5 5 8 7 7

7 10 7 7 7 8 8

5 7 10 10 10 10 10

Page 18: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Ordenamiento, ejemplo 2

i=1 i=2 i=3 i=4 i=5 i=6

8 0 0 0 0 0 0

5 8 1 1 1 1 1

4 5 8 2 2 2 24 5 8 2 2 2 2

3 4 5 8 3 3 3

2 3 4 5 8 4 4

1 2 3 4 5 8 5

0 1 2 3 4 5 8

Page 19: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

BurbujaInicio

Para i <- 1 hasta n-1 incremento 1 hacerPara j <- n hasta i+1 decremento 1 hacer

Si A[ j ] < A[ j-1] entoncesTemp = A[ j ]Temp = A[ j ]A[ j ] = A[ j-1]A[ j-1] = Temp

Fin_si

Fin_paraFin_para

Fin

Page 20: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Selección

l Este método se basa en los siguientes principios:

1. Seleccionar el elemento que tenga la llave menormenor

2. Intercambiarlo con el primer elemento a[1]3. Repetir después estas operaciones con los n-1

elementos restantes, luego con n-2 elementos hasta que no quede más que un elemento (el más grande)

Page 21: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

i=1 i=2 i=3 i=4 i=5 i=6

8 X=8K=1

8 0 0 0 0 0 0

1 X=1K=2

1 X=1K=2

1 1 1 1 1

0 X=0K=3

0 8 8 X=8K=3

8 3 3 3 3

3 3 3 X=3 3 8=x 8 5 5 53 3 3 X=3K=4

3 8=x K=4

8 5 5 5

10 10 10 10 10 X=10K=5

10 7 7

7 7 7 7 X=7 k=6

7 X=7K=6

7 10X=10K=6

10

5 5 5 5 X=5K=7

5 8 8 x=8K=7

8

Page 22: Unidad 4. Arreglos y Cadenasmtovar/doc/Unidad4.pdf · 2009. 11. 10. · Arreglos unidimensionales lLos arreglos unidimensionales deben cumplir lo siguiente: ¡Compuesto por un número

Algoritmo de selecciónInicio

Para i <- 1 hasta n-1 incremento 1 hacerK <- i X <- a[i]Para j <- i+1 hasta n incremento 1 hacer

If a[j] < x entoncesK <- j K <- j X <- a[k]

fin_sifin_paraa[k] <- a[i] a[i] <- x

fin_parafin