Está en la página 1de 4

Declarar Vectores con C++

El siguiente ejemplo es similar al ejercicio anterior de vectores, la diferencia es que el


tamao del vector se asigna en tiempo de ejecucin, la aplicacin permite almacenar los
datos de tipo entero dentro del vector. Una ves lleno el vector, se realizan operaciones sobre
los elementos almacenados.

Entre las operaciones que se realizan sobre los datos del vector estn:

Calcular el promedio de los nmeros enteros almacenados en el vector

Determinar cual es el elemento mayor y menor dentro del vector

Invertir los elementos del vector.

Fichero declararvector.h

#ifndef DECLARARVECTOR_H
#define DECLARARVECTOR_H
class DeclararVector
{
private:
int tamano; //Se define un atributo de tipo entero para asignar el tamao que tendr el vector.
//Se define una variable Vector de tipo entero como puntero (*) para declarar el vector, esto para indicar que al
//vector se le asignara el tamao en tiempo de ejecucin y asignar la direccin de memoria en donde
//se almacenara el primer elemento del vector.
int* Vector;
void Limpiar(); //Mtodo para liberar la memoria del vector.
public:
DeclararVector();
virtual ~DeclararVector();
//Mtodos modificadores y selectores para asignar y obtener el tamao del vector.
void setTamano(int N);
int getTamano();
//Mtodos modificadores y selectores para asignar y obtener los elementos del vector.
void setVector(int p, int ve);
int getVector(int p);
//Mtodos para realizar operaciones sobre los elementos del vector.
int mayorElemento();
int menorElemento();
double promedioVector();
void invertirVector();
};
Fichero declararvector.cpp
#include "declararvector.h"
#include <iostream>
using namespace std;
DeclararVector::DeclararVector()
{
tamano = 0;
Vector = NULL; //Cuando el vector no tiene tamao se asigna vaco o nulo.
}

DeclararVector::~DeclararVector()
{
//dtor
}
void DeclararVector::Limpiar(){
if (tamano > 0){
tamano = 0;
//Con delete se llama al destructor de la clase para borrar el objeto, las llaves se utilizan siempre que el
//objeto a eliminar sea de tipo vector.
delete []Vector;
}
}
void DeclararVector::setTamano(int N){
tamano = N;
if (N > 0){
//Se declara y asigna el tamao que tendr el vector de tipo entero en tiempo de ejecucin.
Vector = new int[N];
}
}
int DeclararVector::getTamano(){
return tamano;
}
void DeclararVector::setVector(int p, int ve){
Vector[p] = ve;
}
int DeclararVector::getVector(int p){
return Vector[p];
}
int DeclararVector::mayorElemento(){
int i;
int mayor = getVector(0);
for (i=0; i<=getTamano()-1; i++){
if (getVector(i) > mayor){
mayor = getVector(i);
}
}
return mayor;
}
int DeclararVector::menorElemento(){
int i;
int menor = getVector(0);
for (i=0; i<=getTamano()-1; i++){
if (getVector(i) < menor){
menor = getVector(i);
}
}
return menor;
}
double DeclararVector::promedioVector(){
int i, contador;
double suma, promedio;
suma = 0;
contador = 0;
for (i=0; i<=getTamano()-1; i++){
suma = suma + getVector(i);
contador = contador + 1;
}
promedio = suma/contador;
return promedio;
}
void DeclararVector::invertirVector(){
int aux; //Se declara una variable auxiliar para guardar temporalmente los datos de tipo entero del vector.
int izq = 0; //Primera posicin del vector.
int der = getTamano()-1; //Ultima posicin del vector.
while (izq < der){
aux = getVector(izq); //Se asigna a la variable auxiliar lo que esta en la primera posicin del vector.
//Se asigna en la primera posicin del vector el valor que esta en la ultima posicin.
setVector(izq, getVector(der));
setVector(der, aux); //Se asigna en la ultima posicin del vector lo que estaba en la primera posicin.
izq++;
der--;
}
}

Fichero main.cpp
#include "declararvector.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int tam;
int valorElemento;
DeclararVector obj;
cout << "*********** PRACTICA UTILIZANDO VECTORES ***********\n";
cout << "\n";
cout << "________________________________________________ \n";
cout << "\n DIGITE EL NUMERO DE ELEMENTOS DEL VECTOR \n";
cout << "________________________________________________ \n \n";
cout << "Cuantos elementos tendra en vector: ";
cin >> tam;
obj.setTamano(tam);
cout << "________________________________________________ \n";
cout << "\n DIGITE LOS VALORES DE LOS ELEMENTOS DEL VECTOR \n";
cout << "________________________________________________ \n \n";
for (int i=0; i<=obj.getTamano()-1; i++){
cout << "Digite el valor del elemento " << i << ": ";
cin >> valorElemento;
obj.setVector(i, valorElemento);
}
cout << "________________________________________________ \n";
cout << "\n OPERACIONES CON LOS ELEMENTOS DEL VECTOR \n";
cout << "________________________________________________ \n \n";
cout << "\n";
cout << setiosflags(ios::showpoint | ios::uppercase);
cout << "El PROMEDIO de elementos del vector es: " << setprecision(4) << obj.promedioVector();
cout << "\n";
cout << "\n";
cout << "El elemento MAYOR del vector es: " << obj.mayorElemento();
cout << "\n";
cout << "\n";
cout << "El elemento MENOR del vector es: " << obj.menorElemento();
cout << "\n";
cout << "________________________________________________ \n";
cout << "\n ELEMENTOS DEL VECTOR INVERTIDOS \n";
cout << "________________________________________________ \n \n";
obj.invertirVector();
for (int i=0; i<=obj.getTamano()-1; i++){
cout << "Valor del elemento de la posicion " << i << " es: " << obj.getVector(i) << "\n";
}
cout << "\n";
}

También podría gustarte