Está en la página 1de 23

ÍNDICE

1. Información de la unidad / Tema de la semana


3

2. Información de los subtemas 4


3
2.1 Definición 4
38
2.2 Operaciones con vectores

2.3 Algoritmos de ordenación 15

2.4 Algoritmos de búsqueda 21

3. Bibliografía 23

2
1. Informacion de la unidad
Tema de la semana:

» Objetivo:

Comprender la estructura de los vectores y su utilización para la resolución de


problemas.

» Tema:

Vectores

» Subtemas:

1. Definición
2. Operaciones con vectores
3. Algoritmos de ordenación
4. Algoritmos de búsqueda

» Unidad:

Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales

» Total de horas de la asignatura:


9H

3
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

2. Informacion de los subtemas

2.1 Definición

Arreglos

Los arreglos o arrays (en inglés), son un conjunto ordenado de datos del mismo tipo,
tienen una secuencia de elementos y cada elemento puede ser identificado.

Los arreglos son conocidos como matrices en matemáticas y tablas en cálculos


financieros (Joyanes, 2008).

Los arreglos se clasifican por el número de índices de acceso a los elementos, el


número de índice define su dimensión por ejemplo: unidimensionales de 1 índice,
bidimensionales de dos índices y Multidimensionales de n índices (Montalvo, 2015) .

El tipo de arreglo más simple es conocido como vector o arreglo de una dimensión. Por
ejemplo : El arreglo unidimensional “País”, consta de “n” elementos, puede ser
representado como en la tabla 3.1 donde País (I) contendrá un elemento, será tipo
cadena y contendrá el nombre de un País, Ej.: PAIS(1) contiene “ECUADOR”, PAIS(2)
contiene “CHILE”, …, etc.

Tabla 3.1 Vector PAIS

PAIS(1) PAIS(2) PAIS(3) … PAIS(I) … PAIS(N)

Subíndices

Los subíndices dentro de los vectores indican la posición de un elemento dentro de su


© Universidad Estatal de Milagro – UNEMI

ordenación y se define con un número entero.

Donde, si partimos del ejemplo de la Tabla 3.1, podemos leer que PAIS(1)
representa al vector PAIS en la posición 1, PAIS(2) representa al vector PAIS en la
posición 2 y así sucesivamente.

Limites

Ahora que conocemos los subíndices, podemos determinar que los vectores, tienen
principio y fin.

4
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Para representar los límites del vector PAIS, podemos usar la notación PAIS(1:N).
Donde 1 es el límite inferior del vector, y N es el límite superior.

Los límites del vector también permiten identificar el rango del mismo, ya que el rango
será igual al número de elementos del vector.

Elementos de un vector
Los vectores contienen dentro de sí, datos, estos pueden ser de cualquier tipo:
numéricos, caracteres o tipo de cadena de caracteres.

Un ejemplo de un vector que representa el listado de COLEGIOS en una región como


se ve en la tabla 3.2

Tabla 3.2 Vector COLEGIOS

COLEGIOS(1) VELASCO IBARRA

COLEGIOS(2) SIMON BOLIVAR

COLEGIOS(i) TECNICO MILAGRO

COLEGIOS(n) 17 DE SEPTIEMBRE

Haciendo una retroalimentación, podemos decir:

» Dentro del vector COLEGIOS en la posición 1 tenemos almacenado un dato de


tipo cadena “VELASCO IBARRA”
» En la posición 2 del vector se ubica el colegio “SIMON BOLIVAR”
© Universidad Estatal de Milagro – UNEMI

» En la posición n del vector almacenamos el valor “17 DE SEPTIEMBRE”


que es de tipo cadena

Ya que los datos dentro de la memoria del ordenador se ubican de forma continua,
podemos representar un vector llamado NÚMEROS en la tabla 3.3 con 20 posiciones
de memoria sucesivamente.

Tabla 3.3 Vector NUMEROS

5
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Memoria

NUMEROS[1] Dirección X

NUMEROS[2] Dirección X+1

NUMEROS[3] 25 Dirección X+2

… …

NUMEROS[20] Dirección X+19

Los elementos de un vector pueden ser procesados como una variable, ya que ocupan
una posición de memoria, Entonces,
NÚMEROS[3] ← 25
Se almacena el valor real o entero 25 en la posición número 3 del vector NÚMEROS y
para especificarlo como una instrucción de salida escribimos

escribir (NUMEROS[3])
Con esto podremos visualizar el valor del vector en la posición 3, es decir se va a
presentar el valor de 25.

Esto significa que se puede acceder directamente a cada elemento de un vector, ya


que este permite almacenar un conjunto de datos.(Joyanes, 2003)

Con la premisa anterior, podemos decir que se puede acceder al valor de los vectores
en cada una de sus posiciones, entonces plantearemos el vector A compuesto de 5
elementos, con valores de tipo real.

Tabla 3.4 vector A

A[1] A[2] A[3] A[4] A[5]


© Universidad Estatal de Milagro – UNEMI

9.0 10.0 7.5 6.8 7.0

Elemento Elemento Elemento Elemento Elemento


1° 2° 3° 4° 5°

Operaciones básicas que podemos realizar con el vector NOTAS de la tabla 3.4
Acciones Resultados
» escribir(A[1]) Presenta el valor de A en la posición 1, y es 9.0

6
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

» A[3]←10 Asigna el valor de 10 en la posición 3 del vector A


» SUMA ←A[1]+A[2] Asigna a SUMA, A[1] +A[2], es decir SUMA = 19.0
» SUMA ← SUMA+A[5] Asigna a SUMA, la suma de su valor anterior + el
valor A[5], SUMA = 26.0
» A[5] ← A[5]+1,5 Asigna en A[5] el valor de A[5] sumado en 1,5,
quiere decir que A[5] = 8.5
» A[3] ← A[1]+A[2] Asigna en A[3] el valor de A[1]+A[2]= 19.0
© Universidad Estatal de Milagro – UNEMI

2.2 Operaciones con vectores

7
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

2.2 Operaciones con vectores


Operaciones a realizar con vectores en la resolución de problemas:
» Asignación
» Lectura – Escritura
» Recorrido
» Actualización Añadir, borrar
» Ordenación
» Búsqueda

Implementación en lenguaje C

C es un lenguaje de programación, para propósitos generales, este lenguaje


fue diseñado para el sistema operativo UNIX, por Dennis Ritchie, quien lo implanto
sobe el ordenador DEC PDP-11(Kernighan & Ritchie, 1991)

Los ejemplos que se muestran a continuación serán escritos en lenguaje C para


su explicación.

Este lenguaje que permitirá el ingreso de 5 tipos de datos, ya sean básicos


o estructurados, además nos permite convertir varios tipos de datos, sea de entero
a carácter o viceversa, podremos usar sentencias para ciclos y de decisión.(Salas, 1991)

Los subíndices o simplemente índices deben ser enteros de constantes, variables o


expresiones, y el primer valor de los índices comienza siempre por cero. El lenguaje C
no comprueba los límites del arreglo, por lo que esos límites pueden ser desbordados
en cualquier extremo del arreglo. Por lo tanto, el programador debe proporcionar una
comprobación de los límites del arreglo (Montalvo, 2015).
© Universidad Estatal de Milagro – UNEMI

Declaración de un Arreglo

La forma general de declaración de un arreglo unidimensional es:

tipo nombre_variable[tamaño];

ejemplo: int notas [10]; note que termina en ;

donde:

8
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

- tipo, declara el tipo base del arreglo, que es el tipo de cada elemento del mismo, int,
significa tipo de números entero.

- tamaño, indica el número de elementos que tendrá el arreglo, 10.

- nombre_variable, es el nombre del arreglo, notas.

En la figura 3.1 se detalla un algoritmo como ejemplo para la declaración de un vector


en lenguaje C, en el cual se declaran 2 vectores números[] y decimales[]
correspondientemente, el vector números[] se declara en “0”, en la línea 7 del código
se le asigna el valor de 3 en la posición 1, y en la línea 8 se asigna el valor de 5 en la
posición 2.

Figura 3.1 Algoritmo para la declaración de un vector en C


© Universidad Estatal de Milagro – UNEMI

Figura 3.1.2 Presentación del algoritmo

9
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Pregunta 1: En la línea 15 de la figura 3.1 se declara al vector, y se insertan 2 valores


como decimales, donde el primero es “3.000078”, y al imprimirse este cambia a
“3.000008” ¿Por qué pasa esto?

Debido a que al declarar un valor como float este permite solamente 7 dígitos, en
binario 32 bits, por lo que este se redondea. Si se desea presentar el valor de 8 dígitos,
el vector debe declararse como doublé ya que este permite hasta 64 bits, o sea 15-16
dígitos.(David, 2017)

Pregunta 2: En la línea 19 de la figura 3.1 ¿Por qué para presentar por pantalla al
vector decimales[], se colocan los elementos en el índice “0” y “1”?

Esto se hace debido a que los vectores generalmente empiezan desde el índice “0”,
por lo que los valores ingresados se irán acomodando desde 0, al momento de la
declaración.

Asignación

La asignación de valores a los elementos del vector, gráficamente será con su


instrucción “←”

A[5] ←1 Asigna al vector A en la posición 5 el valor de 1

Asumiendo

Leer(A[i])

Introducimos los valores 1, 2, 3, 4, 5 mediante asignación

A[1] ←1
© Universidad Estatal de Milagro – UNEMI

A[2] ←2
A[3] ←3
A[4] ←4
A[5] ←5

10
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Recordemos que, para trabajar con arreglos, tenemos un inicio y un fin, entonces
podemos utilizar expresiones como desde y hasta para referirnos a un rango dentro
del vector.

Entonces si queremos asignar un mismo valor a cada elemento del vector A, podemos
usar un formato de algoritmo simple como

desde i=1 hasta 5


A[i] ←0
Fin_desde
Donde el vector A, asignara el valor numérico de 0 en cada uno de sus elementos,
desde la posición 1 hasta la 5.

A[1] ←0
A[2] ←0
A[3] ←0
A[4] ←0
A[5] ←0
En el lenguaje C, ya que los arreglos ocupan espacio en memoria, debemos de
especificar el tipo de cada arreglo y número de elementos que este necesita, y así la
computadora pueda reservar la cantidad necesaria de memoria.(Deitel & Deitel, 2004)

Para indicarle al ordenador que reserve 5 espacios para el arreglo F, declaramos así:

Int F[5];
Así mismo podemos indicar al computador que reserve 3 elementos para el arreglo A,
y 6 para el arreglo O de la siguiente manera:
© Universidad Estatal de Milagro – UNEMI

Int A[3], O[6];


Recorrido

Para leer los elementos de un vector, se debe recorrer de inicio a fin dicho vector,
dentro de los lenguajes de programación se usa la sentencia for y dentro de este se
presenta por pantalla el elemento del vector en su posición y lo que contiene, o sea su
valor.

11
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Como algoritmo podemos expresar la lectura de un vector F con 5 elementos como

i ←1
mientras i <=5
leer(F[i])
i←i+1
fin_mientras
Indica que el ordenador, leerá datos, mientras i sea menor o igual a 5, donde i
representa la posición de los elementos.

Suponiendo que los datos ingresados por teclado en la sentencia anterior fueron

F[1] = 1 F[2] = 3 F[3] = 5 F[4] = 7 F[5] = 11


La sentencia escribir también se escribe dentro de un ciclo repetitivo ya que debe
recorrer al vector.

i ←1
mientras i <=5
escribir(F[i])
i←i+1
fin_mientras
La sentencia escribir, presentara todos los valores que contienen los elementos del
vector F, es decir: 1, 3, 5, 7 y 11

Actualización de un vector

Los vectores pueden añadir valores a los elementos o modificarlos siempre y cuando
existan los espacios de memoria respectivos.
© Universidad Estatal de Milagro – UNEMI

12
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Implementaciòn de arreglos en C

Dentro del lenguaje C, aprenderemos instrucciones para que nuestros algoritmos


funcionen, y podamos hacer prácticas, para este trabajo usaremos el programa DEV
C++.

El ejemplo de la Figura 3.2 usa instrucciones for, para inicializar en “0” todos los
elementos de un arreglo, 10 en total, y se ha impreso todos los valores de dicho
arreglo de forma tabular, por medio de la instrucción printf, dentro de los comentarios
(/* */) entre las líneas 13 y 17, además de las líneas 22 a 27, se explica cómo se
establecen en la instrucción de impresión las tabulaciones, el resultado se presenta en
la Figura 3.2.2
© Universidad Estatal de Milagro – UNEMI

Figura 3.2 Función en C de un arreglo y su presentación

13
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Figura 3.2.2 Impresión de datos del arreglo


© Universidad Estatal de Milagro – UNEMI

14
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

2.3 Algoritmos de ordenación


Un vector puede pasar a ser considerado como un listado de elementos, por lo que
también pueden ser comparados, y al comparar un elemento entre otro, podemos
definir si uno es mayor o menor que otro.(Yáñez, 2014)

Los algoritmos de ordenación permiten organizar los vectores por sentido:

» Descendente – De mayor a menor


» Ascendente – De menor a mayor

Existen varios algoritmos básicos de ordenación, pero en este caso estudiaremos los
más básicos:

» Ordenación por inserción


» Ordenación por selección
» Ordenación por el método de burbuja

Ordenación por inserción

Por medio de este procedimiento se realiza una búsqueda secuencial dentro del
vector, el algoritmo de ordenación por inserción (ascendente) funciona de la siguiente
manera.

Tenemos una lista desordenada como la siguiente: 3, 1, 5, 7, 2, 8

» La lista contendrá como primer valor 3


» 1 es menor que todos los elementos de la lista así que se inserta al inicio y se
desplaza el 3 hacia la derecha : 1, 3
© Universidad Estatal de Milagro – UNEMI

» 5 es el mayor elemento de la lista, así que lo insertamos al final: 1, 3, 5


» 7 es el mayor elemento de la lista, así que lo insertamos al final: 1, 3, 5, 7
» 3 es el tercer elemento mayor que el nuevo elemento o sea “2”, entonces
desplazamos todos los elementos desde “3” hacia la derecha: 1, 2, 3, 5, 7
» 8 es el mayor elemento de la lista, así que lo insertamos al final: 1, 2, 3, 5, 7, 8

15
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

La figura 3.3 muestra la implementación de un algoritmo de ordenación por inserción


dentro del lenguaje C, en un vector lista[] de 10 elementos desordenados.

La figura 3.3.1 muestra la compilación y ejecución del algoritmo, presentando en


formato tabular los elementos del vector en primera instancia desordenados, y al final
con el mismo formato, los datos ya ordenados.
© Universidad Estatal de Milagro – UNEMI

16
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Figura 3.3 Algoritmo de ordenación por inserción en C


© Universidad Estatal de Milagro – UNEMI

Figura 3.3.1 Ejecución del algoritmo

17
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Ordenación por selección directa

El método de ordenación por selección directa permite ordenar valores, haciendo uso
de dos vectores, o listas, la lista principal almacena los datos desordenados, mientras
que por medio de un procedimiento se la recorre en búsqueda del elemento mínimo
quien se colocará primero en la segunda lista la cual irá recibiendo los elementos
mínimos de la lista principal para agruparlos de menor a mayor.

La figura 3.4 muestra el algoritmo en lenguaje C de este método haciendo uso de un


vector, con dos índices para simular las 2 listas.
© Universidad Estatal de Milagro – UNEMI

Figura 3.4 Ordenación Método Selección Directa

18
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Ordenación por método de burbuja

Este método se encarga de encontrar el menor valor dentro del vector, cuando lo
encuentra, lo desplaza a la izquierda, haciendo un intercambio con el elemento que
reemplaza, el cual se almacena en una variable auxiliar, como se expresa en el
algoritmo de la figura 3.6.

Figura 3.5 Método de la burbuja


Link: https://bit.ly/3007DuD

Tal como se observa en la figura 3.5 cuando un elemento se encuentra con otro menor
a él, este se queda ubicado en la misma posición, y el elemento con menor valor
empieza a compararse con los restantes.
© Universidad Estatal de Milagro – UNEMI

19
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

Figura 3.6 Ordenación Método burbuja


© Universidad Estatal de Milagro – UNEMI

20
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

2.4 Algoritmos de búsqueda


Los vectores al contar con un índice, nos dan la facilidad de encontrar los elementos
que buscamos y su respectiva posición.

A continuación en la figura 3.7 se muestra un algoritmo hecho en C, para la búsqueda


de un elemento dentro de un vector, recorriéndolo en su totalidad, imprimiendo cada
una de las posiciones en caso de que el elemento no se encuentre, y la posición y el
elemento en sí , en caso de encontrarlo.

Figura 3.7 Algoritmo en C para la búsqueda de un elemento


© Universidad Estatal de Milagro – UNEMI

21
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

El algoritmo cuenta con un vector de 10 elementos ya insertados, y por medio de la


inserción de un dato por teclado se hará la búsqueda de uno de los elementos, la
ejecución del algoritmo, insertando por teclado el elemento “11” se muestra en la
figura 3.7.

Figura 3.7.1 Ejecución del algoritmo


© Universidad Estatal de Milagro – UNEMI

22
Datos estructurados: Vectores, cadenas de texto y vectores multidimensionales - Vectores

3. Bibliografía
» David, V. V. (2017). Curso: Programación.

» Deitel, H., & Deitel, P. J. (2004). Como_Programar en C/C++ yJava. (Pearson Educación
de México, Ed.) (4ta ed.). Naucalpan de Juárez: PRENTICE-HALL, INC.,.

» Joyanes, L. (2003). Fundamentos de programación: Libro de problemas. Algoritmos,


estructuras de datos y objetos (2a. ed.). Recuperado de www.fullengineeringbook.net

» Joyanes, L. (2008). Fundamentos de Programación algoritmos, estructuras. (S. A. U.


McGRAW-HILL/INTERAMERICANA DE ESPAÑA, Ed.) (cuarta). Madrid.

» Kernighan, B. W., & Ritchie, D. M. (1991). El lenguaje de programación C. Pearson


Educación.

» Montalvo, E. G. (2015). Lenguaje C TEORÍA Y EJERCICIOS. (ESPE, Ed.). Espe. Recuperado


de www.repositorio.espe.edu.ec.

» Salas, A. (1991). Curso de lenguaje «c».

» Yáñez, L. (2014). Fundamentos Programacion. Licencia CC (Creative Commo.


© Universidad Estatal de Milagro – UNEMI

23

También podría gustarte