vagnner 0 Denunciar post Postado Novembro 30, 2009 Eaew pessoal! To postando esse topico para ver se vocês me dão um empurraozinho pra eu resolver essa questão... Embora eu seja estudante iniciante de Programação e ainda ache que seja uma coisa bem minima e eu não estou notando, sem falar na correria e estresse que eu ando, sem tempo nem pra raciocinaer direito... mas enfim.. Eu to construindo um Java Aplication que segue proposto problema:[/font][/font] Por armazenar elementos de um mesmo tipo numa única área de memória, um Array Unidimensional em Java é uma boa opção para uma estrutura de dados que represente um conjunto da Teoria de Conjuntos da matemática. No estudo dos conjuntos admitem-se os seguintes conceitos primitivos: -Conjunto: representa uma coleção de objetos. -Elemento: é um dos componentes de um conjunto. -Pertinência: é a característica associada a um elemento que faz parte de um conjunto. E dentre as operações mais comuns entre conjuntos estão: -A reunião dos conjuntos A e B: é o conjunto de todos os elementos que pertencem ao conjunto A ou ao conjunto B. -A interseção dos conjuntos A e B: é o conjunto de todos os elementos que pertencem ao conjunto A e ao conjunto B. -A diferença entre os conjuntos A e B: é o conjunto de todos os elementos que pertencem ao conjunto A e não pertencem ao conjunto B. Sabendo que pela teoria dos conjuntos os elementos de um conjunto não se repetem, pede-se: implementar um Java Application que leia dois Arrays de caracteres representando dois conjuntos, e realize as seguintes operações: A unido B = { x: x A ou x B } pertence a A ou a B A inter B = { x: x A e x B } pertence a A e B A-B = {x: x A e x B} pertence a A e não a B Minha lógica ta paia, pois não tô conseguindo associar os contadores afim de que possa obter principalmente a operação União. Eu vou tar postando o rabisco que eu fiz e se vocês puderem me ajudar, agradeço![/font] Compartilhar este post Link para o post Compartilhar em outros sites
vagnner 0 Denunciar post Postado Novembro 30, 2009 java.import.util public static void main (string []args){ char [] conjuntoA=new char [5]; char [] conjuntoB=new char [5]; //lendo elementos de A e B Scanner leia= new scanner (system.in); sysout (“informe os elementos do conjunto A”); For (int i=0; i<conjuntoA.lenght;i++){ conjuntoA= leia.next().charAt(0); } sysout (“informe os elementos do conjunto B”); ConjuntoB= leia.next().charAt(0); //testando elementos de A correndo em B. // os elementos de A em comum com B formam a interseção for (int j=1;j<conjuntoB.lenght;j++){ if (conjuntoA==conjuntoB[j]){ String interseção=interseção+(conjuntoA); // quando elementos de A são diferentes dos elementos de B, dá-se a diferença de A em B [A-B] }else String diferença=diferença+(conjuntoA); } //para fazer a união, consegue- se a diferença de B em A [B-A], chamado de diferençaB, nesse caso, junta-se a interseção, a diferença de A em B e a diferença de B em A if (conjuntoB[j]<>interseção && diferença{ StringdiferençaB=diferençaB+conjuntob[j] String união=interseção+diferença+diferençaB; } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Dezembro 1, 2009 http://java.sun.com/javase/6/docs/api/java/util/HashSet.html Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 1, 2009 --- Tópico Movido: Lógica de Programação e Algoritmos http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma Java Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Dezembro 1, 2009 Se o seu exercício puder ser resolvido utilizando coleções, HashSet poderá ajudá-lo muito conforme já lhe foi indicado no tópico anterior. HashSet não deixará que incluas objetos repetidos no conjunto. Caso contrário, recomendo que comece criando uma matriz de objetos Char, e não de tipos primitivos char. No momento de fazer união você poderá utilizar o método equals do objeto Char pra saber se ele já existe na terceira matriz. PS: Lembre-se que Java é sensitivo ao caso, For é diferente de for. Compartilhar este post Link para o post Compartilhar em outros sites
vagnner 0 Denunciar post Postado Dezembro 2, 2009 Postei o q fiz e mesmo assim n ajudou... Sou iniciante... ainda n conheco HashSet. Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Dezembro 3, 2009 Comecemos assim: No seu programa você terá dois conjuntos; A e B. Declare como variáveis globais. private Char[] A; private Char[] B; Defina um limite para os conjuntos. A = new Char[10]; B = new Char[10]; Cria-se um método para leitura dos valores de conjunto A e B. private void recebeValores() { } Cria-se um método para fazer a união dos conjuntos A e B. private Char[] uniao() { Char[] uniao = new Char[A.lengh]; // lógica da união aqui return uniao; } Cria-se um método para fazer a intercessão dos conjuntos A e B. private Char[] intercessao() { Char[] intercessao = new Char[A.lengh]; // lógica da intercessão aqui return intercessao; } Testando a aplicação. public class App { public App() { } // Insira todos aqueles códigos listados acima aqui public static void main(String[] args) { App app = new App(); app.recebeValores(); Char[] uniao = app.uniao(); for(Char elemento : uniao) { System.out.println(elemento); } // E por aí vai... } } Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Dezembro 3, 2009 Em 02/12/2009 at 23:11, 'vagnner' disse: Postei o q fiz e mesmo assim n ajudou... Sou iniciante... ainda n conheco HashSet. Esquece o HashSet. Ele te ajudaria muito, mas o exercício pede claramente array. O Vergil te mostrou o caminho, agora é só tentar fazer e surgindo dúvidas poste para ajudarmos. Só uma coisinha no código do vergil. O tamanho máximo da interseção será o tamanho do conjunto menor que pode ser A.lengh, mas a união pode ser até a soma de A.lengh + B.lengh. ou seja, aqui seria: Char[] uniao = new Char[A.lengh + B.lengh]; Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Dezembro 3, 2009 Em 03/12/2009 at 12:34, 'Kandrade' disse: ... Só uma coisinha no código do vergil. O tamanho máximo da interseção será o tamanho do conjunto menor que pode ser A.lengh, mas a união pode ser até a soma de A.lengh + B.lengh. ou seja, aqui seria: Char[] uniao = new Char[A.lengh + B.lengh]; Perfeito! http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif Bem lembrado. Isso poderia causar uma ArrayIndexOutOfBoundary que poderia dar grandes dores de cabeça pra quem está começando. Algum moderador corrija o código por favor. E também meu errinho básico de Português. Interseção (o correto neste caso) e intercessão são palavras distintas.http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Dezembro 3, 2009 Em 03/12/2009 at 17:34, 'Vergil' disse: Algum moderador corrija o código por favor. E também meu errinho básico de Português. Interseção (o correto neste caso) e intercessão são palavras distintas.http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Eu pensei que fosse possível edição do tópico pelo próprio criador, mas também não consigo editar os meus. Estou desatualizado! Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Dezembro 8, 2009 ocorreu uma alteração e os membros só podem editar seus posts em até 30 minutos após a postagem Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Dezembro 8, 2009 tendi... valeu Mario pela explicação. http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Em 08/12/2009 at 16:41, 'Mário Monteiro' disse: ocorreu uma alteração e os membros só podem editar seus posts em até 30 minutos após a postagem Compartilhar este post Link para o post Compartilhar em outros sites