Buscar

Interseccção entre conjuntos - Pascal

Faça uma função em Pascal que receba dois conjuntos A e B como parâmetros de entrada e retorne
o valor 0 (zero) caso A seja igual a B. Caso sejam diferentes, a função deve retornar 1 caso A esteja
contido em B, o valor 2 caso B esteja contido em A ou o valor 3 caso nenhum dos casos anteriores
aconteça. A e B devem conter valores inteiros no intervalo [1,50].

💡 3 Respostas

User badge image

Matheus Silva

Program questao4 (input,output);

  Type A= set of 1..50; B= set of 1..50;

Var conj_a: A; conj_b: B; conj_func: integer;

Function Conjuntos (conj_a: A; conj_b: B): integer;

      Begin

            if conj_a = conj_b then begin Conjuntos:=0; {Testa se os conjuntos são iguais}

            end

                else begin

                       if conj_a <= conj_b then Conjuntos:=1 {Testa se A está contido em B}

                       else if conj_b <= conj_a then Conjuntos:=2 {Testa se B está contido em A}

                       else Conjuntos:=3

               end

            End;

Begin

          conj_a:=[1,3,5]; {voce pode alterar os componentes do conjunto para testar o retorno}

          conj_b:=[6,7];

          conj_func := Conjuntos(conj_a, conj_b);

          write(conj_func);

          readln()

End.

1
Dislike0
User badge image

Andre Smaira

 

Nesta resolução, foi usado a linguagem C, dada a fácil compreensão e baixa complexidade. Nele foi utilizado a função strncmp(), que verifica os caracteres em cada campo do vetor informado, por isso foram colocados os dois vetores em ret, para ficar melhor a verificação desses vetores, onde no primeiro caso retornará 0, se ambos forem iguais, no segundo 1 se forem diferentes e no terceiro vai imprimir o ret, pois o intervalo pedido ficou confuso, seria no intervalo de intersecção dos vetores? Um intervalo específico de campos? Por isso ficou apenas a impressão dele no terceiro caso.


#include <stdio.h>

int main ()

{

    int A[5] = {0,0,0,0,0};

    int B[5] = {0,0,0,0,0};

    int ret, i; //string de retorno

    printf ("Informe os valores de A: %d ");

    scanf ("%d", &A);

    printf ("Informe os valores de B: %d ");

    scanf ("%d", &B);

    ret = strncmp(A, B, 5);//coloco ambos vetores no retorno para comparação, a funcao strncmp compara os campos

    for (i = 0, i <= 5, i++)

    {

        if (ret == ret)

            return 0; // primeiro caso, caso seja iguais

        else if (ret != 0) // segundo caso, diferentes

            return 1;

        else

            return ("%d ", ret); // tericeiro caso, nenhum dos anteriores

    }

}

1
Dislike1
User badge image

RD Resoluções

Nesta resolução, foi usado a linguagem C, dada a fácil compreensão e baixa complexidade. Nele foi utilizado a função strncmp(), que verifica os caracteres em cada campo do vetor informado, por isso foram colocados os dois vetores em ret, para ficar melhor a verificação desses vetores, onde no primeiro caso retornará 0, se ambos forem iguais, no segundo 1 se forem diferentes e no terceiro vai imprimir o ret, pois o intervalo pedido ficou confuso, seria no intervalo de intersecção dos vetores? Um intervalo específico de campos? Por isso ficou apenas a impressão dele no terceiro caso.


#include <stdio.h>

int main ()

{

int A[5] = {0,0,0,0,0};

int B[5] = {0,0,0,0,0};

int ret, i; //string de retorno

printf ("Informe os valores de A: %d ");

scanf ("%d", &A);

printf ("Informe os valores de B: %d ");

scanf ("%d", &B);

ret = strncmp(A, B, 5);//coloco ambos vetores no retorno para comparação, a funcao strncmp compara os campos

for (i = 0, i <= 5, i++)

{

if (ret == ret)

return 0; // primeiro caso, caso seja iguais

else if (ret != 0) // segundo caso, diferentes

return 1;

else

return ("%d ", ret); // tericeiro caso, nenhum dos anteriores

}

}

1
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais