Documentos de Académico
Documentos de Profesional
Documentos de Cultura
la Programación
GUÍA DE CONCEPTOS
UNIDAD III
Tabla de Contenidos
Estructura de Datos ................................................................................................................................. 2
Tipos de Datos ..................................................................................................................................... 2
Definición de Arreglo ............................................................................................................................... 3
Tipos de arreglos.................................................................................................................................. 3
Características ..................................................................................................................................... 3
Definición de Vector ................................................................................................................................ 4
Características del Vector ..................................................................................................................... 4
Arreglos Unidemensionales...................................................................................................................... 4
Forma de acceso a un elemento específico del arreglo ............................................................................. 5
¿Cuáles son las operaciones que podemos realizar con un arreglo?.......................................................... 6
Llenado de un vector ............................................................................................................................... 7
Ordenamiento de Vectores ...................................................................................................................... 8
Métodos de Ordenamiento .................................................................................................................. 8
• Método de Intercambio o burbuja ........................................................................................... 8
• Con doble iteración anidada ..................................................................................................... 8
• Con bandera o señal ................................................................................................................. 8
• Método de Inserción ................................................................................................................ 8
• Método de Selección ................................................................................................................ 9
Utilizar para el efecto el método de intercambio con doble iteración anidada ....................................... 9
Arreglos Bidemensionales ...................................................................................................................... 10
Arreglos multidimensionales/matrices ................................................................................................... 11
Ejercicios Resueltos ............................................................................................................................... 12
Ejercitario Propuesto ............................................................................................................................. 24
Bibliografía ............................................................................................................................................ 25
Estructura de Datos
Es una colección de datos que se caracterizan por su organización y las operaciones que se
definen en ellas.
Tipos de Datos
Definición de Arreglo
Es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de
datos del mismo tipo.
Es un conjunto de elementos del mismo tipo agrupados en una sola variable. Para ingresar a un
elemento en particular, utilizamos un índice y se almacenan en memoria continua.
Físicamente, un arreglo es un conjunto de localidades de memoria contiguas donde la dirección
más baja corresponde al primer elemento y la dirección más alta al último. En un arreglo de n
elementos, éstos ocuparan desde la casilla 0 hasta la n-1. Por sí mismo, el nombre del arreglo
apunta a la dirección del primer elemento del arreglo.
Tipos de arreglos
Características
• Es una secuencia de posiciones de la memoria central a las que se puede acceder
directamente.
• Contienen datos del mismo tipo.
• Pueden ser seleccionados individualmente a través de los subíndices.
• Almacena los elementos en posiciones contiguas de memoria (posiciones consecutivas).
• Tienen un mismo nombre de variables que representa a todos los elementos (Nombre
común).
• Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el
lugar que ocupa cada elemento dentro del archivo.
Definición de Vector
Son estructuras de datos estáticas, porque el espacio ocupado en memoria se define en tiempo
de compilación y no puede ser modificado durante la ejecución del programa.
Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el nombre de
longitud o tamaño del vector.
Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del índice
(entre corchetes), el cual indica una posición en particular del vector. Por ejemplo: Vec [x]
Arreglos Unidemensionales
La forma general para definir un arreglo de una sola dimensión es la siguiente:
array [límite inferior … límite superior] tipo_de_dato: nombre
• array: indica el tipo de estructura que será utilizada
• Límite inferior: primer elemento del vector.
• Límite superior: último elemento del vector
• tipo_de_dato: se refiere al tipo de dato de cada elemento del arreglo.
• Nombre: Nombre del vector
Donde:
• Cada componente del arreglo V será un número entero, y podrá accederse por medio de
un índice que será un valor comprendido entre 1 y 10.
Insertar un elemento es una operación que consiste en introducir dicho elemento en el interior
del vector, en una posición I dada, de forma tal que los elementos ubicados en las siguientes
posiciones sean desplazados a las posiciones I + 1 respectivas.
La operación de eliminar un elemento al final del arreglo no presenta ningún problema; en
cambio, si el borrado se realiza en el interior del mismo esto provoca el efecto contrario al de
insertar, el movimiento deberá ser hacia arriba (I-1) de los elementos inferiores a él para
reorganizar el vector.
• Ordenación
Consiste en ordenar un vector de acuerdo a ciertos métodos de ordenación:
• Búsqueda
Consiste en encontrar elemento/s dentro de un arreglo
Llenado de un vector
Para ingresar datos en un vector se puede utilizar cualquier tipo de estructura cíclica. A
continuación se muestran los diferentes métodos para la carga de un vector:
Ordenamiento de Vectores
La acción de ordenar un vector es lo mismo que clasificar sus elementos en orden ascendente
que es lo normal o de lo contrario en orden descendente.
La operación de ordenar información ya sea a través de sus vectores o archivos generalmente
consume la mayor parte del tiempo de los ordenadores actuales.
Métodos de Ordenamiento
• Método de Inserción
También se lo conoce con el nombre del jugador de cartas, pues utiliza el mismo principio, en el
sentido de que se va insertando cada elemento del vector en el lugar que le corresponde.
• Método de Selección
En primera instancia, se selecciona el menor elemento del vector y se lo coloca en la primera
posición del mismo y el elemento que se hallaba en dicha posición se ubica en el lugar donde se
hallaba el elemento menor.
Luego, se coloca el segundo elemento en la segunda posición y así sucesivamente.
Ejemplo de un ejercicio aplicando el método de ordenamiento
Cargar e imprimir un vector de orden N. Ordenarlo en forma secuencial ascendente, y luego
imprimirlo nuevamente.
Inicio
array [1…..N] entero: vec
vec v
entero aux=0, n, i, k, z
leer n
Para z=1 hasta n
leer v [z]
Fin Para
Para z=1 hasta n
imprimir v [z]
Fin Para
Para i=1 hasta n-1
Para k=1 hasta n-1
Si v [k] > v [k+ 1] El intercambio de valores se
aux = v [k] efectúa en esta parte del programa. Si
el elemento actual es mayor al
v [k] = v [k +1] siguiente se permutan los valores.
v [k+1] = aux
Fin si
Fin Para
Fin Para
Para z=1 hasta n
imprimir v [z]
Fin Para
Fin
Arreglos Bidemensionales
Un arreglo de dos dimensiones, también denominada matriz, se define como una tabla de tablas,
o vector de vectores, es decir, es aquella en la cual uno de sus elementos es, a su vez, una tabla
unidimensional.
Podemos comparar una matriz con una hoja de papel cuadriculado en la que cada cuadrícula
corresponderá a un elemento.
Columna 1 Columna 2
FILA 1
FILA 2
FILA 3
Arreglos multidimensionales/matrices
Un arreglo se puede definir de tres, cuatro y hasta n dimensiones.
Se manejan los mismos conceptos para los subíndices que en los vectores o matrices. 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[I1, I2, I3, …, In]
Ejemplo: Un arreglo de tres dimensiones puede ser uno que contenga los datos relativos a la
cantidad de estudiantes de la Universidad Americana de acuerdo a los siguientes criterios:
- año (primero a quinto)
- sexo (femenino/masculino)
- carrera (cinco materias diferentes)
FILA 1
FILA 2
FILA 3
Ejercicios Resueltos
1) Cargar e imprimir un vector de cinco elementos. Determinar e imprimir la suma total
de todos sus elementos.
Inicio
array [1…..5]entero: Declaración del vector
vec
vec V
entero i, s=0 Declaración del índice y variables
Hacer para i=1 a 5
Leer V[i] Ingresa elementos al vector
s=s+ V[i] Acumula el valor en la variable s
Fin Para
Imprimir s Visualiza la suma total
Hacer para i=1 a 5
Imprimir V[i] Visualiza todos los elementos del vector
Fin Para
Fin
2) Cargar e imprimir un vector de diez elementos. Determinar e imprimir la suma y
cantidad de elementos positivos.
Descripción de variables
• v: nombre del vector
• may: auxiliar de mayor
• pos: auxiliar de posición
• i: subíndice del vector
• b: bandera que se utiliza para capturar el primer elemento del vector.
Inicio
array [1…..10]entero: vector
vector vec
entero i, ac=0
Hacer para i=1 a 10
Leer vec[i]
Si (vec[i]/5)==ent(vec[i]/5) Evalúa si es múltiplo de 5
ac=ac+ vec[i] Acumula el valor
Fin si
Fin Para
Hacer para i=1 a 10
Imprimir vec[i]
Fin Para
Imprimir ac
Fin
array [1…..10]entero:
vector vector vec entero i, ac=0
Hacer para i=1 a 10
Leer vec[i]
Si ((i/2) <> ent(i/2)))
entonces ac=ac+ vec[i]
Fin si
Fin Para
Hacer para i=1 a 10
Imprimir vec[i]
Fin Para
Imprimir ac
Fin
Descripción de variables
• v: nombre del vector
• may: auxiliar de mayor
• pos: auxiliar de posición
• i: subíndice del vector
• b: bandera que se utiliza para capturar el primer elemento del vector. Inicio
array [1…..10]entero: vector
vector v
entero i, may=0, pos=0, b=0
Hacer para i=1 a 10
Leer v[i]
Si (b==0)
entonces b=1 may=v[1] p
os=1 sino Si (v[i]>may)
entonces may=v[i]
pos=i Fin si
Fin si
Fin Para
Hacer para i=1 a 12
Imprimir vec[i]
Fin Para
Imprimir “El valor mayor es:”, may
Imprimir “El valor mayor ocupa la pos:”, pos
Fin
Inicio
array [1…..10]entero: vector
vector V, A entero i, c=10, z=0
Hacer para i=1 a 10 Leer V[i]
Fin Para
Hacer para i=1 a 10
Imprimir V[i]
Fin para
Mientras (z <=10) z = z +1
A[z] =
V[c] c = c-1
Fin mientras
Hacer para i=1 a 10
Imprimir A[i]
Fin Para
Fin
11) Cargar e imprimir un vector de doce elementos. Invertir el vector en sí mismo, SIN
UTILIZAR VECTOR AUXILIAR. Imprimir nuevamente el vector ya invertido.
Descripción de variables:
12) Cargar e imprimir dos vectores A y B de diez elementos. Crear un vector C, tal que
C[1] = A[1] + B[1], C[2] = A[2] + B[2], C[3] = A[3] + B[3] y así sucesivamente . Imprimir
el vector C.
Inicio
array [1…..10]entero:
vec vec A, B, C entero i
Hacer para i=1 a 10
Leer A[i], B[i]
C[i] = A[i] + B[i]
Fin Para
Hacer para i=1 a 10
Imprimir A[i] Fin
Para
Hacer para i=1 a 10
Imprimir B[i]
Fin Para
Hacer para i=1 a 10
Imprimir C[i]
Fin Para
Fin
13) Cargar e imprimir un vector V de diez elementos. Crear un vector A, También de
diez elementos tal que A[1] = V[1], A[2] = V[1]+V[2] , A[3] = V[1] + V[2] + V[3] y así
sucesivamente. Imprimir el vector resultante
Inicio
array [1…..10]entero:
vec vec A, V entero i, s=0
Hacer para i=1 a 10 Leer V[i]
s = s + V[i] A[i] =s
Fin Para
Hacer para i=1 a 10
Imprimir A[i]
Fin Para
Hacer para i=1 a 10
Imprimir V[i]
Fin Para
Fin
Inicio
array [1…..12]entero: vec vec A,
V
array [1…..24]entero: vector
vector C entero i, z=0 Hacer para
i=1 a 12 Leer A[i], V[i] z = z+1
C[z] = A[i] z = z
+1 C[z] = V[i] Fin Para
Hacer para i=1 a 12
Imprimir A[i]
Fin Para
Hacer para i=1 a 12
Imprimir V[i] Fin
Para
Hacer para i=1 a 24
Imprimir C[i]
Fin Para
Fin
15) Cargar tres vectores A, B y C de 5 elementos cada uno de ellos. Crear un vector D,
tal que los 5 primeros elementos del mismo sean todos los elementos de V, los 5
siguientes correspondan al vector A y los 5 últimos elementos sean del vector C.
Imprimir el vector D.
Inicio
array [1…..5]entero: vec
vec A, B, C
array [1…..15]entero:
vector vector D entero i, z=0
Hacer para i=1 a 5 Leer A[i]
z=z+1
D[z] = A[i] Fin Para
Hacer para i=1 a 5 Leer B[i] z=z+1
D[z] = B[i] Fin Para
Hacer para i=1 a 5 Leer C[i] z=z+1
D[z] = C[i]
Fin Para
Hacer para i=1 a 15
Imprimir D[i]
Fin Para
Fin
Inicio
array [1…..10]entero:
vec vec V entero i, s=0 Hacer
para i=1 a 10
Leer V[i]
Fin Para
Hacer para i=3 a 10 s=s+V[i]
Fin para
Hacer para i=1 a 10
Imprimir V[i]
Fin Para
Imprimir s
Fin
Ejercitario Propuesto
a) Calcular el promedio de 10 valores almacenados en un vector. Determinar además
cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores
que el promedio y una lista de valores mayores que el promedio.
b) Llenar dos vectores A y B de 15 elementos cada uno, sumar el elemento uno del vector
A con el elemento uno del vector B y así sucesivamente hasta 15, almacenar el resultado
en un vector C, e imprimir el vector resultante.
e) Almacenar 10 números en un vector, imprimir cuantos son ceros, cuántos son negativos,
cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.
h) Se tiene el vector A con 10 elementos almacenados. Diseñe un algoritmo que escriba “SI”
si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado.
i) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene
almacenados 10 elementos. Escribir la posición donde se encuentra almacenado el
número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.
j) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique
el primer elemento de A con el último elemento de B y luego el segundo elemento de A
por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo
elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo
en un vector C.
Bibliografía
Básica
• Joyanes Aguilar, L. (2002) Fundamentos de la programación. Buenos Aires: Pearson Educativa.
• Joyanes Aguilar, L. (2001). Fundamentos de la programación, algoritmos y estructuras de datos.
Buenos Aires: Pearson Educativa.
Complementaria
• Brassard, G. y Bratley, P. (1995). Fundamentos de la algoritmia. México: Prentice-Hall
• Byron, G. (2001). Programación en C. México: Prentice Hall.
• Norton, P. (2004). Introducción a la computación. México: Prentice Hall