Ler dois vetores A e B com Ne M elementos respectivamente. Gerar um novo vetor C que corresponde à intersecção dos vetores A e B. Gerar um novo vetor D que corresponde à união dos vetores A e B. Imprimir os vetores A, B, C e D. Considerar que não existem elementos repetidos em cada um dos vetores A e B.

Passo 1

O enunciado pede para ler dois vetores A e B com N e M elementos, gerar o vetor C que é a interseção de A e B e o vetor D que é a união de A e B, e ao final imprimir A, B, C e D. O conteúdo aqui é teoria de conjuntos aplicada a vetores e vamos precisar usar operações de interseção e união, além de laços de repetição e teste de igualdade entre elementos.

Passo 2

Para gerar o vetor C (interseção), vamos percorrer cada elemento de A e verificar se ele também aparece em B. Se aparecer, adicionamos em C. Na teoria de conjuntos, isso corresponde a definir
$$
C = { x \in A \mid x \in B }\n$$
implementando via dois loops aninhados.

Passo 3

Para gerar o vetor D (união), vamos começar copiando todos os elementos de A para D e, em seguida, percorrer cada elemento de B. Para cada elemento de B, fazemos um teste de presença em A; se não estiver, adicionamos em D. Na teoria de conjuntos,
D = A cup B
que aqui traduzimos para “todos os de A mais os de B que ainda não estão em A”.

Passo 4

Por fim, basta imprimir os quatro vetores A, B, C e D na ordem pedida.

Resposta

// Pseudo-código para resolver o problema
leia N // tamanho de A
leia M // tamanho de B
para i de 1 até N faça
leia A[i]
para j de 1 até M faça
leia B[j]
// Construir C = interseção de A e B
tamC ← 0
para i de 1 até N faça
para j de 1 até M faça
se A[i] = B[j] então
C[tamC] ← A[i]
tamC ← tamC + 1
// Construir D = união de A e B
tamD ← N
para i de 1 até N faça
D[i-1] ← A[i] // copiar A para D
para j de 1 até M faça
existe ← falso
para i de 1 até N faça
se B[j] = A[i] então
existe ← verdadeiro
saia do laço interno
se não existe então
D[tamD] ← B[j]
tamD ← tamD + 1
// Impressão dos vetores
imprima "Vetor A: ", A[0…N-1]
imprima "Vetor B: ", B[0…M-1]
imprima "Interseção C: ", C[0…tamC-1]
imprima "União D: ", D[0…tamD-1]

Exercícios relacionados