CLASE VECTORES
Material de Estudio
Tema: ESTRUCTURAS DE DATOS ESTATICAS: VECTORES
Profesor : Braulio Barrios - Marzo de 2009
Normalmente, utilizamos VARIABLES para almacenar (en memoria RAM) la información que un programa
procesa. Por ejemplo: El CODIGO de un alumno, el NOMBRE, etc. y de acuerdo con esto podemos escribir un
algoritmo que LEA y muestre el código y nombre de un alumno, así:
ALUMNOS
ESCRIBA (“***** Captura de datos del Estudiante ***** ”)
ESCRIBA (“ Digite Código del Alumno “);Lea(CODIGO)
ESCRIBA (“ Digite Nombre del alumno “); Lea(NOMBRE)
ESCRIBA (“ ****** Ahora Mostraré un INFORME de datos leídos ***** ”)
ESCRIBA (“ Código : “, CODIGO)
ESCRIBA (“ Nombre : “, NOMBRE)
FIN ALGORITMO ALUMNOS
Observe bien el anterior algoritmo, fíjese que UNICAMENTE podemos introducir y mostrar lainformación de UN alumno a la vez.
Pero la realidad es otra, es decir, se requiere procesar la información de VARIOS alumnos, por ejemplo, en el
curso de estructuras de datos hay matriculados aproximadamente 15 estudiantes en cada grupo. Que pasaría si
quisiéramos introducir los CODIGOS y NOMBRES de TODOS los alumnos?. Podríamos pensar en re-escribir el
anterior algoritmo utilizando entonces un CICLOREPETITIVO (Remítase a la lección: “FUNDAMENTOS DE
ALGORITMOS Y PROGRAMACIÓN ESTRUCTURADA” ), por ejemplo, un ciclo PARA (Hacer Hasta) así:
ALUMNOS_VERSION2.0
ESCRIBA (“ **** Captura de datos del Estudiante ***** ”)
PARA I
1 Hasta 15 Haga
ESCRIBA (“ Digite Código del Alumno “); Lea(CODIGO)
ESCRIBA (“ Digite Nombre del alumno “); Lea(NOMBRE)
ESCRIBA ( “ **** Ahora Mostraré un INFORME de datosleídos **** ” )
ESCRIBA (“ Código : “, CODIGO)
ESCRIBA (“ Nombre : “, NOMBRE)
FPARA
FIN ALGORITMO ALUMNOS
Este algoritmo evidentemente procesa la información de los 15 alumnos pero tiene una falla, y es que al final del
proceso ( por fuera del ciclo PARA) no podríamos hacer un informe que incluya los CODIGOS y NOMBRES de
TODOS los alumnos cuya información se procesó, ya que cuando digitemos elCODIGO y el NOMBRE del segundo
alumno entonces esta nueva información SOBREESCRIBE a la primera, y al escribir la del tercer alumno se
SOBREESCRIBE la del segundo y así sucesivamente, es decir, se BORRA el CODIGO y el NOMBRE del anterior
estudiante; La razón: Dos datos NO pueden convivir simultáneamente en la misma posición de memoria, es decir,
NO podemos resolver el problema con el enfoque que hemosplanteado. Entonces, la solución es: NO UTILIZAR
VARIABLES SIMPLES, sino una ESTRUCTURA DE DATOS para cada dato del alumno, esa ESTRUCTURA DE DATOS es un
VECTOR
Una estructura de datos es una organización de información dispuestos de manera lógica y coherente, de tal
manera que se facilite el acceso a los datos que contiene.
Según el dispositivo de almacenamiento, las Estructuras de Datos seclasifican en: ESTRUCTURAS EN MEMORIA
PRINCIPAL y ESTRUCTURAS EN DISCO DURO. Por su parte, las Estructuras en Memoria RAM pueden clasificarse
en dos grupos: ESTATICAS y DINAMICAS.
El término ESTATICA hace referencia a que una vez se halla definido el tamaño de la estructura de datos este NO
puede ser cambiado mientras se está ejecutando el programa (No se puede Ampliar Ni tampoco Reducir ).
VECTOR DEDATOS: Es una estructura estática que consiste en un conjunto de elementos que satisfacen lo
siguiente:
DEBE DIMENSIONARSE PREVIAMENTE
TODOS LOS ELEMENTOS SON DE IGUAL TIPO
LOS ELEMENTOS SE ALMACENA EN POSICIONES CONSECUTIVAS DE MEMORIA RAM
2
QUE ES DIMENSIONAR UN VECTOR ? es una acción que consiste en RESERVAR el tamaño que el vector ocupará
en memoria, es decir, cual es la cantidad MAXIMA deelementos que tendrá el vector. Esta cantidad MAXIMA de
elementos la deducimos según el problema que estemos resolviendo; por ejemplo: Si deseo almacenar los
CODIGOS de todos los alumnos de la clase y son aproximadamente 15 alumnos entonces lo aconsejable
es reservar en memoria (Dimensionar) espacio para un poco mas de esos elementos, digamos 20, es
decir, un poco por encima de la cantidad de...
Regístrate para leer el documento completo.