Vectores

Son aquéllos de una sola dimensión, por lo que también son llamados arreglos Unidimensionales.

Ejemplo:

Un vector de una dimensión llamado CALIF, que consta de n elementos.

calif(1)calif(2)calif(n-2)calif(n-1)calif(n)

El subíndice o índice de un elemento (1, 2 …n) designa su posición en la ordenación del vector. Otras posibles notaciones del vector son :

a1, a2,…,an    En matemáticas y algunos lenguajes(BASIC)

A(1), A(2),…A(n)

A[1], A[2],…A[n]      En programación (Pascal)

Los vectores se almacenan en memoria central de la computadora en un orden adyacente. Así, un vector de 50 elementos denominado NUMEROS se representa gráficamente por 50 posiciones de memoria sucesivas.

Memoria

NUMEROS(1) =  Dirección x

NUMEROS(2) =  Dirección x+1

NUMEROS(3)  = Dirección x+2

:
:

NUMEROS(50)  = Dirección x+49

Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posición de memoria. Así :

NUMEROS(25) =  75     (almacena el valor 75 en la posición 25a del vector NUMEROS y la instrucción  de salida : escribir NUMEROS(25).

Declaración

nom _arreglo = arreglo[liminf..limsup] de tipo

donde:

nom_arreglo:      nombre válido del arreglo.

liminf..limsup:     límites inferior y superior del rango del arreglo.

tipo:     tipo de datos de los elementos del arreglo : entero, real, carácter.

NOMBRES= arreglo [1..10] de carácter

Significa que NOMBRES es un arreglo (array) unidimensional de 10 elementos (1 a 10) de tipo carácter.

Asignación

NOMBRES(8)  =   ‘Ana’

Asigna el valor ‘Ana’ al elemento 8 del vector NOMBRES

Lectura/Escritura de Datos

La Lectura/Escritura de datos en un arreglo u operaciones de entrada/salida normalmente se realizan con estructuras repetitivas, aunque puede también hacerse con estructuras selectivas. Las instrucciones simples de lectura/escritura se representarán como :

leer A     Lectura del vector A

escribir A Escritura del vector A

leer V(5)   Leer el elemento V(5) del vector V

Acceso Secuencial al Vector (recorrido)

Se puede acceder a los elementos de un vector para introducir datos (escribir) en el o bien para visualizar su contenido (leer). Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control (por ejemplo I) se utilizan como subíndices del vector (por ejemplo, X(I). El incremento del contador del bucle producirá el tratamiento sucesivo de los elementos del vector.

Ejemplo :

Lectura de 15 valores enteros de un vector denominado TOTAL.

TOTAL= array [1..15] de entero

desde i = 1 hasta 15 hacer

  leer TOTAL(i)

fin _desde

Si se cambian los limite inferior y superior, por ejemplo, 5 y 12, el bucle de lectura sería :

desde i  = 5 hasta 12 hacer

  leer TOTAL(i)

fin_desde

La salida o escritura de vectores se representa de un modo similar.

desde i = 1 hasta 15 hacer

  escribir TOTAL(i)

fin_desde

Visualiza todo el vector completo (un elemento en cada línea independiente).

Actualización de un Vector

Puede constar de tres operaciones más elementales :

a) Añadir elementos (añade un nuevo elemento al final del vector)

Un arreglo A se ha dimensionado a 6 elementos, pero solo se han asignado 4 valores a los elementos A(1), A(2), A(3), A(4), se podrán añadir dos elementos más con una simple acción de asignación.

A(5)   =   15

A(6)   =    9

b.- Insertar elementos (introduce un elemento en el interior de un vector)

Ejemplo:  Se tiene un arreglo NOM de 6 elementos de nombres de personas, en orden alfabético y se desea insertar un nuevo nombre.

{Calcular la posición ocupada por el elemento a insertar} P

{Inicializar contador de inserciones} i n.

mientras i >=  P hacer

{transferir el elemento actual hacia abajo, a la posición i+1}

NOM(i+1) =    NOM(i)

{decrementar contador}

i = i-1

fin_mientras

{Insertar el elemento en la posición P}

NOM(P)   =    ‘nuevo elemento’

{Actualizar el contador de elementos del vector}

n =    n+1

fin

c) Borrarelementos (Elimina elementos de un vector)

Algoritmo de Borrado

Inicio

{se utilizará una variable auxiliar AUX, que contendrá el valor del elemento que se desea borrar}

AUX =   NOM(i)

desde i = j hasta N-1 hacer

{llevar elemento j+1 hacia arriba}

NOM(i) = NOM(i+1)

fin_desde

{actualizar contador de elementos}

{ahora tendrá un elemento menos, N-1}

N =  N-1

Fin