#include <iostream>
#include "Calcular.h"
using namespace std;
void mostrarPositivos(Calcular* obj)
{
cout << "DATOS POSITIVOS:" << endl;
for(int i = 0; i < obj->getTamPos(); i++)
{
cout << obj->getPositivos(i) << " ";
}
cout << endl;
}
void mostrarNegativos(Calcular* obj)
{
cout << "DATOS NEGATIVOS:" << endl;
for(int i = 0; i < obj->getTamNeg(); i++)
{
cout << obj->getNegativos(i) << " ";
}
}
int main(void)
{
Calcular *obj = new Calcular();
int n;
for(int i = 0; i < 12; i++)
{
cout << "Digite numero de la posicion " << i << endl;
cin >> n;
obj->setNum(i, n);
}
obj->contar();
obj->clasificar();
mostrarPositivos(obj);
mostrarNegativos(obj);
}
#ifndef CALCULAR_H
#define CALCULAR_H
class Calcular
{
public:
Calcular();
virtual ~Calcular();
void contar();
void clasificar();
void setNum(int pos, int val);
int getNum(int pos);
void setPositivos(int pos, int val);
int getPositivos(int pos);
void setNegativos(int pos, int val);
int getNegativos(int pos);
void setTamPos(int n);
int getTamPos();
void setTamNeg(int n);
int getTamNeg();
protected:
private:// se definen 5 atributos y 1 metodo privados:
void crearVectores(int pos, int neg);
int *num;
int *positivos;
int *negativos;
int pos;
int neg;
};
#endif
#include "Calcular.h"
Calcular::Calcular()
{
num = new int [12];
pos = 0;
neg = 0;
}
Calcular::~Calcular()
{
}
void Calcular::crearVectores(int pos, int neg)
{
positivos = new int [pos];
negativos = new int [neg];
}
void Calcular::contar()
{
for(int i = 0; i < 12; i++)
{
if(num[i] < 0)
{
neg++;
}
else
{
pos++;
}
}
crearVectores(pos, neg);
setTamPos(pos);
setTamNeg(neg);
}
void Calcular::clasificar()
{
int aux1, aux2;
aux1 = 0;
aux2 = 0;
for(int i = 0; i < 12; i++)
{
if(num[i] < 0)
{
negativos[aux1] = num[i];
aux1++;
}
else
{
positivos[aux2] = num[i];
aux2++;
}
}
}
void Calcular::setNum(int pos, int val)
{
num[pos] = val;
}
int Calcular::getNum(int pos)
{
return num[pos];
}
void Calcular::setPositivos(int pos, int val)
{
positivos[pos] = val;
}
int Calcular::getPositivos(int pos)
{
return positivos[pos];
}
void Calcular::setNegativos(int pos, int val)
{
negativos[pos] = val;
}
int Calcular::getNegativos(int pos)
{
return negativos[pos];
}
void Calcular::setTamPos(int n)
{
pos = n;
}
int Calcular::getTamPos()
{
return pos;
}
void Calcular::setTamNeg(int n)
{
neg = n;
}
int Calcular::getTamNeg()
{
return neg;
}