Ir ao conteúdo
  • Cadastre-se

Pempa

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. Vangodp, está em C#. Eu não mencionei a linguagem no título, mas botei uma tag informando. Abraços!
  2. Boa noite, amigos do Fórum. Sou iniciante nos estudos em programação e como tal estou tendo problemas para resolver o seguinte exercício: "Faça um programa que solicite ao usuário 2 conjuntos, A e B, de números inteiros, de tamanho M e N, respectivamente e sem repetições internas, isto é, o vetor A não pode conter duas vezes o mesmo valor, mas pode ter valores comuns com o vetor B. Os valores M e N devem ser lidos do teclado, antes da leitura de cada conjunto, e devem ser estar no intervalo [0;100]. Após a leitura dos conjuntos, efetuar as seguintes operações: - Exibir os conjuntos A e B ordenados em ordem crescente - União dos conjuntos em ordem crescente - Interseção dos conjuntos Caso um dos conjuntos acima seja vazio, exibir a mensagem: 'Conjunto vazio'" Só consegui fazer para exibir A e B ordenados em ordem crescente (embora não apareça no código abaixo, acabei apagando), mas não consegui achar solução para exibir a união e a intersecção dos dois conjuntos. Se alguém puder me ajudar e eventualmente dar sugestões para melhorar o que eu já fiz, ficaria muito grato! Segue o código: namespace VetorNumRepetidos { class Program { static void Main(string[] args) { int troca = 0; int repetA = 1, repetB = 1; // vetor A para os valores do conjunto A int[] vetA = new int[5]; // Vetor B para os valores do conjunto B int[] vetB = new int[5]; // Vetor C para receber os valores de AUC (leia-se A união com C) int[] vetC = new int[10]; // Laço for para carregar os dois vetores for (int i = 0; i < vetA.Length; i++) { // Entrada dos valores do vetor A Console.WriteLine("Digite um valor para o vetor A: "); vetA[i] = Convert.ToInt32(Console.ReadLine()); // Entrada dos valores do vetor B Console.WriteLine("Digite um valor para o vetor B: "); vetB[i] = Convert.ToInt32(Console.ReadLine()); } // Laço Do While com for para varrer o vetor em busca de repetidos do { // Variável que armazena os repetidos encontrados repetA--; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < vetA.Length; j++) { if (vetA[i] == vetA[j]) { repetA++; // Ao encontrar pede ao usuário para informar outro valor Console.WriteLine("Elemendo {0} igual a {1}! Digite outro: ", vetA[i], vetA[j]); vetA[i] = Convert.ToInt32(Console.ReadLine()); } } } // Condição de teste para sair do laço } while (repetA != 0); // Laço Do While com for para varrer o vetor em busca de repetidos do { // Variável que armazena os repetidos encontrados repetB--; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < vetB.Length; j++) { if (vetB[i] == vetB[j]) { repetB++; // Ao encontrar pede ao usuário para informar outro valor Console.WriteLine("Elemendo {0} igual a {1}! Digite outro: ", vetB[i], vetB[j]); vetB[i] = Convert.ToInt32(Console.ReadLine()); } } } // Condição de teste para sair do laço } while (repetB != 0); // Laço for para ordenar os valores do vetor A em ordem crescente for (int i = 0; i < 3; i++) { for (int j = i + 1; j < vetA.Length; j++) { if (vetA[i] > vetA[j]) { troca = vetA[j]; vetA[j] = vetA[i]; vetA[i] = troca; } } } // O mesmo para o vetor B for (int i = 0; i < 3; i++) { for (int j = i + 1; j < vetA.Length; j++) { if (vetB[i] > vetB[j]) { troca = vetB[j]; vetB[j] = vetB[i]; vetB[i] = troca; } } } Console.WriteLine(); // Dois laços for para passar os valores dos vetores A e B para o C for (int i = 0; i < vetA.Length; i++) { vetC[i] = vetA[i]; } for (int i = 5; i < vetC.Length; i++) { vetC[i] = vetB[i - 5]; } // Laço for para ordenar o vetor em ordem crescente for (int i = 0; i < 8; i++) { for (int j = i + 1; j < vetC.Length; j++) { if (vetC[i] > vetC[j]) { troca = vetC[j]; vetC[j] = vetC[i]; vetC[i] = troca; } } } // Após aqui não consegui desenvolver um algoritmo para mostrar // os valores de AUC e A^B (A intersecção com B) // /* for (int i = 1; i < 10; i++) { if (vetC[i - 1] == vetC[i]) Console.WriteLine(); } */ } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...