[AJUDA] Conjunto/De Morgan

2 respostas
E

A questão do programa é mostrar que as leis de De Morgan se aplicam a classe Conjunto criada, é meu primeiro tópico aqui então não se muito bem como colocar o código:

public class Conjunto {
    private int tam;
    private Object vet[];
    private int indice;
    
public Conjunto(int tam){
    this.tam = tam;
    vet = new Object[this.tam];
    indice = 0;
    }
public Object getVet(int i){
    return vet[i];
}

public int getIndice(){
    return indice;
}

public int getTam(){
    return tam;
}

public boolean inserir(Object elemento){
    if(indice<tam){
        vet[indice] = elemento;
        indice++;
        return true;
    }
    return false;
}

public boolean pertence(Object elemento){
    for(int i = 0;i<indice;i++){
        if (elemento == vet[i]){
            return true;
        }
    }
    return false;
}

public boolean contem(Conjunto outro){
    int tamanho = this.tam;
    int cont = 0;
    for(int i = 0;i < outro.tam; i++){
        for(int j = 0;j <tamanho; j++){
            if(outro.vet[i]==vet[j]){
                cont++;
                j = (tamanho-1);
            }
        }
    }
    if(cont == outro.tam){
        return true;
    }
    return false;
}

    public Conjunto uniao(Conjunto outro){
         Conjunto uniao = new Conjunto(indice + outro.indice);
    for(int i = 0;i<indice;i++){
        uniao.inserir((int) vet[i]);
    }
    for(int i = 0;i<outro.indice;i++){
        uniao.inserir((int) outro.vet[i]);
    }
    return uniao;
}

public Conjunto intersecao(Conjunto outro){
    int tamanho = this.tam;
    Conjunto intersecao = new Conjunto(indice);
    for(int i = 0;i < outro.tam; i++){
        for(int j = 0;j <tamanho; j++){
            if(vet[j] == outro.vet[i]){
                intersecao.inserir((int) vet[j]);
            }
        }
    }
    return intersecao;
}

public Conjunto diferenca(Conjunto outro){
    int tamanho = this.tam;
    Conjunto diferenca = new Conjunto(indice);
    for(int i = 0;i < tamanho; i++){
        int cont = 0;
        for(int j = 0;j <outro.tam; j++){
            if(vet[i] == outro.vet[j]){
                cont++;
            }
        }
        if(cont==0){
            diferenca.inserir((int) vet[i]);
        }
    }
    return diferenca;
}

O problema é que no main a ultima linha está dando erro na hora da compilação:

public static void main(String[] args) {
    Conjunto Universo = new Conjunto(50);
    Conjunto A = new Conjunto(20);
    Conjunto B = new Conjunto(20);
    for(int i = 1;i < 51;i++){
        Universo.inserir(i);
    }
    for(int i = 1;i < 21;i++){
        A.inserir(i);
    }
    for(int i = 11;i < 31;i++){
        B.inserir(i);
    }
    Conjunto Ac = Universo.diferenca(A);
    Conjunto Bc = Universo.diferenca(B);
    Conjunto C = Universo.diferenca(A.uniao(B));
    Conjunto D = Universo.diferenca(A.intersecao(B));
    Conjunto E = Ac.uniao(Bc);
    Conjunto F = Ac.intersecao(Bc);

Quando removo a linha do conjunto F, ele compila direitinho, não sei o que está causando o erro
Essa é a mensagem que exibe quando coloco a linha do conjunto F:

Exception in thread “main” java.lang.NullPointerException

at lab_02.Conjunto.intersecao(Conjunto.java:77)

at lab_02.Lab_02.main(Lab_02.java:73)

C:\Users\Eduardo\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1

FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

2 Respostas

Mathob

Arruma o post ai, coloca os códigos dentros de ’ ', outra coisa, posta o que está escrito no erro.

E

Ajeitei lá

Criado 12 de abril de 2016
Ultima resposta 13 de abr. de 2016
Respostas 2
Participantes 2