Ir ao conteúdo
  • Cadastre-se

Neto Sales

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que Neto Sales postou

  1. Verdade Cweiler, foi precipitação de principiante, desculpa por isso. Na página 226 do livro tem a solução do meu problema, usando array. Segue o código pra quem precisar. Já implementei aqui com outras variáveis e deu tudo certo. import java.util.Random; public class DadoArray { public static void main (String[] args) { Random randomNumbers = new Random(); // gerador de nr. aleatór. int [] frequency = new int [7]; // array e cont. de frequência // lança os dados 6000 X; utiliza vl do dado como índice de freq for (int roll = 1; roll <= 6000; roll++) ++frequency[1 + randomNumbers.nextInt(6)]; System.out.printf("%s%15s\n", "Lado", "Frequência"); //Gera saída do valor de cada elemento do array for (int face = 1; face < frequency.length; face++) System.out.printf("%4d%10d\n", face, frequency[face]); } // fim de main } // fim de classe
  2. No livro do Deitel tem um código interessante, onde ele simula um lançamento de um dado 6 mil vezes, e lista a frequência com que as faces se repetiram. Exemplo: Face1 958 vezes, face2 844 vezes, etc. Tudo isso de forma randômica. Compilei o código, e o adaptei pra mega sena. Ao invés de testar as seis faces de um dado, testei os 60 números da loteria, usando o mesmo princípio. Como sou iniciante em Java, simplesmente repeti o código, implementando mais 54 variáveis, o que deixou o troço funcional, porém muito trabalhoso. Gostaria de saber, de acordo com as boas práticas da programação, como poderia fazer isso utilizando array, ou algo do gênero. Segue o código pra que dêem uma olhada. import java.util.Random; public class RollDie { public static void main(String[] args) { Random randomNumbers = new Random(); // gerador de número aleatório int frequency1 = 0; // mantém a contagem de 1s lançados int frequency2 = 0; // contagem de 2s lançados int frequency3 = 0; // contagem de 3s lançados int frequency4 = 0; // contagem de 4s lançados int frequency5 = 0; // contagem de 5s lançados int frequency6 = 0; // contagem de 6s lançados int face; // armazena o valor lançado mais recentemente // soma 6.000 lançamentos de um dado for (int roll = 1; roll <+ 6000; roll++) { face = 1 + randomNumbers.nextInt(6); // número entre 1 a 6 // define o valor de lançamento de 1 a 6 e incrementa o contador apropriado switch (face) { case 1: ++frequency1; // incrementa o contador de 1s break; case 2: ++frequency2; // incr. contador 2s break; case 3: ++frequency3; // incr. contador 3s break; case 4: ++frequency4; break; case 5: ++frequency5; break; case 6: ++frequency6; break;// opcional ao final do switch } // fim do switch 42,3-24 20% No meu código eu fiquei com 60 frequency (frequency1...frequency60),e no switch tive 60 case (case 1... case 60) e gostaria de saber como enxugar esse código com um array, ou outro recurso, principalmente na questão de listar as entradas também.

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...