PR2 - Apunte Práctico Vectores
PR2 - Apunte Práctico Vectores
PR2 - Apunte Práctico Vectores
Vectores
Los vectores son estructuras de datos que permiten almacenar, en una misma
variable, varios elementos a la vez. Anteriormente, lo que conocíamos como variable,
y a partir de ahora llamaremos variable simple, permitía guardar de a un dato a la
vez. Dicho dato podía cambiar, de allí el concepto de variable, pero al modificar el
dato en una variable pisábamos el valor anterior. En consecuencia, no podíamos tener
una variable simple que, a la vez, tenga los números 5, 7 y 9. Sólo puede tener uno
de ellos a la vez.
Resulta claro que con la variable nota podemos guardar de a una nota a la vez. En
cambio con el vector de notas tenemos la capacidad de guardar hasta 5 notas. La
razón de que sean solamente cinco es el tamaño que utilizamos al declarar el vector.
Página 1 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
Declaración de vectores
Si bien C++ dispone de otro tipo de vectores que se verán en Laboratorio II, en
Laboratorio I trabajaremos con vectores y matrices de tamaño fijo. Esto significa que
en el momento de la declaración del vector debemos determinar a partir de un valor
entero y constante el tamaño del vector. Ese tamaño será la cantidad total de
elementos que tendrá el vector y, por tanto, la capacidad máxima de elementos a
almacenar.
Ejemplos:
Los tamaños de los vectores siempre deben ser un valor constante. Declarar un
vector definiendo el tamaño a partir de una variable, aunque cierta configuración del
compilador permita hacerlo, es conceptualmente erróneo y puede llevar a errores
de funcionamiento.
Inicialización de vectores
Como es sabido, una variable puede declararse sin inicializar asumiendo que dicha
variable tendrá basura o puede declararse y a la vez inicializarse pudiendo elegir qué
valores tendrá el vector. Por ejemplo, un uso práctico y habitual con vectores
numéricos es inicializarlos en cero si luego vamos a utilizar dichos vectores para
contar o acumular. La inicialización de un vector al momento de la declaración se
realiza de la siguiente manera:
Página 2 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
string nombresMeses[3];
int diasMeses[3];
nombresMeses[0] = "Enero";
nombresMeses[1] = "Febrero";
nombresMeses[2] = "Marzo";
diasMeses[0] = 31;
diasMeses[1] = 28; // Salvo en años bisiestos que son 29
diasMeses[2] = 31;
cout << nombresMeses[0] << " tiene " << diasMeses[0] << " días." << endl;
Página 3 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
diasMeses[0] = 31;
nombresMeses[2] = "Marzo";
Es importante tener claro que cualquier instrucción que utilizábamos con variables
simples para modificar el valor de las mismas es posible utilizar con vectores. Por
ejemplo, las siguientes instrucciones son totalmente válidas:
nombresMeses[0] = nombresMeses[1];
cin >> nombresMeses[2];
diasMeses[0]++;
diasMeses[1] += 10;
cout << nombresMeses[0] << " tiene " << diasMeses[0] << " días." << endl;
Página 4 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
Indexación en Base-0
Ya hemos aprendido cómo acceder a los distintos elementos de nuestros vectores.
Tanto para modificar sus valores como para accederlos y utilizarlos como salida por
pantalla o para asignarlo a otro elemento o variable.
También es evidente que los índices o posiciones que nos permiten acceder a cada
uno de los elementos del vector tienen la particularidad de comenzar en cero.
Esto es muy común en la programación y prácticamente todos los lenguajes de
programación manejan sus arrays y colecciones de esta manera.
Esto significa que si quisiera un vector para guardar el sueldo de 100 empleados de
una empresa y quisiera pedir por teclado el sueldo del primer y último empleado
tendría que escribir el siguiente conjunto de instrucciones:
float sueldos[100];
cin >> sueldos[0];
cin >> sueldos[99];
Esta regla se cumple siempre que un vector sea con indexación en base 0. En C++
siempre lo son.
Página 5 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
float sueldos[100];
int numeroEmpleado;
cin >> numeroEmpleado;
cin >> sueldos[numeroEmpleado - 1];
Página 6 de 7
PUENTES UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL GENERAL PACHECO
PLAN DE INTEGRACIÓN TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
TERRITORIAL UNIVERSITARIA PROGRAMACIÓN Y LABORATORIO II
Desafío
Ejemplo:
{1, 5, 3, 4, 2}
Z=3
NOTA: No hace falta mostrar cuáles son los pares encontrados pero es un plus si
logran hacerlo.
ACLARACIÓN: Por pares de números distintos se entiende que, si por ejemplo
encontramos el par {1, 56}, entonces no tenemos que contar el par {56, 1}
Página 7 de 7