int nomeArray[] = new int[] {10,10,20,30,40};
//Gostaria de pegar o numero que mais se repete, há uma função que faça isso para mim ?
Resposta para duvida
/** * Calcular qual dos Termos é a Moda */publicstaticvoidModa(){intind=0,cont=0;for(intindex=0;index<var.length;index++){if(Convert(var,index)==Convert(var,ind)){ind=index;cont++;}}System.out.println("Moda............................: "+Convert(var,ind));}
não testei, mas está resolvido. isto parece com exercicios de selecionar o número maior em uma lista… vc tem que ir verificando sempre se é maior ao próximo e guardar o último que for maior…
Então neste caso, a lógica penso eu, é contar os números iguais, e caso surja um número igual com mais contagens, esquecer os outros e ficar com este…
Tem muitas formas de fazer…
A sua não testei, mas se funciona parece bem apurada.
té+
Vc criou um método ‘Convert’ é isto?
Ele não aparece no código, portanto não sei o que faz.
não testei, mas está resolvido. isto parece com exercicios de selecionar o número maior em uma lista… vc tem que ir verificando sempre se é maior ao próximo e guardar o último que for maior…
Então neste caso, a lógica penso eu, é contar os números iguais, e caso surja um número igual com mais contagens, esquecer os outros e ficar com este…
Tem muitas formas de fazer…
A sua não testei, mas se funciona parece bem apurada.
té+
Vc criou um método ‘Convert’ é isto?
Ele não aparece no código, portanto não sei o que faz.
packagebr.org.catolicasc.luiz.almeida.junior.program;importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Scanner;/** * * @author Luiz Almeida Júnior */publicclassAplicativo{staticintmedia=0;staticStringentradaLinha;staticString[]var;staticintvariancia;staticArrayList<String>arrayOrdem=newArrayList<String>();staticScannerinput=newScanner(System.in);/** * Ler Arquivo .txt */publicstaticvoidLer(){System.out.print("Informe o nome de arquivo texto.: ");entradaLinha=input.nextLine();try{FileReaderarq=newFileReader(entradaLinha);BufferedReaderlerArq=newBufferedReader(arq);entradaLinha=lerArq.readLine();var= entradaLinha.split(" ");arrayOrdem.add(entradaLinha);arq.close();}catch(IOExceptione){System.err.printf("Erro na abertura do arquivo \n",e.getMessage()+"!");}}/** * Converte para String */publicstaticintConvert(String[]split,intparametro){intconversao=Integer.parseInt(split[parametro]);returnconversao;}/** * Ordenar Vetor */publicstaticvoidRol(){Arrays.sort(var);System.out.print("\nRol.............................: ");Imprimir();}/** * Calcular arrayOrdem Média */publicstaticvoidMedia(){for(intindex=0;index<var.length;index++){media=media+Convert(var,index);}media=(media/var.length);System.out.print("\nMédia...........................: "+media);}/** * Calcular arrayOrdem Mediana */publicstaticvoidMediana(){intesquerda=0;intdireita=var.length-1;intmeio;meio=(esquerda+direita)/2;intmediana=Convert(var,meio);System.out.println("\nMediana.........................: "+mediana);}/** * Calcular arrayOrdem Amplitude */publicstaticvoidAmplitude(){intamplitude;intindex=0;intmenor=Convert(var,0);intmaior=Convert(var,index);while(index<var.length){if(maior<=maior){maior=Convert(var,index);}index++;}amplitude=maior-menor;System.out.println("Amplitude.......................: "+amplitude);}/** * Calcular arrayOrdem Variancia g */publicstaticvoidVariancia(){variancia=0;intcont=0;for(intindex=0;index<var.length;index++){variancia+=Math.pow(Convert(var,index)-media,2);}variancia=variancia/var.length;System.out.println("Variancia.......................: "+variancia);}/** * Calcular o Desvio Padrão */publicstaticvoidDesvioPadrao(){doubledesvioPadrao=(Math.sqrt(variancia));System.out.printf("Desvio Padrão...................: %.2f",desvioPadrao);System.out.println("");}/** * Método de imprimir */publicstaticvoidImprimir(){for(intindex=0;index<var.length;index++){System.out.print(var[index]+", ");}}/** * Calcular qual dos Termos é a Moda */publicstaticvoidModa(){intind=0,cont=0;for(intindex=0;index<var.length;index++){if(Convert(var,index)==Convert(var,ind)){ind=index;cont++;}}System.out.println("Moda............................: "+Convert(var,ind));}}
Esse é meu código inteiro,
A
andy11x
Boa Noite !!..
Não apenas o seu método Moda que tem problemas, seu método Mediana também não corresponde,
simplifique seu método Amplitude.
Siga as convenções de nomenclatura de métodos…
Você pretende ler apenas 1 linha no arquivo de texto ?
Até…
R
raghy
não cheguei a testar o código mas conseguiu resolver?
A
andy11x
Boa Noite !! Resolvi fazer esse pequeno programa e mostrar meu ponto
de vista em relação as suas duvidas.
Faça um teste, espero que ajude !!!
/** * * @author Andy11x */publicclassCalculo{publicstaticvoidmain(String[]args){//Nosso Array poderia vir de um arquivo de texto como é seu caso//Basta adaptalo !!//Exemplo - Primeiro ConjuntoConjuntoc=newConjunto(newString[]{"30","10","20","20","10"});System.out.println("Moda do Conjunto: "+c.moda());System.out.println("Mediana do Conjunto: "+c.mediana());System.out.println("Amplitude do Conjunto: "+c.amplitude());System.out.println("Variança do Conjunto: "+c.variancia());System.out.println("Desvio Padrão do Conjunto: "+c.desvioPadrao());//Exemplo - Segundo Conjuntoc=newConjunto(newString[]{"1.3","5","1.8","1.3","21","2"});System.out.println("-------------------------------------------");System.out.println("Moda do Conjunto: "+c.moda());System.out.println("Mediana do Conjunto: "+c.mediana());System.out.println("Amplitude do Conjunto: "+c.amplitude());System.out.println("Variança do Conjunto: "+c.variancia());System.out.println("Desvio Padrão do Conjunto: "+c.desvioPadrao());}}
importjava.util.*;/** * * @author Andy11x */publicclassConjunto{privatedouble[]conjunto;privateList<Double>list;privatedoubles;/** * Construtor */publicConjunto(String[]conjunto){init(conjunto);}/** * O Método inicializa variáveis e popula nosso Array(double[]) * e nossa Lista(List<Double>) e realiza a soma deixando-a pré * definida.No final ordena o Array. */privatevoidinit(String[]conjunto){this.conjunto=newdouble[conjunto.length];list=newArrayList<>();for(inti=0;i<conjunto.length;i++){this.conjunto[i]=Double.parseDouble(conjunto[i]);list.add(this.conjunto[i]);s+=this.conjunto[i];}Arrays.sort(this.conjunto);//Rol, ordena }/** * O Método devolve o valor que surge com mais freqüência. * @Lembrando: pode haver mais que um valor com a mesma * frequência, nesse caso a moda teria dois resultados * ou mais, dependendo do conjunto. */publicStringmoda(){intfreq=0,x=Integer.MIN_VALUE;Set<Double>md=newHashSet<>();for(doublen:conjunto){freq=Collections.frequency(list,n);if(freq>=x){x=freq;md.add(n);}}returnx>1?md.toString():"Sem Moda";}/** * O Método retorna há medida de localização do centro da * distribuição dos dados. * @Lembrando: Se o conjunto for ÍMPAR, a mediana é o elemento médio, * Se o conjunto for PAR, a mediana é a semi-soma dos dois elementos médios. */publicdoublemediana(){inte1=(int)(conjunto.length/2);doublee2=(conjunto[e1-1]+conjunto[e1])/2.0;returnconjunto.length%2==0?e2:conjunto[e1];}/** * O Método retorna há diferença entre o valor maior e o valor menor * de um grupo de observações, no caso nosso conjunto. */publicdoubleamplitude(){returnconjunto[conjunto.length-1]-conjunto[0];}/** * O Método retorna o grau de variabilidade de determinadas situações, * através dela podemos perceber desempenhos iguais, muito próximos * ou muito distantes. */publicdoublevariancia(){doublevar= 0.0; for(doublen:conjunto){var+= Math.pow((n-media()),2);}returnvar/ conjunto.length;}/** * O Método retorna a medida de variabilidade que leva em * consideração toda a informação contida na amostra do * conjunto. */publicdoubledesvioPadrao(){returnMath.sqrt(variancia());}/** * O Método retorna número de elementos somados, que é igual * ao número de elementos do conjunto, ou seja, a média de s * números é sua soma dividida por há quantidade do cojunto. */privatedoublemedia(){returns/conjunto.length;}}
juninhoall
andy11x:
Boa Noite !! Resolvi fazer esse pequeno programa e mostrar meu ponto
de vista em relação as suas duvidas.
Faça um teste, espero que ajude !!!
/** * * @author Andy11x */publicclassCalculo{publicstaticvoidmain(String[]args){//Nosso Array poderia vir de um arquivo de texto como é seu caso//Basta adaptalo !!//Exemplo - Primeiro ConjuntoConjuntoc=newConjunto(newString[]{"30","10","20","20","10"});System.out.println("Moda do Conjunto: "+c.moda());System.out.println("Mediana do Conjunto: "+c.mediana());System.out.println("Amplitude do Conjunto: "+c.amplitude());System.out.println("Variança do Conjunto: "+c.variancia());System.out.println("Desvio Padrão do Conjunto: "+c.desvioPadrao());//Exemplo - Segundo Conjuntoc=newConjunto(newString[]{"1.3","5","1.8","1.3","21","2"});System.out.println("-------------------------------------------");System.out.println("Moda do Conjunto: "+c.moda());System.out.println("Mediana do Conjunto: "+c.mediana());System.out.println("Amplitude do Conjunto: "+c.amplitude());System.out.println("Variança do Conjunto: "+c.variancia());System.out.println("Desvio Padrão do Conjunto: "+c.desvioPadrao());}}
importjava.util.*;/** * * @author Andy11x */publicclassConjunto{privatedouble[]conjunto;privateList<Double>list;privatedoubles;/** * Construtor */publicConjunto(String[]conjunto){init(conjunto);}/** * O Método inicializa variáveis e popula nosso Array(double[]) * e nossa Lista(List<Double>) e realiza a soma deixando-a pré * definida.No final ordena o Array. */privatevoidinit(String[]conjunto){this.conjunto=newdouble[conjunto.length];list=newArrayList<>();for(inti=0;i<conjunto.length;i++){this.conjunto[i]=Double.parseDouble(conjunto[i]);list.add(this.conjunto[i]);s+=this.conjunto[i];}Arrays.sort(this.conjunto);//Rol, ordena }/** * O Método devolve o valor que surge com mais freqüência. * @Lembrando: pode haver mais que um valor com a mesma * frequência, nesse caso a moda teria dois resultados * ou mais, dependendo do conjunto. */publicStringmoda(){intfreq=0,x=Integer.MIN_VALUE;Set<Double>md=newHashSet<>();for(doublen:conjunto){freq=Collections.frequency(list,n);if(freq>=x){x=freq;md.add(n);}}returnx>1?md.toString():"Sem Moda";}/** * O Método retorna há medida de localização do centro da * distribuição dos dados. * @Lembrando: Se o conjunto for ÍMPAR, a mediana é o elemento médio, * Se o conjunto for PAR, a mediana é a semi-soma dos dois elementos médios. */publicdoublemediana(){inte1=(int)(conjunto.length/2);doublee2=(conjunto[e1-1]+conjunto[e1])/2.0;returnconjunto.length%2==0?e2:conjunto[e1];}/** * O Método retorna há diferença entre o valor maior e o valor menor * de um grupo de observações, no caso nosso conjunto. */publicdoubleamplitude(){returnconjunto[conjunto.length-1]-conjunto[0];}/** * O Método retorna o grau de variabilidade de determinadas situações, * através dela podemos perceber desempenhos iguais, muito próximos * ou muito distantes. */publicdoublevariancia(){doublevar= 0.0; for(doublen:conjunto){var+= Math.pow((n-media()),2);}returnvar/ conjunto.length;}/** * O Método retorna a medida de variabilidade que leva em * consideração toda a informação contida na amostra do * conjunto. */publicdoubledesvioPadrao(){returnMath.sqrt(variancia());}/** * O Método retorna número de elementos somados, que é igual * ao número de elementos do conjunto, ou seja, a média de s * números é sua soma dividida por há quantidade do cojunto. */privatedoublemedia(){returns/conjunto.length;}}
De fato a moda estava errada, obrigado por me ajudar a implementar o código, referente a nomenclatura as vezes me confundo por programar em C# o que em java é camel lá é pascal e vice versa