Fandom

Scratchpad

PLE:Unidad8Ejercicio03

224,550pages on
this wiki
Add New Page
Discuss this page0 Share

Fichero conjunto.h

/*
conjunto.h
*/

class conjunto
{
   private:
        int elementos[64];
        int cont;
   public:
        conjunto();
        void agregar(int e);
        void eliminar(int e);
        bool esMiembro(int e);
        int posicion(int e);
        void imprimir();
        int operator[](int i);
        bool operator==(conjunto c);
        bool operator!=(conjunto c);
        conjunto &operator=(conjunto c);
        conjunto operator*(conjunto c);
        conjunto operator+(conjunto c);
        conjunto operator-(conjunto c);
};

Fichero conjunto.cpp

/*
programa:       ej03
Descipcion:     conjunto.cpp
*/
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include "conjunto.h"

conjunto::conjunto()
{
        cont = 0;
}

bool conjunto::esMiembro(int e)
{
        int i;
        for(i=0; i < cont; i++)
                if(elementos[i] == e)
                        return true;
        return false;
}

void conjunto::agregar(int e)
{
        if(!esMiembro(e))
                elementos[cont++] = e;
}

int conjunto::posicion(int e)
{
        int i;
        for(i=0; i < cont; i++)
                if(elementos[i] == e)
                        return i;
        return -1;
}

void conjunto::eliminar(int e)
{
        int i;
        if(esMiembro(e))
        {
                for(i = posicion(e); i < cont-1; i++)
                {
                        elementos[i] = elementos[i+1];
                }
                cont--;
        }
}

void conjunto::imprimir()
{
        int i;
        cout << "{";
        for(i=0; i < cont-1; i++)
        {
                cout << elementos[i] << ", ";
        }
        // mostramos el ultimo elemento si no está vacio el conjunto
        if(i < cont)
                cout << elementos[i];
        cout << "}";
}

int conjunto::operator[](int i)
{
        return elementos[i];
}

bool conjunto::operator==(conjunto c)
{
        int i;
        if(cont == c.cont)
        {
                for(i = 0; i < cont; i++)
                        if(!c.esMiembro(elementos[i]))
                                return false;
                return true;
        }
        return false;
}

bool conjunto::operator!=(conjunto c)
{
        return !(*this == c);
}

conjunto &conjunto::operator=(conjunto c)
{
        int i;
        cont = c.cont;
        for(i = 0; i < cont; i++)
                elementos[i] = c.elementos[i];
        return *this;
}

conjunto conjunto::operator*(conjunto c)
{
        int i;
        conjunto res;
        for(i = 0; i < cont; i++)
                if(c.esMiembro(elementos[i]))
                        res.agregar(elementos[i]);
        return res;
}

conjunto conjunto::operator+(conjunto c)
{
        int i;
        conjunto res;
        for(i = 0; i < cont; i++)
                res.agregar(elementos[i]);
        for(i = 0; i < c.cont; i++)
                res.agregar(c.elementos[i]);
        return res;
}

conjunto conjunto::operator-(conjunto c)
{
        int i;
        conjunto res;
        for(i = 0; i < cont; i++)
                if(!c.esMiembro(elementos[i]))
                        res.agregar(elementos[i]);
        return res;
}


Fichero ej03.cpp

/*
programa:       ej03
Descipcion:     Usamos clase conjunto.
*/
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include "conjunto.h"

void main()
{
        conjunto c1,c2,c3,c4,c5;
        c1.agregar(1);
        c1.agregar(3);
        c1.agregar(5);
        cout << endl << "Conjunto1 = ";
        c1.imprimir();
        c1.eliminar(3);
        cout << endl << "Conjunto1 (tras eleminar 3) = ";
        c1.imprimir();
        c2 = c1;
        c2.agregar(3);
        cout << endl << "Conjunto2 (c1 + elemento 3) = ";
        c2.imprimir();

        c1.eliminar(1);
        cout << endl << "Conjunto1 (tras eliminar 1)= ";
        c1.imprimir();
        if(c1 == c2)
                cout << endl << "Los conjuntos c1 y c2 son iguales";
        else
                cout << endl << "Los conjuntos c1 y c2 son desiguales";
        c3 = c1 * c2;
        cout << endl << "Conjunto3 (interseccion c1 y c2) = ";
        c3.imprimir();

        c4 = c1 + c2;
        cout << endl << "Conjunto4 (union c1 y c2) = ";
        c4.imprimir();

        c5 = c1 - c2;
        cout << endl << "Conjunto5 (diferencia c1 y c2) = ";
        c5.imprimir();
        getch();
}

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.