SlideShare una empresa de Scribd logo
1 de 89
Descargar para leer sin conexión
Unidad 5. Arreglos:g
Vectores y Matrices
Prof. Eliana Guzmán U.
S t A 2015Semestre A-2015
Estructuras de datosEstructuras de datos
• Los arreglos son un tipo de estructura de
datos.
• Una estructura de datos es una colección de
datos que se caracteriza por su organización
y las operaciones que se definen en ella.y p q
• Las estructuras de datos son muy
importantes en los sistemas de computadoraimportantes en los sistemas de computadora.
• Los tipos de datos más frecuentes utilizados
en los diferentes lenguajes de programaciónen los diferentes lenguajes de programación
son:
Tipos de datosTipos de datos
Estructuras de datosEstructuras de datos
Las estructuras de datos estáticas sonLas estructuras de datos estáticas son
aquellas en las que el tamaño ocupado en
memoria se define antes de que elq
programa se ejecute y no puede
modificarse durante la ejecución del
E t t t táprograma. Estas estructuras están
implementadas en casi todos los
lenguajes de programación: arregloslenguajes de programación: arreglos
(vector/matriz), registros, ficheros o
archivos conjuntos (Pascal)archivos, conjuntos (Pascal).
Estructuras de datosEstructuras de datos
Las estructuras de datos dinámicas no tienenLas estructuras de datos dinámicas no tienen
las limitaciones o restricciones en el tamaño de
memoria ocupada, que son propias de las
estructuras estáticas. Mediante el uso de un tipo
de dato específico denominado puntero, es
ibl t i t t d d tposible construir estructuras de datos
dinámicas, que son soportadas por la mayoría
de los lenguajes Las estructuras de datosde los lenguajes. Las estructuras de datos
dinámicas por excelencia son: las listas
(enlazadas, pilas y colas), árboles (binarios,( , p y ), ( ,
árbol-b) y grafos.
ArreglosArreglos
Un arreglo (matriz o vector) es un conjuntoUn arreglo (matriz o vector) es un conjunto
finito y ordenado de elementos
homogéneos. La propiedad ordenadosg p p
significa que el elemento primero,
segundo, tercero,…, n-ésimo de un
l d id tifi darreglo puede ser identificado.
Los elementos de un arreglo son
h é d i t d d lhomogéneos, es decir, todos son del
mismo tipo de dato (cadena, carácter,
lógico entero o real)lógico, entero o real).
Arreglos unidimensionales:
vectores
• El tipo más simple de arreglo es el unidimensional op p g
vector. Por ejemplo, un vector de una dimensión
denominado NOTAS[i], que consta de n elementos se
puede representar así:p p
El bí di í di d l t [1 2 3 i ]• El subíndice o índice de un elemento [1,2,3,…,i,…,n]
designa la posición que ocupa cada elemento del
vector.
• Solo el vector global tiene nombre (NOTAS). Los
elementos del vector se referencian por su subíndice o
índice, es decir, su posición relativa en el vector.p
Arreglos unidimensionales:
vectores
Notación algorítmica para declarar vectores:
titipo
<nombre del tipo arreglo> = arreglo [dimensiones] de <tipo de dato>
var
identificador de la variable: <nombre del tipo arreglo>identificador de la variable: <nombre del tipo arreglo>
Ejemplos:
tipo tipotipo tipo
nombres= arreglo [1..10] de caracter número=arreglo [1..100] de entero
var var
N,M: nombres NUM: número
se están declarando dos vectores se está declarando un vector
N y M de 10 elementos cada uno NUM de 100 elementos de tipo
de tipo carácter. entero.
Arreglos unidimensionales:
O i VOperaciones con Vectores
Las operaciones que se pueden realizar conLas operaciones que se pueden realizar con
vectores durante el proceso de resolución de un
problema usando la programación son:
• Recorrido (acceso secuencial).
• Lectura/escritura.
• Asignación.
• Actualización (añadir, borrar, insertar).ctua ac ó (a ad , bo a , se ta )
• Ordenación.
• BúsquedaBúsqueda.
1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial)
• Se puede acceder a cada elemento de unSe puede acceder a cada elemento de un
vector para introducir datos en él (leer) ó
bien para visualizar su contenidobien para visualizar su contenido
(escribir).
• A la operación de efectuar una acción• A la operación de efectuar una acción
general sobre todos los elementos de un
vector se le denomina recorridovector, se le denomina recorrido
secuencial del vector.
1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial)
• Estas operaciones se realizan utilizandoEstas operaciones se realizan utilizando
estructuras repetitivas, cuyas variables de
control por ejemplo i se utilizan comocontrol, por ejemplo i, se utilizan como
subíndices del vector (por ejemplo S[i]).
• El incremento del contador del bucle• El incremento del contador del bucle
producirá el acceso sucesivo a cada
elemento del vectorelemento del vector.
1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial)
Normalmente se utiliza la estructura de repeticiónNormalmente se utiliza la estructura de repetición
desde, ya que se conoce de antemano la cantidad
de veces que se desea repetir el bucle. Por
ejemplo para un vector de 20 elementos:
desde i ← 1 hasta 20 hacer
escribir(‘Introduzca el elemento ‘ ,i, ‘del vector F: ’)
leer(F[i])
fin_desde_
1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial)
También se pueden utilizar las estructuras dep
repetición mientras y repetir:
i ← 1
mientras (i <= 20) hacer
escribir(‘Introduzca el elemento ‘ ,i, ‘del
vector F: ’)
leer(F[i])
i i 1i ← i + 1
fin_mientras
1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial)
i ← 1i ← 1
repetir
ibi (‘I t d l l t ‘ i ‘d lescribir(‘Introduzca el elemento ‘ ,i, ‘del
vector F: ’)
leer(F[i])
i ← i + 1
hasta_que (i > 20)
2 Lectura/escritura2. Lectura/escritura
La lectura/escritura de datos en arreglosLa lectura/escritura de datos en arreglos
normalmente se realiza con estructuras
repetitivas (usando un recorrido secuencial).
Las instrucciones simples de lectura/escritura se
representarán como:
• leer(A[5]) lectura del elemento 5 del vector A
• escribir(A[8]) escribir el elemento 8 del vector A
2 Lectura/escritura2. Lectura/escritura
Generalmente se desea leer o escribir el vector
completo, para lo cual se debe hacer un
recorrido del vector:
desde i←1 hasta n hacer
escribir(‘Introduzca el elemento ‘ ,i, ‘del( , ,
vector F: ’)
leer(F[i])
fi d dfin_desde
2 Lectura/escritura2. Lectura/escritura
Para escribir el vector F:Para escribir el vector F:
d d i 1 h t hdesde i←1 hasta n hacer
escribir(F[i])
fin_desde
2 Lectura/escritura2. Lectura/escritura
Para facilitar futuras operaciones con elPara facilitar futuras operaciones con el
vector, se recomienda inicializar el vector
antes de operar con él Puede usarseantes de operar con él. Puede usarse
cualquier valor que respete el tipo de dato
del vector y que no sea una entrada válidadel vector y que no sea una entrada válida
de la variable involucrada:
desde i ← 1 hasta n hacerdesde i ← 1 hasta n hacer
nombre[i] ← ‘*’
fin desdefin_desde
3 Asignación3. Asignación
La asignación de valores a un elemento delLa asignación de valores a un elemento del
vector se realizará con la instrucción de
asignación:asignación:
• A[29] ← 5 asigna el valor 5 al elemento
29 del vector A29 del vector A
• Suma ← A[1] + A[3]
• A[3] ← A[3] + 10.8
• A[1] ← A[4] + A[5][ ] [ ] [ ]
3 Asignación3. Asignación
• Si se desea asignar valores a todos losSi se desea asignar valores a todos los
elementos de un vector, se debe recurrir a
estructuras repetitivas e incluso selectivas.p
• Ejemplo: si se desea dar el mismo valor a
todos los elementos del vector A de tipop
entero:
desde i ← 1 hasta 5 hacer
A[i] ← 8
fin_desde
Ejemplos de vectores
1 Escribir un algoritmo que determine el
Ejemplos de vectores
1. Escribir un algoritmo que determine el
mayor valor de una lista de 50 números
reales e indique la posición que ocupareales e indique la posición que ocupa.
Ejemplos de vectoresEjemplos de vectores
2 Escribir un algoritmo que permita calcular2. Escribir un algoritmo que permita calcular
la desviación estándar de una lista de N
números El valor de N no puede sernúmeros. El valor de N no puede ser
mayor a 15.
1
)(
1
2
−
−
=
∑=
n
mediax
desviación
n
i
i
1n
Ejemplos de vectoresEjemplos de vectores
3 Escribir un algoritmo que determine:3. Escribir un algoritmo que determine:
a) el promedio de N números enteros e indique
cuáles elementos son mayores a dichocuáles elementos son mayores a dicho
promedio.
b) la suma de los números pares e impares.b) la suma de los números pares e impares.
4. Escriba un algoritmo que determine si
dos vectores de treinta caracteres sondos vectores de treinta caracteres son
iguales.
4 Actualización4. Actualización
La operación de actualización de un vectorLa operación de actualización de un vector
consta a su vez de tres operaciones más
elementales:elementales:
• Añadir elementos.
I t l t• Insertar elementos.
• Borrar elementos.
4 Actualización4. Actualización
Añadir elementos: es la operación deAñadir elementos: es la operación de
agregar un nuevo elemento al final del
vector La única condición necesaria paravector. La única condición necesaria para
esta operación consistirá en la
comprobación de que existe espaciocomprobación de que existe espacio
suficiente para el nuevo elemento, dicho
de otra manera que el vector no contengade otra manera, que el vector no contenga
todos los elementos con que fue definido.
4 Actualización4. Actualización
Ejemplo: se tiene un vector de edades definidoEjemplo: se tiene un vector de edades definido
para 7 elementos, pero ya tiene almacenado 5
elementos EDADES[1], EDADES[2],
EDADES[3], EDADES[4] y EDADES[5]. Se
podrán añadir dos elementos más al final del
t i l ió d i ióvector con una simple operación de asignación:
• EDADES[6] ← 23
EDADES[ ] 20• EDADES[7] ← 20
(Si conoce los espacio del vector que están libres.)
4 Actualización4. Actualización
Si no se sabe si el vector tiene espacios disponibles,
primero debe determinarse esto antes de intentar añadirprimero debe determinarse esto antes de intentar añadir
elementos al vector:
desde i ← 1 hasta n hacer
si (edades[i]=-1) entoncessi (edades[i] 1) entonces
escribir(‘Introduzca una edad:’)
leer(edades[i])
si nosi_no
cont ← cont + 1
fin_si
fin desdefin_desde
si (cont=n) entonces
escribir(‘El vector no tiene espacio para añadir más elementos’)
fin sifin_si
4 Actualización4. Actualización
Insertar elementos: consiste en introducir unInsertar elementos: consiste en introducir un
elemento en el interior de un vector ordenado.
En este caso se necesita un desplazamiento
previo hacia abajo, para colocar el nuevo
elemento en su posición relativa.
Ejemplo: se tiene un vector de 8 elementos que
contiene nombres ordenados alfabéticamente y
se desea insertar dos nuevos nombres:se desea insertar dos nuevos nombres:
Fernando y Luis.
4 Actualización4. Actualización
Como Fernando está entre Carlos y Gerardo se deben desplazar hacia
abajo los elementos 3, 4 y 5 que pasarán a ocupar las posiciones relativas
4, 5 y 6.
P t i t d b li l i ió l b L iPosteriormente debe realizarse la misma operación con el nombre Luis
que ocupará la posición 6.
El algoritmo que realiza esta operación para un vector de n
elementos es el siguiente, suponiendo que hay espacio
suficiente en el vector:
algoritmo insertar_elemento
const
escribir(‘Introduzca el elemento:’)
leer(nuevo)
desde i ← 1 hasta n hacern=500
tipo
vector=arreglo [1 .. n] de cadena[50]
var
desde i ← 1 hasta n hacer
si (NOMBRES[i]<nuevo) entonces
cont ← cont + 1
fin_si
fin desdevar
NOMBRES: vector
nuevo: cadena[50]
Pos, ocupada, cont: entero
fin_desde
Pos ← cont + 1
i ←ocupada
mientras (i >= Pos) hacer
NOMBRES[i+1] ← NOMBRES[i]inicio
desde i ← 1 hasta n hacer
si (NOMBRES[i]<>’vacio’) entonces
NOMBRES[i+1] ← NOMBRES[i]
i ← i - 1
fin_mientras
NOMBRES[Pos] ← nuevo
ocupada ← ocupada + 1
fin_si
fin_desde
ocupada ← ocupada + 1
fin_si
fin
si (ocupada=n) entonces
escribir(‘No se pueden insertar elementos’)
si_no
4 Actualización4. Actualización
Borrar elementos: la operación de borrar elBorrar elementos: la operación de borrar el
último elemento de un vector no
representa ningún problemarepresenta ningún problema.
El borrado de un elemento del interior del
vector provoca el movimiento hacia arribavector provoca el movimiento hacia arriba
de los elementos inferiores a él para
reorganizar el vectorreorganizar el vector.
4 Actualización4. Actualización
Si desea borrar elemento
3 (Gerardo) debe desplazar3 (Gerardo), debe desplazar
hacia arriba los elementos
de las posiciones 4 (Lorena)
y 5 (Marcos)y 5 (Marcos).
4. Actualización
Ejemplo: en el vector del ejemplo anterior NOMBRES,
borrar el elemento que el usuario desee.q
algoritmo borrar_elemento
const
N=500N=500
tipo
vector = arreglo [1 .. N] de cadena[50]
var
NOMBRES: vector
j,ocupada: entero
nom: cadena[50]
Inicio
escribir(‘Introduzca el nombre a borrar:’)escribir( Introduzca el nombre a borrar: )
leer(nom)
4 Actualización4. Actualización
desde i ← 1 hasta N hacer
si (NOMBRES[i]=nom) entonces
j ← i
fi ifin_si
fin_desde
desde i ← j hasta N 1 hacerdesde i ← j hasta N-1 hacer
NOMBRES[i] ← NOMBRES[i+1]
fin desde_desde
ocupada ← ocupada -1
fin
5 Métodos de ordenamiento5. Métodos de ordenamiento
Ordenación (clasificación)Ordenación (clasificación)
• Es la operación de organizar un conjuntoEs la operación de organizar un conjunto
de datos en algún orden o secuencia
específica, tal como creciente op
decreciente para datos numéricos o
alfabéticamente para datos de tipo
á t d d tcarácter o cadena de caracteres.
• Operaciones típicas de ordenación son:
li t d ú hi d li t dlista de números, archivos de clientes de
banco, nombres en una agenda telefónica,
entre otrasentre otras.
Ordenación (clasificación)Ordenación (clasificación)
• En síntesis la ordenación significa ponerEn síntesis, la ordenación significa poner
objetos en orden ascendente o
descendentedescendente.
• El propósito final de la ordenación es
facilitar la manipulación de datos en unfacilitar la manipulación de datos en un
vector.
Ordenación (clasificación)Ordenación (clasificación)
Los métodos directos son los que seLos métodos directos son los que se
realizan en el espacio ocupado por el
arreglo Los que vamos a estudiar son:arreglo. Los que vamos a estudiar son:
• Método de intercambio o burbuja.
O d ió S l ió• Ordenación por Selección.
• Ordenación por Inserción.
Método de intercambio o de
b b jburbuja
Se basa en el principio de comparar pares
de elementos adyacentes e
intercambiarlos entre sí hasta que estén
todos ordenados.
Método de intercambio o de
b b jburbuja
El elemento cuyo valor es mayor sube posición aEl elemento cuyo valor es mayor sube posición a
posición hacia el final de la lista, al igual que las
burbujas de aire en un depósito (si se ordena de
forma ascendente).
Tras realizar un recorrido completo por todo el
vector, el elemento mencionado habrá subido
en la lista y ocupará la última posición.
E l d id l d lEn el segundo recorrido, el segundo elemento
llegará a la penúltima posición, y así
sucesivamentesucesivamente.
Método de intercambio o de
b b jburbuja
Los pasos a dar son:p
1. Comparar A[1] y A[2], si están en orden, se
mantienen como están, en caso contrario se
i bi iintercambian entre si.
2. A continuación se comparan los elementos 2 y
3 de nuevo se intercambian si es necesario3, de nuevo se intercambian si es necesario.
3. El proceso continúa hasta que cada elemento
del vector ha sido comparado con susde ecto a s do co pa ado co sus
elementos adyacentes y se han realizado los
intercambios necesarios.
Método de intercambio o de
b b jburbuja
La acción de intercambiar entre sí losLa acción de intercambiar entre sí los
valores de dos elementos A[i], A[i+1] es
una acción compuesta que contiene lasuna acción compuesta que contiene las
siguientes acciones, utilizando una
variable auxiliar:variable auxiliar:
A[i] A[i+1]
2
AUX
1 3
Método de intercambio o de
b b jburbuja
En pseudocódigo:En pseudocódigo:
AUX ← A[i]
A[i] ← A[i+1]A[i] ← A[i+1]
A[i+1] ← AUX
Método de intercambio o de
burbujaburbuja
algoritmo burbuja1
const
algoritmo burbuja2
const
N=200
tipo
vector=arreglo [1..N] de entero
Var
X: vector
N=200
tipo
vector =arreglo [1..N] de entero
var
X: vectorX: vector
i, j, aux: entero
inicio
desde i ← 1 hasta N hacer
leer(X[i])
fin desde
X: vector
i, j,aux: entero
inicio
desde i ← 1 hasta N hacer
leer(X[i])
fin desdefin_desde
desde i ← 1 hasta N-1 hacer
desde j ← 1 hasta N-1 hacer
si (X[j] > X[j+1]) entonces
AUX ← X[j]
fin_desde
desde i ← 1 hasta N-1 hacer
desde j ← 1 hasta N-i hacer
si (X[j] > X[j+1]) entonces
AUX ← X[j][j]
X[j] ← X[j+1]
X[j+1] ← AUX
fin_si
fin_desde
fin desde
[j]
X[j] ← X[j+1]
X[j+1] ← AUX
fin_si
fin_desde
fin desdefin_desde
desde i ← 1 hasta N hacer
escribir(X[i])
fin_desde
fin
fin_desde
desde i ← 1 hasta N hacer
escribir(X[i])
fin_desde
fin
Método de ordenación por
l ióselección
Este método se basa en buscar el menorEste método se basa en buscar el menor
elemento del vector y colocarlo en la
primera posición Luego se busca elprimera posición. Luego se busca el
segundo elemento más pequeño y se
coloca en la segunda posición y asícoloca en la segunda posición, y así
sucesivamente.
Método de ordenación por
l ióselección
Los pasos sucesivos a dar son:Los pasos sucesivos a dar son:
1. Seleccionar el menor elemento del vector de
n elementosn elementos.
2. Intercambiar dicho elemento con el primero.
3 Repetir estas operaciones con los n-13. Repetir estas operaciones con los n-1
elementos restantes, seleccionando el
segundo elemento, continuar con los n-2g ,
elementos restantes hasta que sólo quede
el mayor.
Método de ordenación por
l ióselección
Pseudocódigo con estructura desde
i i iinicio
desde i hasta N-1 hacer
AUX ← X[i]
K ← iK ← i
desde j ← i+1 hasta N hacer
si (X[j] < AUX) entonces
AUX ← X[j]AUX ← X[j]
K ← j
fin_si
fin_desde_
X[K] ← X[i]
X[i] ← AUX
fin_desde
fin
Método de ordenación por
i ióinserción
El método se basa en comparaciones yEl método se basa en comparaciones y
desplazamientos sucesivos. El algoritmo
de ordenación de un vector X de Nde ordenación de un vector X de N
elementos, se realiza con un recorrido de
todo el vector y la selección e insercióntodo el vector y la selección e inserción
del elemento correspondiente en el lugar
adecuadoadecuado.
Método de ordenación por
i ióinserción
Por usar la misma lógica con las que sePor usar la misma lógica con las que se
ordenan las cartas, también se conoce
con el nombre de método de la barajacon el nombre de método de la baraja.
Método de ordenación por
insercióninserciónalgoritmo método_inserción
tipo
vector = arreglo [1..10] de entero
var
X: vector
i, j, k, aux: entero
sw: lógico
inicio
desde i ← 2 hasta 10 hacer
AUX ← X[i]
K ← i – 1
sw ← falso
mientras no(sw) y (K>=1) hacer
si (aux<x[k]) entonces
X[K+1] ← X[K]
K ← K – 1
si_no
sw ←verdadero
fin_si
fin_mientras
X[K+1] ← AUX
fin_desde
fin.
Métodos de búsqueda enMétodos de búsqueda en
vectoresvectores
Métodos de BúsquedaMétodos de Búsqueda
• La recuperación de información, como ya se hap , y
comentado, es una de las aplicaciones más
importantes de las computadoras.
L bú d fi l ió d• La búsqueda se refiere a la operación de
encontrar la posición de un elemento entre un
conjunto de elementos dados: lista tabla oconjunto de elementos dados: lista, tabla o
fichero.
• Existen diferentes algoritmos de búsqueda. El
algoritmo elegido depende de la forma en que
se encuentren organizados los datos.
Métodos de BúsquedaMétodos de Búsqueda
La operación de búsqueda de un elementoLa operación de búsqueda de un elemento
X en un conjunto de elementos consiste
en:en:
1. Determinar si X pertenece al conjunto y,
en ese caso indicar su posición en élen ese caso, indicar su posición en él.
2. Determinar si X no pertenece al
j tconjunto.
Métodos de BúsquedaMétodos de Búsqueda
Los métodos más usuales de búsquedaLos métodos más usuales de búsqueda
son:
• Búsqueda secuencial o lineal• Búsqueda secuencial o lineal.
• Búsqueda binaria.
• Búsqueda por transformación de claves
(hash).
Búsqueda secuencial o linealBúsqueda secuencial o lineal
El método más sencillo de buscar unEl método más sencillo de buscar un
elemento en un vector es explorar
secuencialmente el vector (recorrer elsecuencialmente el vector (recorrer el
vector), desde el primer elemento hasta el
último Si se encuentra el elementoúltimo. Si se encuentra el elemento
buscado visualizar un mensaje similar a
‘Elemento encontrado en la posición x’ enElemento encontrado en la posición x , en
caso contrario visualizar un mensaje
similar a ‘Elemento no existe en el vector’similar a Elemento no existe en el vector .
Búsqueda secuencial o linealBúsqueda secuencial o lineal
• En otras palabras la búsqueda secuencialEn otras palabras, la búsqueda secuencial
compara cada elemento del vector con el
valor deseado hasta que se encuentra yvalor deseado, hasta que se encuentra y
termina de recorrer el vector completo.
• La búsqueda secuencial no requiere• La búsqueda secuencial no requiere
ningún registro por parte del vector por
consiguiente no requiere que el vectorconsiguiente no requiere que el vector
esté ordenado.
Búsqueda secuencial o linealBúsqueda secuencial o lineal
Este método tiene el inconveniente delEste método tiene el inconveniente del
consumo excesivo de tiempo en la
localización del elemento buscadolocalización del elemento buscado.
Cuando el elemento buscado no se
encuentra en el vector se verifican oencuentra en el vector, se verifican o
comprueban sus n elementos. Por esto no
es el método más adecuado para vectoreses el método más adecuado para vectores
con un gran número de elementos.
Búsqueda secuencial o linealq
algoritmo búsqueda_secuencial
const
N=1000 si (cont=N) entonces
tipo
vector=arreglo [1..N] de entero
var
X: vector
escribir(‘El elemento ‘,t,’ no se 
encuentra en este vector’)
fin_si
fin.
i, t, cont: entero
inicio
desde i ← 1 hasta N hacer
leer(X[i])
fin.
fin_desde
escribir(‘Introduzca el elemento a buscar: ‘)
leer(t)
desde i ← 1 hasta N hacer
si (X[i] = t) entonces
escribir(‘Elemento encontrado en la posición ‘,i)
si_no
cont ← cont + 1
fin_si
fin_desde
algoritmo búsqueda_secuencial2
tipo
vector =arreglo [1..20] de entero
var
X: vector
i,j,t: entero
encontrado: lógica
i i iinicio
desde i ← 1 hasta N hacer
leer(X[i])
fin_desde
ibi (‘I t d l l t b ‘)escribir(‘Introduzca el elemento a buscar: ‘)
leer(t)
encontrado ← falso
desde i ← 1 hasta N hacer
i (X[i] t) tsi (X[i] = t) entonces
encontrado ← verdadero
j ← i
fin_si
fi d dfin_desde
si encontrado entonces
escribir(‘Elemento encontrado en la posición ‘,j)
si_no
ibi (‘El t t d ’)escribir(‘Elemento no encontrado’)
fin_si
fin.
Búsqueda binariaBúsqueda binaria
Presupone una ordenación previa de losPresupone una ordenación previa de los
elementos del vector.
Este método se basa en la divisiónEste método se basa en la división
sucesiva del vector en dos partes, y seguir
dividiendo cada mitad hasta encontrar eldividiendo cada mitad hasta encontrar el
elemento buscado.
Búsqueda binariaBúsqueda binaria
Utiliza un método de divide y vencerás paray p
localizar el valor deseado.
Con este método se examina primero el elemento
l d l i l lcentral del vector, si este es el elemento
buscado, entonces la búsqueda ha terminado.
En caso contrario se determina si el elementoEn caso contrario se determina si el elemento
buscado está en la primera o segunda mitad del
vector, y a continuación se repite este proceso,
utilizando el elemento central de esa parte del
vector.
Búsqueda binariaBúsqueda binaria
Es un método eficiente siempre que elEs un método eficiente siempre que el
vector esté ordenado.
En la práctica esto suele suceder pero noEn la práctica esto suele suceder, pero no
siempre es así. Por esta razón la
búsqueda binaria exige una ordenaciónbúsqueda binaria exige una ordenación
previa del vector.
algoritmo búsqueda_binaria
tipo
vector=arreglo [1..500] de entero
var
X: vector
i,j,t,k,primero,ultimo,central: entero
encontrado: lógica
I i iInicio
escribir(‘Introduzca el valor a buscar: ‘)
leer(k)
primero ← 1
últi Núltimo ← N
central ← trunc((primero+último)/2)
mientras (primero <= último) y (X[central] <> K) hacer
si (K < X[central]) entonces
últi t l 1último ← central - 1
si_no
primero ← central + 1
fin_si
t l t (( i últi )/2)central ← trunc((primero+último)/2)
fin_mientras
si K = X[central] entonces
escribir(‘Elemento encontrado en la posición ‘,central)
isi_no
escribir(‘Elemento no encontrado’)
fin_si
fin.
Ejemplo 5: Un viajero conoce todos los
t hi últi i j lgastos que hizo en su último viaje con la
tarjeta de crédito, fueron 18 en total, los
l d l ifi tcuales se pueden clasificar en cuatro
tipos: comida, hospedaje, transporte y
E ib l it hropa. Escriba un algoritmo, que haga uso
de vectores, y le permita al viajero
d t ideterminar:
– Gastos totales discriminados por tipo.
– Cantidad de gastos que realizó en comida.
– Tipo de gasto en el que más invirtió dinero en
el viaje.
Ejemplo 6: Escriba un algoritmo que
h i d d lhaciendo uso de un arreglo
unidimensional de 100 elementos
d i d CEDULA itdenominado CEDULA, permita:
– Leer los 100 elementos por teclado.
– Ordenar los números de cédula de forma
ascendente.
– Buscar si el número de cédula 19144473 se
encuentra en el arreglo CEDULA e indicar la
posición que ocupaposición que ocupa.
– Determinar cuántos números de cédula son
mayores a 19145954mayores a 19145954.
Ejemplo 7: Se han registrado las notas definitivas
de 58 estudiantes de Programación Digital ende 58 estudiantes de Programación Digital en
un arreglo unidimensional llamado NOTAS.
Cada calificación es un número entero entre 1 yy
20. Construya un algoritmo que le permita al
profesor de esta asignatura obtener la siguiente
información:
– La nota promedio de la clase.
– Las notas ordenadas de menor a mayorLas notas ordenadas de menor a mayor.
– Nota más alta y más baja obtenida en esta sección de
Programación Digital, e indicar los nombres de los estudiantes
que las obtuvieronque las obtuvieron.
– Cuántos estudiantes obtuvieron notas de 18, 19 ó 20.
– Las notas que fueron mayores al promedio.
El t j d t di t b d l t j d l– El porcentaje de estudiantes aprobados y el porcentaje de los
reprobados.
Arreglos Multidimensionales
Los arreglos de varias dimensiones se
Arreglos Multidimensionales
Los arreglos de varias dimensiones se
dividen en dos grandes grupos:
• Arreglos bidimensionales: tablas o• Arreglos bidimensionales: tablas o
matrices.
A l ltidi i l• Arreglos multidimensionales.
Arreglos multidimensionalesArreglos multidimensionales
Un arreglo multidimensional, se puedeUn arreglo multidimensional, se puede
definir de tres, cuatro y hasta n
dimensiones.
Se manejan los mismos conceptos para los
subíndices que en los vectores.q
Cada elemento del arreglo se puede
identificar usando la cantidad de
subíndices necesarios, por ejemplo en un
arreglo de n dimensiones se escribirá:
A[I I I I ]A[I1, I2, I3, …, In]
Arreglos multidimensionalesArreglos multidimensionales
Ejemplo: Un arreglo de tres dimensionesEjemplo: Un arreglo de tres dimensiones
puede ser uno que contenga los datos
relativos a la cantidad de estudiantes de unarelativos a la cantidad de estudiantes de una
universidad de acuerdo a los siguientes
criterios:criterios:
– año (primero a quinto).
género (femenino/masculino)– género (femenino/masculino).
– facultad (medicina, farmacia, ingeniería, derecho
y educación)y educación).
Arreglos multidimensionales:Arreglos multidimensionales:
Año
1
2
3 D
E
Gé
Facultad
Cantidad de estudiantes que cursan el
tercer año, de género femenino (F)
4
5
M F
M
F
I
Género de la facultad de medicina.
Arreglos Bidimensionales: MatricesArreglos Bidimensionales: Matrices
Es un tipo de arreglo, cuyos elementos seEs un tipo de arreglo, cuyos elementos se
pueden referenciar por dos subíndices.
Existen grupos de datos que se representanExisten grupos de datos que se representan
mejor en forma de tabla o matriz con dos
subíndices. Ejemplos típicos de tablas oj p p
matrices son:
• Distancias entre ciudades.
• Horarios.
• Informes de ventas periódicas.Informes de ventas periódicas.
Arreglos Bidimensionales: matricesArreglos Bidimensionales: matrices
Un arreglo bidimensional se puedeUn arreglo bidimensional se puede
considerar como un vector de vectores.
Es un conjunto de elementos todos delEs un conjunto de elementos, todos del
mismo tipo, en el cual el orden de los
componentes es significativo y en el quecomponentes es significativo, y en el que
se necesitan especificar dos subíndices
para poder identificar cada elemento delpara poder identificar cada elemento del
arreglo.
Arreglos Bidimensionales: matricesArreglos Bidimensionales: matrices
Un arreglo bidimensional almacena laUn arreglo bidimensional almacena la
información que relaciona dos variables,
características o factorescaracterísticas o factores.
Las filas representan una de las variables y
las columnas la otra variablelas columnas la otra variable.
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Matriz A:
fila 1, columna 1
(1,1)
30
Fila 1
30Fila 2
Fila 3
Fila 4
150Fila 5
C l 1 C l 2 C l 6Columna 1 Columna 2 Columna 6
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Matriz A:
Subíndice j
para las columnas
A[2,5]
3030
Subíndice i
para las filas
150
A[5,2]
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Notación algorítmica para declarar matrices:
tipo
<nombre del tipo arreglo> =arreglo [1..F,1..C] de <tipo de dato>
var
identificador de la variable de este tipo: <nombre del tipo arreglo>:
Ej lEjemplo:
tipo
notas = arreglo [1..5, 1..6] de entero
varvar
A, B: notas (*Se están declarando dos matrices de números enteros
que tiene 5 filas y 6 columnas*)
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Un arreglo bidimensional se dice que tiene
F*C l t d d F l ú dF*C elementos, donde F es el número de
filas y C el número de columnas.
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Operaciones con matrices:Operaciones con matrices:
1. Asignación.
2 L t / it2. Lectura/escritura.
3. Recorrido secuencial: Por fila
Por columna
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
1. Asignación: consiste en asignar directamenteg g
un valor a cualquier elemento de la matriz.
Ejemplo: A[1,1] ← 3
N l i i lNormalmente se requiere asignar valores a
varios o todos los elementos de una matriz,
para lo cual se usa un recorrido secuencialpara lo cual se usa un recorrido secuencial.
2. Lectura/escritura: normalmente se realiza
usando un recorrido secuencial. Pero una
instrucción simple de lectura/escritura podría
ser:
leer(A[2 3]) lectura del elemento en la fila 2leer(A[2,3]) lectura del elemento en la fila 2
columna 3 de la matriz A.
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
3. Recorrido secuencial: Se puede acceder a losp
elementos de una matriz para introducir datos
(leer) en ella, o bien para visualizar su contenido
(escribir) realizar comparaciones búsquedas(escribir), realizar comparaciones, búsquedas
de elementos o cualquier otro tipo de operación.
• Esta operación se realiza usando estructuras deEsta operación se realiza usando estructuras de
repetición, cuyas variables de control se utilizan
como subíndices de la matriz (por ejemplo i, j).
• El incremento del contador del bucle producirá
el tratamiento sucesivo de los elementos de la
matrizmatriz.
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
El recorrido secuencial se puede hacer por filas oEl recorrido secuencial se puede hacer por filas o
por columnas.
Recorrido secuencial por filas:p
desde i ← 1 hasta 3 hacer
desde j ← 1 hasta 4 hacer
leer(A[i,j])
fin_desde
fin desdefin_desde
Arreglos bidimensionales: matricesArreglos bidimensionales: matrices
Recorrido secuencial por columnas:Recorrido secuencial por columnas:
desde j ← 1 hasta 4 hacer
desde i ← 1 hasta 3 hacer
leer(A[i,j])
fin desdefin_desde
fin_desde
Ejemplo 1: Inicializar la matriz A de 10 filas y
4 columnas con un valor constante dado por4 columnas con un valor constante dado por
el usuario.
l it i i i li ió t ialgoritmo inicialización_matriz
const
F=10
C=4
titipo
matriz =arreglo [1..F, 1..C] de entero
var
A:matriz
i j k ti, j, k:entero
Inicio
escribir(‘Introduzca el valor con el que desea inicializar la matriz: ‘)
leer(k)
d d i 1 h t F hdesde i ← 1 hasta F hacer
desde j ← 1 hasta C hacer
A[i,j] ← k
fin_desde
fi d dfin_desde
fin.
Ejemplos de matricesEjemplos de matrices
Ejemplo 2: Escribir un algoritmo que permitaEjemplo 2: Escribir un algoritmo que permita
obtener la suma de los elementos positivos y la
suma de los elementos negativos de una matriz
T, que tiene 2 filas y 10 columnas.
Ejemplo 3: Escribir un algoritmo que obtenga la
suma de los elementos de cada una de las filas
y de cada una de las columnas de una matriz de
3 filas y 2 columnas3 filas y 2 columnas.
Ejemplos de matricesEjemplos de matrices
Ejemplo 4: Escriba un algoritmo que realiceEjemplo 4: Escriba un algoritmo que realice
la suma de todos los elementos de una
matriz B de 5 filas y 5 columnas.y
Ejemplo 5: El jefe de recursos humanos de
una tienda de 8 departamentos, deseap
registrar la asistencia de los trabajadores
cada día de la semana en cada
d t t bt l i i tdepartamento, para obtener la siguiente
información:
Ejemplos de matricesEjemplos de matrices
a) La cantidad de trabajadores que) j q
laboraron cada día de la semana.
b) El departamento al que más asistieronb) El departamento al que más asistieron
sus trabajadores durante la semana.
c) La cantidad de trabajadores quec) La cantidad de trabajadores que
asistieron el día sábado y el día
domingodomingo.
d) A cuál departamento asistieron la menor
tid d d t b j d d t lcantidad de trabajadores durante la
semana.
Ejemplo 6: En Mérida existen 4 estaciones metereológicas,
cada una de ellas registra la temperatura promediocada una de ellas registra la temperatura promedio
mensual (temperatura mínima medida: 8°C y
temperatura máxima medida: 32°C). Si a Ud. le
proporcionan dicha información para el año 2011.
Escriba un algoritmo que determine:
– La temperatura promedio en el año 2011, registrada por las 4La temperatura promedio en el año 2011, registrada por las 4
estaciones.
– La temperatura promedio en el año 2011, registrada por las
estaciones 2 y 4.estaciones 2 y 4.
– Los meses del año que tuvieron una temperatura promedio
superior a la temperatura promedio en el año 2011, registrada
por las 4 estaciones.por las 4 estaciones.
Debe Validar las entradas y dibujar las estructuras de datos que
emplee en la solución del problema.
Ejemplo 7: Se van a registrar los votos de 50 personas
para las elecciones de alcalde de la ciudad de Mérida,p ,
en la cual participan cuatro candidatos. Cada persona
puede votar por un solo candidato el cual se registra con
un uno y por los candidatos que no votó con un ceroun uno, y por los candidatos que no votó con un cero.
Haciendo uso de una matriz para registrar los votos,
escriba un algoritmo que permita determinar:
a) La cantidad de votos que obtuvo cada uno de los
cuatro candidatos.
b) La posición final ocupada por cada candidatob) La posición final ocupada por cada candidato.
c) El candidato ganador.
d) El candidato por el que menos votaron estas 50d) El candidato por el que menos votaron estas 50
personas.
e) Por cuál candidato votó el votante 5.
Ejemplo 8: En una zapatería se conocen las ventas
l d di d l d t d dmensuales de diez modelos de zapatos desde enero
hasta junio del 2012, cuyo inventario inicial fue de 30
pares de cada modelo. Escriba un algoritmo quep g q
proporcione la información que necesita el dueño para
realizar los pedidos del segundo semestre del año:
a) ¿Cuáles modelos de zapatos debe pedir porque yaa) ¿Cuáles modelos de zapatos debe pedir porque ya
no tiene existencia?
b) ¿Cuál modelo fue el menos vendido?) ¿
c) ¿En qué mes se vendieron más zapatos?
d) ¿Cuál es el mes en que más se vendieron zapatos
de los modelos 3 y 6?
e) ¿Total de pares de zapatos vendidos en estos 6
meses en dicha zapatería?meses, en dicha zapatería?

Más contenido relacionado

La actualidad más candente

Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Simeon Bordones
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionSneydert Jhenz
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)jairml
 
Estructura de Datos Arreglos
Estructura de Datos ArreglosEstructura de Datos Arreglos
Estructura de Datos Arreglosguestc906c2
 
6 A Arrays
6 A Arrays6 A Arrays
6 A Arraysjcpp67
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosJanet Brigyth Camacho Medina
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Andres Garcia Garcia
 
Expo array
Expo arrayExpo array
Expo arrayEd Burke
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacionlaryenso
 
Vectores, matrices y estructuras
Vectores, matrices y estructurasVectores, matrices y estructuras
Vectores, matrices y estructurasrichmadriz
 

La actualidad más candente (20)

Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)
 
Estructura de Datos Arreglos
Estructura de Datos ArreglosEstructura de Datos Arreglos
Estructura de Datos Arreglos
 
6 A Arrays
6 A Arrays6 A Arrays
6 A Arrays
 
arrays
arraysarrays
arrays
 
Tipo de Arreglos
Tipo de ArreglosTipo de Arreglos
Tipo de Arreglos
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Expo array
Expo arrayExpo array
Expo array
 
Cap06
Cap06Cap06
Cap06
 
Vectores y Matrices
Vectores y MatricesVectores y Matrices
Vectores y Matrices
 
71
7171
71
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacion
 
Array
Array Array
Array
 
Vectores, matrices y estructuras
Vectores, matrices y estructurasVectores, matrices y estructuras
Vectores, matrices y estructuras
 

Destacado

Relatório inicial da reestruturação do colegiado setorial de música (2)
Relatório inicial da reestruturação do colegiado setorial de música (2)Relatório inicial da reestruturação do colegiado setorial de música (2)
Relatório inicial da reestruturação do colegiado setorial de música (2)Manoel Neto
 
Employee Passion for Brand Workbook
Employee Passion for Brand WorkbookEmployee Passion for Brand Workbook
Employee Passion for Brand WorkbookRussell Cummings
 
Grade9, U1 - L6-Classification of matter
Grade9, U1 - L6-Classification of matterGrade9, U1 - L6-Classification of matter
Grade9, U1 - L6-Classification of mattergruszecki1
 
2014 pub apoyo_orienta_guia_tdh_orientacion
2014 pub apoyo_orienta_guia_tdh_orientacion2014 pub apoyo_orienta_guia_tdh_orientacion
2014 pub apoyo_orienta_guia_tdh_orientacionlina montoya
 
Thesis Statements
Thesis StatementsThesis Statements
Thesis Statementsrlewitzki
 
La paradoja de Elvania Vaamonde
La paradoja de Elvania VaamondeLa paradoja de Elvania Vaamonde
La paradoja de Elvania VaamondeElvania
 
U1-L2 Particle theory of matter
U1-L2 Particle theory of matterU1-L2 Particle theory of matter
U1-L2 Particle theory of mattergruszecki1
 
Subregistro de los problemas laborales y sus implicaciones
Subregistro de los problemas laborales y sus implicacionesSubregistro de los problemas laborales y sus implicaciones
Subregistro de los problemas laborales y sus implicacionesdaniel suarez
 
Grade 9, U1-L3 Phys & Chem Prop
Grade 9, U1-L3 Phys & Chem PropGrade 9, U1-L3 Phys & Chem Prop
Grade 9, U1-L3 Phys & Chem Propgruszecki1
 
Tema 3. Seguridad en las Comunicaciones
Tema 3. Seguridad en las ComunicacionesTema 3. Seguridad en las Comunicaciones
Tema 3. Seguridad en las ComunicacionesFrancisco Medina
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect AndromedaElectronic Arts / DICE
 
Report-Fog Based Emergency System For Smart Enhanced Living Environment
Report-Fog Based Emergency System For Smart Enhanced Living EnvironmentReport-Fog Based Emergency System For Smart Enhanced Living Environment
Report-Fog Based Emergency System For Smart Enhanced Living EnvironmentKEERTHANA M
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteElectronic Arts / DICE
 
Transmision 2
Transmision 2Transmision 2
Transmision 2yorkelis
 
Building Non-Linear Narratives in Horizon Zero Dawn
Building Non-Linear Narratives in Horizon Zero DawnBuilding Non-Linear Narratives in Horizon Zero Dawn
Building Non-Linear Narratives in Horizon Zero DawnGuerrilla
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
Presentación tema 5 jessica alvarez
Presentación tema 5  jessica alvarezPresentación tema 5  jessica alvarez
Presentación tema 5 jessica alvarezjessica alvarez
 

Destacado (20)

Burj kaliffa 01
Burj kaliffa 01Burj kaliffa 01
Burj kaliffa 01
 
Relatório inicial da reestruturação do colegiado setorial de música (2)
Relatório inicial da reestruturação do colegiado setorial de música (2)Relatório inicial da reestruturação do colegiado setorial de música (2)
Relatório inicial da reestruturação do colegiado setorial de música (2)
 
Employee Passion for Brand Workbook
Employee Passion for Brand WorkbookEmployee Passion for Brand Workbook
Employee Passion for Brand Workbook
 
Grade9, U1 - L6-Classification of matter
Grade9, U1 - L6-Classification of matterGrade9, U1 - L6-Classification of matter
Grade9, U1 - L6-Classification of matter
 
2014 pub apoyo_orienta_guia_tdh_orientacion
2014 pub apoyo_orienta_guia_tdh_orientacion2014 pub apoyo_orienta_guia_tdh_orientacion
2014 pub apoyo_orienta_guia_tdh_orientacion
 
Thesis Statements
Thesis StatementsThesis Statements
Thesis Statements
 
Clase sociales 5°-02-27-17_racismo y sexismo
Clase sociales 5°-02-27-17_racismo y sexismoClase sociales 5°-02-27-17_racismo y sexismo
Clase sociales 5°-02-27-17_racismo y sexismo
 
La paradoja de Elvania Vaamonde
La paradoja de Elvania VaamondeLa paradoja de Elvania Vaamonde
La paradoja de Elvania Vaamonde
 
U1-L2 Particle theory of matter
U1-L2 Particle theory of matterU1-L2 Particle theory of matter
U1-L2 Particle theory of matter
 
Subregistro de los problemas laborales y sus implicaciones
Subregistro de los problemas laborales y sus implicacionesSubregistro de los problemas laborales y sus implicaciones
Subregistro de los problemas laborales y sus implicaciones
 
Encontro Associados Q1 @ Banco Original
Encontro Associados Q1 @ Banco OriginalEncontro Associados Q1 @ Banco Original
Encontro Associados Q1 @ Banco Original
 
Grade 9, U1-L3 Phys & Chem Prop
Grade 9, U1-L3 Phys & Chem PropGrade 9, U1-L3 Phys & Chem Prop
Grade 9, U1-L3 Phys & Chem Prop
 
Tema 3. Seguridad en las Comunicaciones
Tema 3. Seguridad en las ComunicacionesTema 3. Seguridad en las Comunicaciones
Tema 3. Seguridad en las Comunicaciones
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
Report-Fog Based Emergency System For Smart Enhanced Living Environment
Report-Fog Based Emergency System For Smart Enhanced Living EnvironmentReport-Fog Based Emergency System For Smart Enhanced Living Environment
Report-Fog Based Emergency System For Smart Enhanced Living Environment
 
High Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in FrostbiteHigh Dynamic Range color grading and display in Frostbite
High Dynamic Range color grading and display in Frostbite
 
Transmision 2
Transmision 2Transmision 2
Transmision 2
 
Building Non-Linear Narratives in Horizon Zero Dawn
Building Non-Linear Narratives in Horizon Zero DawnBuilding Non-Linear Narratives in Horizon Zero Dawn
Building Non-Linear Narratives in Horizon Zero Dawn
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Presentación tema 5 jessica alvarez
Presentación tema 5  jessica alvarezPresentación tema 5  jessica alvarez
Presentación tema 5 jessica alvarez
 

Similar a Unidad5

Estructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptEstructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptAndersonHernandezara
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matricesflaquita_dany
 
Programacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglosProgramacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arregloscarlos1518
 
Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11María C. Plata
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxRam Vazquez
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]herminiajimenez123
 
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxOBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxjuan gonzalez
 
Arreglos
ArreglosArreglos
Arregloslichic
 
Arreglos Unidimensionales - Vectores.pptx
Arreglos Unidimensionales - Vectores.pptxArreglos Unidimensionales - Vectores.pptx
Arreglos Unidimensionales - Vectores.pptxDanielFelipeTovarTri
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matricesSohar Carr
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Diego Maxdj Chicaiza
 

Similar a Unidad5 (20)

Estructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptEstructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.ppt
 
arreglos.ppt
arreglos.pptarreglos.ppt
arreglos.ppt
 
Uso vectores
Uso vectoresUso vectores
Uso vectores
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matrices
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Programacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglosProgramacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglos
 
Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11Guia 2 vectores y matrices programacion 11
Guia 2 vectores y matrices programacion 11
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 
Estructuras
Estructuras Estructuras
Estructuras
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]
 
Areglos y registros
Areglos y registrosAreglos y registros
Areglos y registros
 
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxOBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Arreglos Unidimensionales - Vectores.pptx
Arreglos Unidimensionales - Vectores.pptxArreglos Unidimensionales - Vectores.pptx
Arreglos Unidimensionales - Vectores.pptx
 
Vectores en programación
Vectores en programaciónVectores en programación
Vectores en programación
 
Grupo
GrupoGrupo
Grupo
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
Estructuras estáticas de datos
Estructuras estáticas de datosEstructuras estáticas de datos
Estructuras estáticas de datos
 

Último

MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHMARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHkarlinda198328
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxCONSTRUCTORAEINVERSI3
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassJhonnyvalenssYupanqu
 
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESAS
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESASLOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESAS
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESASemilyacurio2005
 
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESAS
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESASCONSTITUCIÓN, CREACION Y GESTION DE EMPRESAS
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESASJorgeLuisEspinolaMar
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxDr. Edwin Hernandez
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxgabyardon485
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfJaquelinRamos6
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-ComunicacionesIMSA
 
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDINGIDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDINGAndresGEscobar
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxedwinrojas836235
 
sistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxsistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxJaredmoisesCarrillo
 
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxTEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxFrancoSGonzales
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxCORPORACIONJURIDICA
 
Evaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalEvaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalssuser4a0361
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4hassanbadredun
 
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODA
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODATEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODA
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODACarmeloPrez1
 
PPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfPPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfihmorales
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzassuperamigo2014
 

Último (20)

MARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETHMARKETING SENSORIAL CONTENIDO, KARLA JANETH
MARKETING SENSORIAL CONTENIDO, KARLA JANETH
 
Walmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdfWalmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdf
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
 
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESAS
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESASLOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESAS
LOS MODELOS DE LA COMUNICACIÓN HUMANA 1° ADM. DE EMPRESAS
 
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESAS
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESASCONSTITUCIÓN, CREACION Y GESTION DE EMPRESAS
CONSTITUCIÓN, CREACION Y GESTION DE EMPRESAS
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptx
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
 
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDINGIDENTIDAD Y MANUAL DE MARCA PARA BRANDING
IDENTIDAD Y MANUAL DE MARCA PARA BRANDING
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
 
sistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxsistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptx
 
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxTEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
 
Evaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalEvaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo final
 
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
Apuntadorkeurjeh4jj4by un 4hh4j4u4jj4h4y4jh4
 
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODA
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODATEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODA
TEMA N° 3.2 DISENO DE ESTRATEGIA y ANALISIS FODA
 
PPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfPPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdf
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzas
 

Unidad5

  • 1. Unidad 5. Arreglos:g Vectores y Matrices Prof. Eliana Guzmán U. S t A 2015Semestre A-2015
  • 2. Estructuras de datosEstructuras de datos • Los arreglos son un tipo de estructura de datos. • Una estructura de datos es una colección de datos que se caracteriza por su organización y las operaciones que se definen en ella.y p q • Las estructuras de datos son muy importantes en los sistemas de computadoraimportantes en los sistemas de computadora. • Los tipos de datos más frecuentes utilizados en los diferentes lenguajes de programaciónen los diferentes lenguajes de programación son:
  • 4. Estructuras de datosEstructuras de datos Las estructuras de datos estáticas sonLas estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes de que elq programa se ejecute y no puede modificarse durante la ejecución del E t t t táprograma. Estas estructuras están implementadas en casi todos los lenguajes de programación: arregloslenguajes de programación: arreglos (vector/matriz), registros, ficheros o archivos conjuntos (Pascal)archivos, conjuntos (Pascal).
  • 5. Estructuras de datosEstructuras de datos Las estructuras de datos dinámicas no tienenLas estructuras de datos dinámicas no tienen las limitaciones o restricciones en el tamaño de memoria ocupada, que son propias de las estructuras estáticas. Mediante el uso de un tipo de dato específico denominado puntero, es ibl t i t t d d tposible construir estructuras de datos dinámicas, que son soportadas por la mayoría de los lenguajes Las estructuras de datosde los lenguajes. Las estructuras de datos dinámicas por excelencia son: las listas (enlazadas, pilas y colas), árboles (binarios,( , p y ), ( , árbol-b) y grafos.
  • 6. ArreglosArreglos Un arreglo (matriz o vector) es un conjuntoUn arreglo (matriz o vector) es un conjunto finito y ordenado de elementos homogéneos. La propiedad ordenadosg p p significa que el elemento primero, segundo, tercero,…, n-ésimo de un l d id tifi darreglo puede ser identificado. Los elementos de un arreglo son h é d i t d d lhomogéneos, es decir, todos son del mismo tipo de dato (cadena, carácter, lógico entero o real)lógico, entero o real).
  • 7. Arreglos unidimensionales: vectores • El tipo más simple de arreglo es el unidimensional op p g vector. Por ejemplo, un vector de una dimensión denominado NOTAS[i], que consta de n elementos se puede representar así:p p El bí di í di d l t [1 2 3 i ]• El subíndice o índice de un elemento [1,2,3,…,i,…,n] designa la posición que ocupa cada elemento del vector. • Solo el vector global tiene nombre (NOTAS). Los elementos del vector se referencian por su subíndice o índice, es decir, su posición relativa en el vector.p
  • 8. Arreglos unidimensionales: vectores Notación algorítmica para declarar vectores: titipo <nombre del tipo arreglo> = arreglo [dimensiones] de <tipo de dato> var identificador de la variable: <nombre del tipo arreglo>identificador de la variable: <nombre del tipo arreglo> Ejemplos: tipo tipotipo tipo nombres= arreglo [1..10] de caracter número=arreglo [1..100] de entero var var N,M: nombres NUM: número se están declarando dos vectores se está declarando un vector N y M de 10 elementos cada uno NUM de 100 elementos de tipo de tipo carácter. entero.
  • 9. Arreglos unidimensionales: O i VOperaciones con Vectores Las operaciones que se pueden realizar conLas operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema usando la programación son: • Recorrido (acceso secuencial). • Lectura/escritura. • Asignación. • Actualización (añadir, borrar, insertar).ctua ac ó (a ad , bo a , se ta ) • Ordenación. • BúsquedaBúsqueda.
  • 10. 1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial) • Se puede acceder a cada elemento de unSe puede acceder a cada elemento de un vector para introducir datos en él (leer) ó bien para visualizar su contenidobien para visualizar su contenido (escribir). • A la operación de efectuar una acción• A la operación de efectuar una acción general sobre todos los elementos de un vector se le denomina recorridovector, se le denomina recorrido secuencial del vector.
  • 11. 1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial) • Estas operaciones se realizan utilizandoEstas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control por ejemplo i se utilizan comocontrol, por ejemplo i, se utilizan como subíndices del vector (por ejemplo S[i]). • El incremento del contador del bucle• El incremento del contador del bucle producirá el acceso sucesivo a cada elemento del vectorelemento del vector.
  • 12. 1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial) Normalmente se utiliza la estructura de repeticiónNormalmente se utiliza la estructura de repetición desde, ya que se conoce de antemano la cantidad de veces que se desea repetir el bucle. Por ejemplo para un vector de 20 elementos: desde i ← 1 hasta 20 hacer escribir(‘Introduzca el elemento ‘ ,i, ‘del vector F: ’) leer(F[i]) fin_desde_
  • 13. 1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial) También se pueden utilizar las estructuras dep repetición mientras y repetir: i ← 1 mientras (i <= 20) hacer escribir(‘Introduzca el elemento ‘ ,i, ‘del vector F: ’) leer(F[i]) i i 1i ← i + 1 fin_mientras
  • 14. 1. Recorrido (acceso secuencial)1. Recorrido (acceso secuencial) i ← 1i ← 1 repetir ibi (‘I t d l l t ‘ i ‘d lescribir(‘Introduzca el elemento ‘ ,i, ‘del vector F: ’) leer(F[i]) i ← i + 1 hasta_que (i > 20)
  • 15. 2 Lectura/escritura2. Lectura/escritura La lectura/escritura de datos en arreglosLa lectura/escritura de datos en arreglos normalmente se realiza con estructuras repetitivas (usando un recorrido secuencial). Las instrucciones simples de lectura/escritura se representarán como: • leer(A[5]) lectura del elemento 5 del vector A • escribir(A[8]) escribir el elemento 8 del vector A
  • 16. 2 Lectura/escritura2. Lectura/escritura Generalmente se desea leer o escribir el vector completo, para lo cual se debe hacer un recorrido del vector: desde i←1 hasta n hacer escribir(‘Introduzca el elemento ‘ ,i, ‘del( , , vector F: ’) leer(F[i]) fi d dfin_desde
  • 17. 2 Lectura/escritura2. Lectura/escritura Para escribir el vector F:Para escribir el vector F: d d i 1 h t hdesde i←1 hasta n hacer escribir(F[i]) fin_desde
  • 18. 2 Lectura/escritura2. Lectura/escritura Para facilitar futuras operaciones con elPara facilitar futuras operaciones con el vector, se recomienda inicializar el vector antes de operar con él Puede usarseantes de operar con él. Puede usarse cualquier valor que respete el tipo de dato del vector y que no sea una entrada válidadel vector y que no sea una entrada válida de la variable involucrada: desde i ← 1 hasta n hacerdesde i ← 1 hasta n hacer nombre[i] ← ‘*’ fin desdefin_desde
  • 19. 3 Asignación3. Asignación La asignación de valores a un elemento delLa asignación de valores a un elemento del vector se realizará con la instrucción de asignación:asignación: • A[29] ← 5 asigna el valor 5 al elemento 29 del vector A29 del vector A • Suma ← A[1] + A[3] • A[3] ← A[3] + 10.8 • A[1] ← A[4] + A[5][ ] [ ] [ ]
  • 20. 3 Asignación3. Asignación • Si se desea asignar valores a todos losSi se desea asignar valores a todos los elementos de un vector, se debe recurrir a estructuras repetitivas e incluso selectivas.p • Ejemplo: si se desea dar el mismo valor a todos los elementos del vector A de tipop entero: desde i ← 1 hasta 5 hacer A[i] ← 8 fin_desde
  • 21. Ejemplos de vectores 1 Escribir un algoritmo que determine el Ejemplos de vectores 1. Escribir un algoritmo que determine el mayor valor de una lista de 50 números reales e indique la posición que ocupareales e indique la posición que ocupa.
  • 22. Ejemplos de vectoresEjemplos de vectores 2 Escribir un algoritmo que permita calcular2. Escribir un algoritmo que permita calcular la desviación estándar de una lista de N números El valor de N no puede sernúmeros. El valor de N no puede ser mayor a 15. 1 )( 1 2 − − = ∑= n mediax desviación n i i 1n
  • 23. Ejemplos de vectoresEjemplos de vectores 3 Escribir un algoritmo que determine:3. Escribir un algoritmo que determine: a) el promedio de N números enteros e indique cuáles elementos son mayores a dichocuáles elementos son mayores a dicho promedio. b) la suma de los números pares e impares.b) la suma de los números pares e impares. 4. Escriba un algoritmo que determine si dos vectores de treinta caracteres sondos vectores de treinta caracteres son iguales.
  • 24. 4 Actualización4. Actualización La operación de actualización de un vectorLa operación de actualización de un vector consta a su vez de tres operaciones más elementales:elementales: • Añadir elementos. I t l t• Insertar elementos. • Borrar elementos.
  • 25. 4 Actualización4. Actualización Añadir elementos: es la operación deAñadir elementos: es la operación de agregar un nuevo elemento al final del vector La única condición necesaria paravector. La única condición necesaria para esta operación consistirá en la comprobación de que existe espaciocomprobación de que existe espacio suficiente para el nuevo elemento, dicho de otra manera que el vector no contengade otra manera, que el vector no contenga todos los elementos con que fue definido.
  • 26. 4 Actualización4. Actualización Ejemplo: se tiene un vector de edades definidoEjemplo: se tiene un vector de edades definido para 7 elementos, pero ya tiene almacenado 5 elementos EDADES[1], EDADES[2], EDADES[3], EDADES[4] y EDADES[5]. Se podrán añadir dos elementos más al final del t i l ió d i ióvector con una simple operación de asignación: • EDADES[6] ← 23 EDADES[ ] 20• EDADES[7] ← 20 (Si conoce los espacio del vector que están libres.)
  • 27. 4 Actualización4. Actualización Si no se sabe si el vector tiene espacios disponibles, primero debe determinarse esto antes de intentar añadirprimero debe determinarse esto antes de intentar añadir elementos al vector: desde i ← 1 hasta n hacer si (edades[i]=-1) entoncessi (edades[i] 1) entonces escribir(‘Introduzca una edad:’) leer(edades[i]) si nosi_no cont ← cont + 1 fin_si fin desdefin_desde si (cont=n) entonces escribir(‘El vector no tiene espacio para añadir más elementos’) fin sifin_si
  • 28. 4 Actualización4. Actualización Insertar elementos: consiste en introducir unInsertar elementos: consiste en introducir un elemento en el interior de un vector ordenado. En este caso se necesita un desplazamiento previo hacia abajo, para colocar el nuevo elemento en su posición relativa. Ejemplo: se tiene un vector de 8 elementos que contiene nombres ordenados alfabéticamente y se desea insertar dos nuevos nombres:se desea insertar dos nuevos nombres: Fernando y Luis.
  • 29. 4 Actualización4. Actualización Como Fernando está entre Carlos y Gerardo se deben desplazar hacia abajo los elementos 3, 4 y 5 que pasarán a ocupar las posiciones relativas 4, 5 y 6. P t i t d b li l i ió l b L iPosteriormente debe realizarse la misma operación con el nombre Luis que ocupará la posición 6.
  • 30. El algoritmo que realiza esta operación para un vector de n elementos es el siguiente, suponiendo que hay espacio suficiente en el vector: algoritmo insertar_elemento const escribir(‘Introduzca el elemento:’) leer(nuevo) desde i ← 1 hasta n hacern=500 tipo vector=arreglo [1 .. n] de cadena[50] var desde i ← 1 hasta n hacer si (NOMBRES[i]<nuevo) entonces cont ← cont + 1 fin_si fin desdevar NOMBRES: vector nuevo: cadena[50] Pos, ocupada, cont: entero fin_desde Pos ← cont + 1 i ←ocupada mientras (i >= Pos) hacer NOMBRES[i+1] ← NOMBRES[i]inicio desde i ← 1 hasta n hacer si (NOMBRES[i]<>’vacio’) entonces NOMBRES[i+1] ← NOMBRES[i] i ← i - 1 fin_mientras NOMBRES[Pos] ← nuevo ocupada ← ocupada + 1 fin_si fin_desde ocupada ← ocupada + 1 fin_si fin si (ocupada=n) entonces escribir(‘No se pueden insertar elementos’) si_no
  • 31. 4 Actualización4. Actualización Borrar elementos: la operación de borrar elBorrar elementos: la operación de borrar el último elemento de un vector no representa ningún problemarepresenta ningún problema. El borrado de un elemento del interior del vector provoca el movimiento hacia arribavector provoca el movimiento hacia arriba de los elementos inferiores a él para reorganizar el vectorreorganizar el vector.
  • 32. 4 Actualización4. Actualización Si desea borrar elemento 3 (Gerardo) debe desplazar3 (Gerardo), debe desplazar hacia arriba los elementos de las posiciones 4 (Lorena) y 5 (Marcos)y 5 (Marcos).
  • 33. 4. Actualización Ejemplo: en el vector del ejemplo anterior NOMBRES, borrar el elemento que el usuario desee.q algoritmo borrar_elemento const N=500N=500 tipo vector = arreglo [1 .. N] de cadena[50] var NOMBRES: vector j,ocupada: entero nom: cadena[50] Inicio escribir(‘Introduzca el nombre a borrar:’)escribir( Introduzca el nombre a borrar: ) leer(nom)
  • 34. 4 Actualización4. Actualización desde i ← 1 hasta N hacer si (NOMBRES[i]=nom) entonces j ← i fi ifin_si fin_desde desde i ← j hasta N 1 hacerdesde i ← j hasta N-1 hacer NOMBRES[i] ← NOMBRES[i+1] fin desde_desde ocupada ← ocupada -1 fin
  • 35. 5 Métodos de ordenamiento5. Métodos de ordenamiento
  • 36. Ordenación (clasificación)Ordenación (clasificación) • Es la operación de organizar un conjuntoEs la operación de organizar un conjunto de datos en algún orden o secuencia específica, tal como creciente op decreciente para datos numéricos o alfabéticamente para datos de tipo á t d d tcarácter o cadena de caracteres. • Operaciones típicas de ordenación son: li t d ú hi d li t dlista de números, archivos de clientes de banco, nombres en una agenda telefónica, entre otrasentre otras.
  • 37. Ordenación (clasificación)Ordenación (clasificación) • En síntesis la ordenación significa ponerEn síntesis, la ordenación significa poner objetos en orden ascendente o descendentedescendente. • El propósito final de la ordenación es facilitar la manipulación de datos en unfacilitar la manipulación de datos en un vector.
  • 38. Ordenación (clasificación)Ordenación (clasificación) Los métodos directos son los que seLos métodos directos son los que se realizan en el espacio ocupado por el arreglo Los que vamos a estudiar son:arreglo. Los que vamos a estudiar son: • Método de intercambio o burbuja. O d ió S l ió• Ordenación por Selección. • Ordenación por Inserción.
  • 39. Método de intercambio o de b b jburbuja Se basa en el principio de comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que estén todos ordenados.
  • 40. Método de intercambio o de b b jburbuja El elemento cuyo valor es mayor sube posición aEl elemento cuyo valor es mayor sube posición a posición hacia el final de la lista, al igual que las burbujas de aire en un depósito (si se ordena de forma ascendente). Tras realizar un recorrido completo por todo el vector, el elemento mencionado habrá subido en la lista y ocupará la última posición. E l d id l d lEn el segundo recorrido, el segundo elemento llegará a la penúltima posición, y así sucesivamentesucesivamente.
  • 41. Método de intercambio o de b b jburbuja Los pasos a dar son:p 1. Comparar A[1] y A[2], si están en orden, se mantienen como están, en caso contrario se i bi iintercambian entre si. 2. A continuación se comparan los elementos 2 y 3 de nuevo se intercambian si es necesario3, de nuevo se intercambian si es necesario. 3. El proceso continúa hasta que cada elemento del vector ha sido comparado con susde ecto a s do co pa ado co sus elementos adyacentes y se han realizado los intercambios necesarios.
  • 42. Método de intercambio o de b b jburbuja La acción de intercambiar entre sí losLa acción de intercambiar entre sí los valores de dos elementos A[i], A[i+1] es una acción compuesta que contiene lasuna acción compuesta que contiene las siguientes acciones, utilizando una variable auxiliar:variable auxiliar: A[i] A[i+1] 2 AUX 1 3
  • 43. Método de intercambio o de b b jburbuja En pseudocódigo:En pseudocódigo: AUX ← A[i] A[i] ← A[i+1]A[i] ← A[i+1] A[i+1] ← AUX
  • 44. Método de intercambio o de burbujaburbuja algoritmo burbuja1 const algoritmo burbuja2 const N=200 tipo vector=arreglo [1..N] de entero Var X: vector N=200 tipo vector =arreglo [1..N] de entero var X: vectorX: vector i, j, aux: entero inicio desde i ← 1 hasta N hacer leer(X[i]) fin desde X: vector i, j,aux: entero inicio desde i ← 1 hasta N hacer leer(X[i]) fin desdefin_desde desde i ← 1 hasta N-1 hacer desde j ← 1 hasta N-1 hacer si (X[j] > X[j+1]) entonces AUX ← X[j] fin_desde desde i ← 1 hasta N-1 hacer desde j ← 1 hasta N-i hacer si (X[j] > X[j+1]) entonces AUX ← X[j][j] X[j] ← X[j+1] X[j+1] ← AUX fin_si fin_desde fin desde [j] X[j] ← X[j+1] X[j+1] ← AUX fin_si fin_desde fin desdefin_desde desde i ← 1 hasta N hacer escribir(X[i]) fin_desde fin fin_desde desde i ← 1 hasta N hacer escribir(X[i]) fin_desde fin
  • 45. Método de ordenación por l ióselección Este método se basa en buscar el menorEste método se basa en buscar el menor elemento del vector y colocarlo en la primera posición Luego se busca elprimera posición. Luego se busca el segundo elemento más pequeño y se coloca en la segunda posición y asícoloca en la segunda posición, y así sucesivamente.
  • 46. Método de ordenación por l ióselección Los pasos sucesivos a dar son:Los pasos sucesivos a dar son: 1. Seleccionar el menor elemento del vector de n elementosn elementos. 2. Intercambiar dicho elemento con el primero. 3 Repetir estas operaciones con los n-13. Repetir estas operaciones con los n-1 elementos restantes, seleccionando el segundo elemento, continuar con los n-2g , elementos restantes hasta que sólo quede el mayor.
  • 47. Método de ordenación por l ióselección Pseudocódigo con estructura desde i i iinicio desde i hasta N-1 hacer AUX ← X[i] K ← iK ← i desde j ← i+1 hasta N hacer si (X[j] < AUX) entonces AUX ← X[j]AUX ← X[j] K ← j fin_si fin_desde_ X[K] ← X[i] X[i] ← AUX fin_desde fin
  • 48. Método de ordenación por i ióinserción El método se basa en comparaciones yEl método se basa en comparaciones y desplazamientos sucesivos. El algoritmo de ordenación de un vector X de Nde ordenación de un vector X de N elementos, se realiza con un recorrido de todo el vector y la selección e insercióntodo el vector y la selección e inserción del elemento correspondiente en el lugar adecuadoadecuado.
  • 49. Método de ordenación por i ióinserción Por usar la misma lógica con las que sePor usar la misma lógica con las que se ordenan las cartas, también se conoce con el nombre de método de la barajacon el nombre de método de la baraja.
  • 50. Método de ordenación por insercióninserciónalgoritmo método_inserción tipo vector = arreglo [1..10] de entero var X: vector i, j, k, aux: entero sw: lógico inicio desde i ← 2 hasta 10 hacer AUX ← X[i] K ← i – 1 sw ← falso mientras no(sw) y (K>=1) hacer si (aux<x[k]) entonces X[K+1] ← X[K] K ← K – 1 si_no sw ←verdadero fin_si fin_mientras X[K+1] ← AUX fin_desde fin.
  • 51. Métodos de búsqueda enMétodos de búsqueda en vectoresvectores
  • 52. Métodos de BúsquedaMétodos de Búsqueda • La recuperación de información, como ya se hap , y comentado, es una de las aplicaciones más importantes de las computadoras. L bú d fi l ió d• La búsqueda se refiere a la operación de encontrar la posición de un elemento entre un conjunto de elementos dados: lista tabla oconjunto de elementos dados: lista, tabla o fichero. • Existen diferentes algoritmos de búsqueda. El algoritmo elegido depende de la forma en que se encuentren organizados los datos.
  • 53. Métodos de BúsquedaMétodos de Búsqueda La operación de búsqueda de un elementoLa operación de búsqueda de un elemento X en un conjunto de elementos consiste en:en: 1. Determinar si X pertenece al conjunto y, en ese caso indicar su posición en élen ese caso, indicar su posición en él. 2. Determinar si X no pertenece al j tconjunto.
  • 54. Métodos de BúsquedaMétodos de Búsqueda Los métodos más usuales de búsquedaLos métodos más usuales de búsqueda son: • Búsqueda secuencial o lineal• Búsqueda secuencial o lineal. • Búsqueda binaria. • Búsqueda por transformación de claves (hash).
  • 55. Búsqueda secuencial o linealBúsqueda secuencial o lineal El método más sencillo de buscar unEl método más sencillo de buscar un elemento en un vector es explorar secuencialmente el vector (recorrer elsecuencialmente el vector (recorrer el vector), desde el primer elemento hasta el último Si se encuentra el elementoúltimo. Si se encuentra el elemento buscado visualizar un mensaje similar a ‘Elemento encontrado en la posición x’ enElemento encontrado en la posición x , en caso contrario visualizar un mensaje similar a ‘Elemento no existe en el vector’similar a Elemento no existe en el vector .
  • 56. Búsqueda secuencial o linealBúsqueda secuencial o lineal • En otras palabras la búsqueda secuencialEn otras palabras, la búsqueda secuencial compara cada elemento del vector con el valor deseado hasta que se encuentra yvalor deseado, hasta que se encuentra y termina de recorrer el vector completo. • La búsqueda secuencial no requiere• La búsqueda secuencial no requiere ningún registro por parte del vector por consiguiente no requiere que el vectorconsiguiente no requiere que el vector esté ordenado.
  • 57. Búsqueda secuencial o linealBúsqueda secuencial o lineal Este método tiene el inconveniente delEste método tiene el inconveniente del consumo excesivo de tiempo en la localización del elemento buscadolocalización del elemento buscado. Cuando el elemento buscado no se encuentra en el vector se verifican oencuentra en el vector, se verifican o comprueban sus n elementos. Por esto no es el método más adecuado para vectoreses el método más adecuado para vectores con un gran número de elementos.
  • 58. Búsqueda secuencial o linealq algoritmo búsqueda_secuencial const N=1000 si (cont=N) entonces tipo vector=arreglo [1..N] de entero var X: vector escribir(‘El elemento ‘,t,’ no se  encuentra en este vector’) fin_si fin. i, t, cont: entero inicio desde i ← 1 hasta N hacer leer(X[i]) fin. fin_desde escribir(‘Introduzca el elemento a buscar: ‘) leer(t) desde i ← 1 hasta N hacer si (X[i] = t) entonces escribir(‘Elemento encontrado en la posición ‘,i) si_no cont ← cont + 1 fin_si fin_desde
  • 59. algoritmo búsqueda_secuencial2 tipo vector =arreglo [1..20] de entero var X: vector i,j,t: entero encontrado: lógica i i iinicio desde i ← 1 hasta N hacer leer(X[i]) fin_desde ibi (‘I t d l l t b ‘)escribir(‘Introduzca el elemento a buscar: ‘) leer(t) encontrado ← falso desde i ← 1 hasta N hacer i (X[i] t) tsi (X[i] = t) entonces encontrado ← verdadero j ← i fin_si fi d dfin_desde si encontrado entonces escribir(‘Elemento encontrado en la posición ‘,j) si_no ibi (‘El t t d ’)escribir(‘Elemento no encontrado’) fin_si fin.
  • 60. Búsqueda binariaBúsqueda binaria Presupone una ordenación previa de losPresupone una ordenación previa de los elementos del vector. Este método se basa en la divisiónEste método se basa en la división sucesiva del vector en dos partes, y seguir dividiendo cada mitad hasta encontrar eldividiendo cada mitad hasta encontrar el elemento buscado.
  • 61. Búsqueda binariaBúsqueda binaria Utiliza un método de divide y vencerás paray p localizar el valor deseado. Con este método se examina primero el elemento l d l i l lcentral del vector, si este es el elemento buscado, entonces la búsqueda ha terminado. En caso contrario se determina si el elementoEn caso contrario se determina si el elemento buscado está en la primera o segunda mitad del vector, y a continuación se repite este proceso, utilizando el elemento central de esa parte del vector.
  • 62. Búsqueda binariaBúsqueda binaria Es un método eficiente siempre que elEs un método eficiente siempre que el vector esté ordenado. En la práctica esto suele suceder pero noEn la práctica esto suele suceder, pero no siempre es así. Por esta razón la búsqueda binaria exige una ordenaciónbúsqueda binaria exige una ordenación previa del vector.
  • 63. algoritmo búsqueda_binaria tipo vector=arreglo [1..500] de entero var X: vector i,j,t,k,primero,ultimo,central: entero encontrado: lógica I i iInicio escribir(‘Introduzca el valor a buscar: ‘) leer(k) primero ← 1 últi Núltimo ← N central ← trunc((primero+último)/2) mientras (primero <= último) y (X[central] <> K) hacer si (K < X[central]) entonces últi t l 1último ← central - 1 si_no primero ← central + 1 fin_si t l t (( i últi )/2)central ← trunc((primero+último)/2) fin_mientras si K = X[central] entonces escribir(‘Elemento encontrado en la posición ‘,central) isi_no escribir(‘Elemento no encontrado’) fin_si fin.
  • 64. Ejemplo 5: Un viajero conoce todos los t hi últi i j lgastos que hizo en su último viaje con la tarjeta de crédito, fueron 18 en total, los l d l ifi tcuales se pueden clasificar en cuatro tipos: comida, hospedaje, transporte y E ib l it hropa. Escriba un algoritmo, que haga uso de vectores, y le permita al viajero d t ideterminar: – Gastos totales discriminados por tipo. – Cantidad de gastos que realizó en comida. – Tipo de gasto en el que más invirtió dinero en el viaje.
  • 65. Ejemplo 6: Escriba un algoritmo que h i d d lhaciendo uso de un arreglo unidimensional de 100 elementos d i d CEDULA itdenominado CEDULA, permita: – Leer los 100 elementos por teclado. – Ordenar los números de cédula de forma ascendente. – Buscar si el número de cédula 19144473 se encuentra en el arreglo CEDULA e indicar la posición que ocupaposición que ocupa. – Determinar cuántos números de cédula son mayores a 19145954mayores a 19145954.
  • 66. Ejemplo 7: Se han registrado las notas definitivas de 58 estudiantes de Programación Digital ende 58 estudiantes de Programación Digital en un arreglo unidimensional llamado NOTAS. Cada calificación es un número entero entre 1 yy 20. Construya un algoritmo que le permita al profesor de esta asignatura obtener la siguiente información: – La nota promedio de la clase. – Las notas ordenadas de menor a mayorLas notas ordenadas de menor a mayor. – Nota más alta y más baja obtenida en esta sección de Programación Digital, e indicar los nombres de los estudiantes que las obtuvieronque las obtuvieron. – Cuántos estudiantes obtuvieron notas de 18, 19 ó 20. – Las notas que fueron mayores al promedio. El t j d t di t b d l t j d l– El porcentaje de estudiantes aprobados y el porcentaje de los reprobados.
  • 67. Arreglos Multidimensionales Los arreglos de varias dimensiones se Arreglos Multidimensionales Los arreglos de varias dimensiones se dividen en dos grandes grupos: • Arreglos bidimensionales: tablas o• Arreglos bidimensionales: tablas o matrices. A l ltidi i l• Arreglos multidimensionales.
  • 68. Arreglos multidimensionalesArreglos multidimensionales Un arreglo multidimensional, se puedeUn arreglo multidimensional, se puede definir de tres, cuatro y hasta n dimensiones. Se manejan los mismos conceptos para los subíndices que en los vectores.q Cada elemento del arreglo se puede identificar usando la cantidad de subíndices necesarios, por ejemplo en un arreglo de n dimensiones se escribirá: A[I I I I ]A[I1, I2, I3, …, In]
  • 69. Arreglos multidimensionalesArreglos multidimensionales Ejemplo: Un arreglo de tres dimensionesEjemplo: Un arreglo de tres dimensiones puede ser uno que contenga los datos relativos a la cantidad de estudiantes de unarelativos a la cantidad de estudiantes de una universidad de acuerdo a los siguientes criterios:criterios: – año (primero a quinto). género (femenino/masculino)– género (femenino/masculino). – facultad (medicina, farmacia, ingeniería, derecho y educación)y educación).
  • 70. Arreglos multidimensionales:Arreglos multidimensionales: Año 1 2 3 D E Gé Facultad Cantidad de estudiantes que cursan el tercer año, de género femenino (F) 4 5 M F M F I Género de la facultad de medicina.
  • 71. Arreglos Bidimensionales: MatricesArreglos Bidimensionales: Matrices Es un tipo de arreglo, cuyos elementos seEs un tipo de arreglo, cuyos elementos se pueden referenciar por dos subíndices. Existen grupos de datos que se representanExisten grupos de datos que se representan mejor en forma de tabla o matriz con dos subíndices. Ejemplos típicos de tablas oj p p matrices son: • Distancias entre ciudades. • Horarios. • Informes de ventas periódicas.Informes de ventas periódicas.
  • 72. Arreglos Bidimensionales: matricesArreglos Bidimensionales: matrices Un arreglo bidimensional se puedeUn arreglo bidimensional se puede considerar como un vector de vectores. Es un conjunto de elementos todos delEs un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en el quecomponentes es significativo, y en el que se necesitan especificar dos subíndices para poder identificar cada elemento delpara poder identificar cada elemento del arreglo.
  • 73. Arreglos Bidimensionales: matricesArreglos Bidimensionales: matrices Un arreglo bidimensional almacena laUn arreglo bidimensional almacena la información que relaciona dos variables, características o factorescaracterísticas o factores. Las filas representan una de las variables y las columnas la otra variablelas columnas la otra variable.
  • 74. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Matriz A: fila 1, columna 1 (1,1) 30 Fila 1 30Fila 2 Fila 3 Fila 4 150Fila 5 C l 1 C l 2 C l 6Columna 1 Columna 2 Columna 6
  • 75. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Matriz A: Subíndice j para las columnas A[2,5] 3030 Subíndice i para las filas 150 A[5,2]
  • 76. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Notación algorítmica para declarar matrices: tipo <nombre del tipo arreglo> =arreglo [1..F,1..C] de <tipo de dato> var identificador de la variable de este tipo: <nombre del tipo arreglo>: Ej lEjemplo: tipo notas = arreglo [1..5, 1..6] de entero varvar A, B: notas (*Se están declarando dos matrices de números enteros que tiene 5 filas y 6 columnas*)
  • 77. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Un arreglo bidimensional se dice que tiene F*C l t d d F l ú dF*C elementos, donde F es el número de filas y C el número de columnas.
  • 78. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Operaciones con matrices:Operaciones con matrices: 1. Asignación. 2 L t / it2. Lectura/escritura. 3. Recorrido secuencial: Por fila Por columna
  • 79. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices 1. Asignación: consiste en asignar directamenteg g un valor a cualquier elemento de la matriz. Ejemplo: A[1,1] ← 3 N l i i lNormalmente se requiere asignar valores a varios o todos los elementos de una matriz, para lo cual se usa un recorrido secuencialpara lo cual se usa un recorrido secuencial. 2. Lectura/escritura: normalmente se realiza usando un recorrido secuencial. Pero una instrucción simple de lectura/escritura podría ser: leer(A[2 3]) lectura del elemento en la fila 2leer(A[2,3]) lectura del elemento en la fila 2 columna 3 de la matriz A.
  • 80. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices 3. Recorrido secuencial: Se puede acceder a losp elementos de una matriz para introducir datos (leer) en ella, o bien para visualizar su contenido (escribir) realizar comparaciones búsquedas(escribir), realizar comparaciones, búsquedas de elementos o cualquier otro tipo de operación. • Esta operación se realiza usando estructuras deEsta operación se realiza usando estructuras de repetición, cuyas variables de control se utilizan como subíndices de la matriz (por ejemplo i, j). • El incremento del contador del bucle producirá el tratamiento sucesivo de los elementos de la matrizmatriz.
  • 81. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices El recorrido secuencial se puede hacer por filas oEl recorrido secuencial se puede hacer por filas o por columnas. Recorrido secuencial por filas:p desde i ← 1 hasta 3 hacer desde j ← 1 hasta 4 hacer leer(A[i,j]) fin_desde fin desdefin_desde
  • 82. Arreglos bidimensionales: matricesArreglos bidimensionales: matrices Recorrido secuencial por columnas:Recorrido secuencial por columnas: desde j ← 1 hasta 4 hacer desde i ← 1 hasta 3 hacer leer(A[i,j]) fin desdefin_desde fin_desde
  • 83. Ejemplo 1: Inicializar la matriz A de 10 filas y 4 columnas con un valor constante dado por4 columnas con un valor constante dado por el usuario. l it i i i li ió t ialgoritmo inicialización_matriz const F=10 C=4 titipo matriz =arreglo [1..F, 1..C] de entero var A:matriz i j k ti, j, k:entero Inicio escribir(‘Introduzca el valor con el que desea inicializar la matriz: ‘) leer(k) d d i 1 h t F hdesde i ← 1 hasta F hacer desde j ← 1 hasta C hacer A[i,j] ← k fin_desde fi d dfin_desde fin.
  • 84. Ejemplos de matricesEjemplos de matrices Ejemplo 2: Escribir un algoritmo que permitaEjemplo 2: Escribir un algoritmo que permita obtener la suma de los elementos positivos y la suma de los elementos negativos de una matriz T, que tiene 2 filas y 10 columnas. Ejemplo 3: Escribir un algoritmo que obtenga la suma de los elementos de cada una de las filas y de cada una de las columnas de una matriz de 3 filas y 2 columnas3 filas y 2 columnas.
  • 85. Ejemplos de matricesEjemplos de matrices Ejemplo 4: Escriba un algoritmo que realiceEjemplo 4: Escriba un algoritmo que realice la suma de todos los elementos de una matriz B de 5 filas y 5 columnas.y Ejemplo 5: El jefe de recursos humanos de una tienda de 8 departamentos, deseap registrar la asistencia de los trabajadores cada día de la semana en cada d t t bt l i i tdepartamento, para obtener la siguiente información:
  • 86. Ejemplos de matricesEjemplos de matrices a) La cantidad de trabajadores que) j q laboraron cada día de la semana. b) El departamento al que más asistieronb) El departamento al que más asistieron sus trabajadores durante la semana. c) La cantidad de trabajadores quec) La cantidad de trabajadores que asistieron el día sábado y el día domingodomingo. d) A cuál departamento asistieron la menor tid d d t b j d d t lcantidad de trabajadores durante la semana.
  • 87. Ejemplo 6: En Mérida existen 4 estaciones metereológicas, cada una de ellas registra la temperatura promediocada una de ellas registra la temperatura promedio mensual (temperatura mínima medida: 8°C y temperatura máxima medida: 32°C). Si a Ud. le proporcionan dicha información para el año 2011. Escriba un algoritmo que determine: – La temperatura promedio en el año 2011, registrada por las 4La temperatura promedio en el año 2011, registrada por las 4 estaciones. – La temperatura promedio en el año 2011, registrada por las estaciones 2 y 4.estaciones 2 y 4. – Los meses del año que tuvieron una temperatura promedio superior a la temperatura promedio en el año 2011, registrada por las 4 estaciones.por las 4 estaciones. Debe Validar las entradas y dibujar las estructuras de datos que emplee en la solución del problema.
  • 88. Ejemplo 7: Se van a registrar los votos de 50 personas para las elecciones de alcalde de la ciudad de Mérida,p , en la cual participan cuatro candidatos. Cada persona puede votar por un solo candidato el cual se registra con un uno y por los candidatos que no votó con un ceroun uno, y por los candidatos que no votó con un cero. Haciendo uso de una matriz para registrar los votos, escriba un algoritmo que permita determinar: a) La cantidad de votos que obtuvo cada uno de los cuatro candidatos. b) La posición final ocupada por cada candidatob) La posición final ocupada por cada candidato. c) El candidato ganador. d) El candidato por el que menos votaron estas 50d) El candidato por el que menos votaron estas 50 personas. e) Por cuál candidato votó el votante 5.
  • 89. Ejemplo 8: En una zapatería se conocen las ventas l d di d l d t d dmensuales de diez modelos de zapatos desde enero hasta junio del 2012, cuyo inventario inicial fue de 30 pares de cada modelo. Escriba un algoritmo quep g q proporcione la información que necesita el dueño para realizar los pedidos del segundo semestre del año: a) ¿Cuáles modelos de zapatos debe pedir porque yaa) ¿Cuáles modelos de zapatos debe pedir porque ya no tiene existencia? b) ¿Cuál modelo fue el menos vendido?) ¿ c) ¿En qué mes se vendieron más zapatos? d) ¿Cuál es el mes en que más se vendieron zapatos de los modelos 3 y 6? e) ¿Total de pares de zapatos vendidos en estos 6 meses en dicha zapatería?meses, en dicha zapatería?