EXERCICIO CONJUNTODEINTEIROS PUC
Por: Braulio Marcio Moreira Novais • 16/3/2016 • Exam • 1.822 Palavras (8 Páginas) • 297 Visualizações
class ConjuntoDeInteiros
{
private int[] conjunto;
private int tam;
public ConjuntoDeInteiros(int tam, int[] conjunto) // construtora(s) entram aqui:
{
this.conjunto = conjunto;
this.tam = tam;
}
// final da construtora
public void ImprimeConjunto() // procedimento para imprimir
{
for (int i = 0; i < tam; i++)
{
Console.WriteLine(conjunto[i]);
}
}
public int GetElemento(int posição)
{
if (posição < 0) // se a posicao for menor do que zero, retorna a mensagem
{
Console.WriteLine("Posição não encontrada!");
return -1;
}
else if (posição > conjunto.Length) //se o conjunto for maior do que o informado imprime a mensagem abaixo
{
Console.WriteLine("Posição não encontrada!");
return -1;
}
else
return conjunto[posição]; // aceita a posicao e insere no conjunto
}
public void SetElemento(int elemento, int posição)
{
if (posição < 0)
{
Console.WriteLine("Posição não encontrada!");
}
else if (posição > conjunto.Length)
{
Console.WriteLine("Posição não encontrada!");
}
else
conjunto[posição] = elemento;
}
public static ConjuntoDeInteiros Uniao(ConjuntoDeInteiros c1, ConjuntoDeInteiros c2) // funcao Uniao com os parametros dos objetos c1 e c2
{
int[] a = c1.conjunto; //declaro variavel a e referencio como c1.conjunto
int[] b = c2.conjunto; //declaro variavel b e referencio como c2.conjunto
int tamUniao = a.Length + b.Length; //declaro tamUniao como a soma do conjunto a e b com seus tamanhos
for (int i = 0; i < a.Length; i++) //inicio do procedimento para verificar numeros repetidos
{
int valorA = a[i]; // percorrendo o vetor a
for (int j = 0; j < b.Length; j++) // percorrendo o vetor b
{
if (valorA == b[j])
{
tamUniao--; //tamanho do vetor sera reduzido caso tenha algum numero repetido
b[j] = -999999; // o numero que encontrar repetido sera atribuido este valor -999999
}
}
} //fim do procedimento de verificar numeros repetidos
int[] uniao = new int[tamUniao]; //criado um vetor uniao com o "tamanho" do dos conj a e b sem os valores repetidos
for (int i = 0; i < a.Length; i++)
{
uniao[i] = a[i]; // processo para preencher o vetor novo uniao com os elementos de A
}
...