Caraca... Estou iniciando com Java. Minhas tentativam andam mais depois param..
Estou com duvida em responder essas 3 questoes...
Se alguem puder me ajudar...
tow tentando mesmo, a primeira por exemplo empakei assim
// Fig. 7.7: Projeto2.java//Gera numeros de 1 a 100, 1000 vezes.importjava.util.Random;publicclassProjeto2{publicstaticvoidmain(Stringargs[]){RandomrandomNumbers=newRandom();// gerador de número aleatóriointfrequency[]=newint[101];// array de contadores de freqüênciaintmaior=0;// armazena maior numerointmenor=200;// armazena menor numerointmedia;// armazena a media dos numerosintsoma=0;// armazena a soma{// Roda 1000 vezes; for(introll=1;roll<=1000;roll++)++frequency[1+randomNumbers.nextInt(100)];}for(intcounter=1;counter<=100;counter++){if(frequency[counter]>maior)maior=frequency[counter];if(frequency[counter]<menor)menor=frequency[counter];soma=soma+frequency[counter];}System.out.printf("%s%12s\n","Numero","Frequencia");// gera saída do valor de cada elemento do arrayfor(intface=1;face<frequency.length;face++)System.out.printf("%4d%12d\n",face,frequency[face]);media=soma/1000;System.out.printf(" media %5d \n ",media);// exibe a media dos numerosSystem.out.printf(" maior %5d \n",maior);// exibe maior numeroSystem.out.printf(" menor %5d \n",menor);// exibe menor numero}// fim de main}// fim da classe Projeto1
mas o resultado da media e do maior e menor valor da errado...
ele pede pra voce pegar numeros de 1 a 100, rodar 1000 vezes, mostrar a frequencia de cada 1 e o maior menor, e a media deles....
por favor ajudem me
Eu não vi onde vc inicializa o seu vetor frequency com os dados (numeros de 1 a 100);
tipo assim:
int[] frequency = new int[100];//vetor de int com 100 posições
//para adicionar os valores no vetor.
for(int v=0;v<frequency.lenght();v++){
frequency[v]= v+1;//vai adicionar numeros de 1 a 100 no vetor sequencialmente, não sei se é isso que vc quer....
}
Não etendi muito bem oqeu vc quer fazer com rodar 1000 veses…
ps: use as tags CODE para adicionar codigo, facilita a leitura!!
Abraço…>
R
Renan_w
Irei tentar explicar melhor…
Estou tentando fazer 1 programa, que gere aleatoriamente 1000 vezes numeros de 1 a 100.
Depois disso preciso mostrar quantas vezes cada numero de 1 a 100 apareceu.
Logo em seguida mostrar o maior, o menor, e a media dos numero de 1 a 100. (Pois nem todos sao obrigatorios aparecerem.)
Eis a bronca. Tow pedindo penico aki, ta estourando ja
por favor ajudai-me!!
rodrigo1
Você tá mostrando a maior frequencia e não o maior valor....
E na média, vc tem que fazer um if para ver qual frequência é igual a zero, e dentro do for vai somando o counter quando a frequência não for zero …
espero ter ajudado …
dmandrak
O que o mestre dos magos falou está correto.
Da maneira como você está fazendo, suas comparações são feitas com a frequência de cada elemento, mas o que você vai guardar é O ELEMENTO.
Do tipo, o 12 aparece 25 vezes e por enquanto é o maior.
Então sua variável maior tem que ser 12 (!!!) e não 25.
Por isso vc precisa do maiorValor que o honorável #rodrigo# falou.
Ah …
E na média, vc tem que fazer um if para ver qual frequência é igual a zero, e dentro do for vai somando o counter quando a frequência não for zero …
espero ter ajudado …
Cuidado com isso também.
fjvasconcellos
segue um exemplo, fiz agora aqui, mais não sei se é isso que vc deseja fazer
importjavax.swing.JOptionPane;publicclassProjeto2{privateint[]numAleatorios=newint[1000],mediaNumeros=newint[100];privateintmaior,menor;privatefloatmedia;publicProjeto2(){inicializaMedia();geraNumerosAleatoris();achaMaior();achaMenor();acharMediaNmeros();}//apenas incializa o vetorprivatevoidinicializaMedia(){for(inti=0;i<mediaNumeros.length;i++){mediaNumeros[i]=0;}}privatevoidgeraNumerosAleatoris(){for(inti=0;i<numAleatorios.length;i++){numAleatorios[i]=(int)(Math.random()*100);//Adiciona um numero aleatório de 1 a 100}}//procura qual o maior numero dos 1000 geradosprivatevoidachaMaior(){maior=numAleatorios[0];for(inti=1;i<numAleatorios.length;i++){if(numAleatorios[i]>maior){maior=numAleatorios[i];}}}//procura qual o menos numero dos 1000 gerados..privatevoidachaMenor(){menor=numAleatorios[0];for(inti=1;i<numAleatorios.length;i++){if(numAleatorios[i]<menor){menor=numAleatorios[i];}}}//calcula quantas veses o cada numero de 1 a 100 foi sorteado...privatevoidacharMediaNmeros(){for(inti=0;i<mediaNumeros.length;i++){for(intj=0;j<numAleatorios.length;j++){if(numAleatorios[j]==(i+1)){mediaNumeros[i]++;}}}}//retorna o maior valorpublicintgetMaior(){returnmaior;}//retorna o menos valorpublicintgetMenor(){returnmenor;}//retorna o vetor de quantidade de cada numero... cuidado, a posição 0 equivale a quantas veses o numero 1 saiupublicint[]getMedias(){returnthis.mediaNumeros;}publicstaticvoidmain(String[]args){//colouqe aqui as informações a serem apresentadas ao usuário..}}
Recomendo depois vc desenvolver seu proprio codigo, para que vc memorize e aprenda!!
me de um retorno sobre esse codgoo...
abraço!!
R
Renan_w
Por enquanto ainda estou tentando fazer do meu jeito. So que ele roda blz, mas no final, na hora de dizer a media e o maior e o menor so sai o valor 100... sempre. Acho q nao estou conseguindo vizualizar...
Alguma ajuda?
preciso desemvolver mt mais.
// Fig. 7.7: Projeto2.java//Gera numeros de 1 a 100, 1000 vezes.importjava.util.Random;publicclassProjeto2{publicstaticvoidmain(Stringargs[]){RandomrandomNumbers=newRandom();// gerador de número aleatóriointfrequency[]=newint[101];// array de contadores de freqüênciaintmaior=0;// armazena maior numerointmenor=200;// armazena menor numerointmedia;// armazena a media dos numerosintsoma=0;// armazena a somaintext;intmax=0;intmin=0;// Roda 1000 vezes; for(introll=1;roll<=1000;roll++)++frequency[1+randomNumbers.nextInt(100)];for(intcounter=1;counter<=100;counter++){iffrequency[counter]>maior)maior=frequency[counter];max=counter;if(frequency[counter]<menor)menor=frequency[counter];min=counter;soma=soma+frequency[counter];}System.out.printf("%s%12s\n","Numero","Frequencia");// gera saída do valor de cada elemento do arrayfor(intface=1;face<frequency.length;face++)System.out.printf("%4d%12d\n",face,frequency[face]);media=soma/1000;System.out.printf(" media %5d \n ",media);// exibe a media dos numerosSystem.out.printf(" maior %5d \n",max);// exibe maior numeroSystem.out.printf(" menor %5d \n",min);// exibe menor numero}// fim de main}// fim da classe Projeto1
B
beables
Só de bater o olho te digo duas coisas:
1- depois desses ifs : “if (frequency[counter]> maior)”, “if (frequency[counter] < menor)”, abra um bloco de código e coloque ambas as instruções no if.
2- Que média você quer ?