Fandom

Scratchpad

PLE:Unidad8Ejercicio03

216,209pages on
this wiki
Add New Page
Discuss this page0 Share

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.

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();
}

Also on Fandom

Random wikia