Ir ao conteúdo
  • Cadastre-se
Main.cpp

C Intersecção - União e Diferença entre dois Vetores

Recommended Posts

Conjunto interseção são os elementos comuns
entre conjuntos relacionados.
Dados dois conjuntos A e B, chama-se
conjunto diferença ou diferença entre A e B
o conjunto formado pelos elementos de A
que não pertencem a B.
Conjunto união são todos os elementos
dos conjuntos relacionados.

Acompanhe mais no site abaixo:

http://www.brasilescola.com/matematica/operacoes-com-conjuntos.htm

Partindo destas informações criei este programa,
em Linguagem C aplicando as lógicas necessárias
para seu funcionamento.

 

Veja algumas imagens do programa em execução:

 

uni_1.PNG.cc86edc47c09c6f8b50dc070ff9adebc.PNG

uni_2.PNG.0053ff01d9eb11a21e875ce87aff5ea6.PNG

 

Veja abaixo o código do programa:

 

#include <stdio.h>
#include <conio.h>
#define tam 5
void got_color ( int tam_lin_ini, int tam_lin_fim, int tam_ini_col,
         int tam_fim_col, int a, int b ) {
     int i, c;
     if ( a >= 1 && a <= 16 ) {
         textcolor ( a );
     }
     if ( b >= 1 && b <= 16 ) {
         textbackground ( b );
     }
     for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) {
         for ( c = tam_ini_col; c < tam_fim_col; c++ ) {
              gotoxy ( c, i );
              printf ( " " );
         }
     }
}
int main ( void ) { // Interseccao e difereca entre vetores
     int V = 10;
     system ( "title INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" );
     system ( "cls" );
     int a = 0, i, j = 0, k = 0, h = 0, aux = 0, auxin = 0, vezes, temp;
     int Vetor [ tam ], Vet_or [ tam ], Vet [ tam ], Ve_t [ tam ],
              Vet_o_r [ tam ];
     for ( i = 0; i < tam; i++ ) {
         got_color ( 2, 25, 3, 79, 2, 15 );
         textcolor ( LIGHTRED );
         gotoxy ( 19, 3 );
         printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 32, 5 );
         printf ( "Preenchendo o vetor A" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 19, 7 );
         printf ( "Informe o " );
         textcolor ( LIGHTRED );
         printf ( "%do", i + 1 );
         textcolor ( LIGHTBLUE );
         printf ( " número para o vetor A " );
         textcolor ( LIGHTRED );
         scanf ( "%d", &Vetor [ i ] );
         fflush ( stdin );
     }
     for ( i = 0; i < tam; i++ ) {
         clrscr ( );
         system ( "Color C6" );
         got_color ( 2, 25, 3, 79, 2, 15 );
         textcolor ( LIGHTRED );
         gotoxy ( 19, 3 );
         printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 32, 5 );
         printf ( "Preenchendo o vetor B" );
         textcolor ( LIGHTBLUE );
         gotoxy ( 19, 7 );
         printf ( "Informe o " );
         textcolor ( LIGHTRED );
         printf ( "%do", i + 1 );
         textcolor ( LIGHTBLUE );
         printf ( " número para o vetor B " );
         textcolor ( LIGHTRED );
         scanf ( "%d", &Vet_or [ i ] );
         fflush ( stdin );
     }
     clrscr ( );
     system ( "Color B5" );
     got_color ( 2, 25, 3, 79, 2, 15 );
     textcolor ( LIGHTRED );
     gotoxy ( 19, 3 );
     printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 25, 5 );
     printf ( "Abaixo os dois vetores preenchidos" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 29, 7 );
     printf ( "Vetor A " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 9 );
     for ( i = 0; i < tam; i++ ) {
         printf ( " %d ", Vetor [ i ] );
     }
     getche ( );
     textcolor ( LIGHTBLUE );
     gotoxy ( 29, 11 );
     printf ( "Vetor B " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 13 );
     for ( j = 0; j < tam; j++ ) {
         printf ( " %d ", Vet_or [ j ] );
         Vet_o_r [ a ] = Vet_or [ j ];
         a++;
     }
     getche ( );
     i = 0;
     aux = 0;
     auxin = 0;
     for ( i = 0; i < tam; i++ ) {
         for ( j = 0; j < tam; j++ ) {
              if ( Vetor [ i ] != Vet_or [ j ] ) {
                   auxin++;
              }
         }
         if ( auxin == tam ) {
              Ve_t [ aux ] = Vetor [ i ];
         } else {
              Ve_t [ aux ] = 0;
         }
         aux++;
         auxin = 0;
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 15 );
     printf ( "Abaixo, a diferença entre os dois vetores " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 17 );
     for ( i = 0; i < tam; i++ ) {
         if ( Ve_t [ i ] != 0 ) {
              printf ( " %i ", Ve_t [ i ] );
         }
     }
     getche ( );
     for ( i = 0; i < tam; i++ ) {
         Vet [ i ] = Vetor [ i ];
         Vet [ i + 5 ] = Vet_or [ i ];
     }
     for ( i = 0; i <= V; i++ ) {
         vezes = 1;
         j = i + 1;
         while ( j <= V )
              if ( Vet [ j ] != Vet [ i ] )
                   j++;
              else {
                   vezes++;
                   V--;
                   Vet [ j ] = Vet [ V + 1 ];
              }
     }
     for ( i = 0; i <= V; i++ ) {
         temp = i;
         aux = Vet [ i ];
         for ( j = ( i + 1 ); j <= V; j++ )
              if ( Vet [ j ] <= aux ) {
                   temp = j;
                   aux = Vet [ temp ];
                   Vet [ temp ] = Vet [ i ];
                   Vet [ i ] = aux;
              }
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 19 );
     printf ( "Abaixo, a união dos dois vetores já ordenados" );
     textcolor ( LIGHTRED );
     gotoxy ( 16, 21 );
     for ( i = 0; i <= V; i++ )
         printf ( " %d ", Vet [ i ] );
     textcolor ( BLACK );
     gotoxy ( 31, 23 );
     printf ( "PRESSIONE QUALQUER TECLA " );
     getche ( );
     clrscr ( );
     system ( "Color 10" );
     got_color ( 2, 25, 3, 79, 2, 15 );
     textcolor ( LIGHTRED );
     gotoxy ( 19, 3 );
     printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 25, 5 );
     printf ( "Abaixo os dois vetores preenchidos" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 29, 7 );
     printf ( "Vetor A " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 9 );
     for ( i = 0; i < tam; i++ ) {
         printf ( " %d ", Vetor [ i ] );
     }
     getche ( );
     textcolor ( LIGHTBLUE );
     gotoxy ( 29, 11 );
     printf ( "Vetor B " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 13 );
     for ( a = 0; a < tam; a++ ) {
         printf ( " %d ", Vet_o_r [ a ] );
     }
     getche ( );
     for ( i = 0; i < tam; i++ ) {
         for ( j = 0; j < tam; j++ ) {
              if ( Vetor [ i ] == Vet_o_r [ j ] ) {
                   Vet [ h ] = Vet_o_r [ j ];
                   h++;
              }
         }
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 15 );
     printf ( "Números comuns entre os dois Vetores " );
     textcolor ( LIGHTRED );
     gotoxy ( 29, 17 );
     k = h;
     if ( k == 0 ) {
         textcolor ( LIGHTGREEN );
         printf ( " Vetores distintos" );
     }
     for ( h = 0; h < k; h++ )
         printf ( " %i ", Vet [ h ] );
    /*
    textcolor ( LIGHTBLUE );
     gotoxy ( 17, 19 );
     printf ( "Por: " );
     textcolor ( LIGHTMAGENTA );
     printf ( "Samuel Lima" );
     textcolor ( BLACK );
     gotoxy ( 17, 20 );
     printf ( "sa_sp10@hotmail.com" );
     Sleep ( 1800 );
     */
     textcolor ( LIGHTRED );
     gotoxy ( 36, 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
     exit ( 0 );
}

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×