Originariamente inviato da m3820
Salve, devo fare un programmino java, per voi sicuramente molto semplice:
il programma riceve un array di esami e deve avere i metodi calcolaminMax, calcolaMedia e calcola Moda (per moda intendo il vodo più frequente).
Non riesco ad implementare il metodo che calcola la media e la moda.
Ecco quello che ho fatto fin ora:
codice:
import system.*;
public class Statistiche {
public static void main (String[]args){
IO.out.print("Inserisci numero di esami sostenuti: ");
int numEsami=IO.in.readInt();
int [] esami=new int [numEsami];
for(int i=0;i<numEsami;i++){
IO.out.print("Inserisci l'esame n§ "+(i+1)+" ");
esami[i]=IO.in.readInt();
if(esami[i]<18||esami[i]>30){
IO.out.println("Dato non Corretto");
i--;
}//fine if
}//fine for
int[] minMax= calcolaminMax (esami);
//...richiamo al metodo calcolaMedia
//...richiamo al metodo calcolaMOda
IO.out.println("Il tuo voto minimo e': "+minMax [0]);
IO.out.println("Il tuo voto massimo e': "+minMax[1]);
//IO.out.println("Il tuo voto più frequente e': "+moda); stampa della moda
//IO.out.println("La tua media e': "+media); stampa media
}//fine main
public static int[]calcolaminMax (int[]v){
int[]minMax={v[0],v[0]};
for(int i=0;i<v.length;i++){
if (v[i]<minMax[0])
minMax[0]=v[i];
if (v[i]>minMax[1])
minMax[1]=v[i];
}//fine for
return minMax;
}//fine metodo minMax*/
}//fine class
1- Quota il codice che gli amministratori si arrabbiano, leggiti le regole del forum prima di postare roba.
2- La media sarà la somma degli esami / la somma dei voti quindi è semplice.
3- per la moda ti crei una HashMap (ovvero un oggetto che è formato da chiave,valore) dove ti salvi tutti i voti che via via ci sono. Es.
codice:
//istanzi una mappa key=voto value=numero di occorrenze
HashMap<Integer,Integer> mappa = new HashMap<Integer,Integer>();
// poi Quando scorri i voti
if(mappa.containsKey(voto){
int num = mappa.get(voto);
num++;
mappa.put(voto,num);
}else{
mappa.put(voto,1);
Una volta finiti i voti ti trovi il voto con il maggior numero di occorrenze
codice:
int moda=0;
int occ=0;
for(int a:mappa.keySet()){
int num = mappa.get(a);
if(num>occ) {
occ=num;
moda=a;
}
}
Finito ciò hai anche la moda