ESTADISTICAS
María Guadalupe García Muñoz|Programar o morir UNIVERSIDAD TECNOLOGICA DEL VALLE DE TOLUCA
Contenido OBJETIVO ............................................................................................................................................. 2 EJEMPLO .............................................................................................................................................. 2
MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
1
OBJETIVO Mediante este código podras enteder como utilizar un switch y la lectura de cadenas por medio de JOptionPane.showInputDialog.
EJEMPLO //Calculo de la promedio, mediana, moda, máximo y mínimo import javax.swing.*; //Creamos una clase llamada Estadistica Basica con 5 estadisticas maximo para crear el switch public class EstadisticaBasica { static int MAX=5; //Creamos el elegir opcion con los 5 calculos y despues las operaciones de cada metodo static int elijeOpcion() { int opcion=0; String cadena=JOptionPane.showInputDialog("Calcular: \n 1)Promedio Ponderado.\n 2)Moda.\n 3)Mediana.\n 4)Máximo.\n 5)Mínimo.\n 6)Reiniciar.\n 7)Salir."); opcion=Integer.parseInt(cadena);
return opcion; }
static int moda(int numero[],int frecuencia[]) { int moda=0,frec=0;
for(int j=0;j<numero.length;j++) if(frecuencia[j]>frec) { MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
2
frec=frecuencia[j]; moda=numero[j]; } return moda;
}
static int mediana(int numero[],int frecuencia[]) { int med=0,medi=0,indice=0;
int[] frecuenciaAcumulada = new int[MAX]; int[] frecuenciaAcumuladaOrdenada = new int[MAX]; frecuenciaAcumulada[0]=frecuencia[0]; for(int j=1;j<frecuencia.length;j++) frecuenciaAcumulada[j]=frecuenciaAcumulada[j-1]+frecuencia[j];
frecuenciaAcumuladaOrdenada=ordenaArreglo(frecuenciaAcumulada); med=frecuenciaAcumuladaOrdenada[MAX-1]/2;
int k=0; while(med>frecuenciaAcumuladaOrdenada[k]) k++;
medi=frecuenciaAcumuladaOrdenada[k]; MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
3
return medi; }
static int promedioPonderado(int numero[],int frecuencia[]) { int sum=0,prom=0,n=0; for(int i=0;i<numero.length;i++) { sum=sum+(frecuencia[i]*numero[i]); n=n+frecuencia[i]; } prom=sum/n; return prom; }
static int maximo(int numero[],int frecuencia[]) { int[] frecuenciaOrdenada = new int[MAX]; frecuenciaOrdenada=ordenaArreglo(frecuencia);
return frecuenciaOrdenada[MAX-1]; } static int minimo(int numero[],int frecuencia[]) { int[] frecuenciaOrdenada = new int[MAX]; frecuenciaOrdenada=ordenaArreglo(frecuencia);
MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
4
return frecuenciaOrdenada[0]; }
static int[] ordenaArreglo(int arreglo[]) {
int k=0; for(int i=1;i<arreglo.length;i++) { for(int j=0;j<arreglo.length-i;j++) { if(arreglo[j]>arreglo[j+1]) {k=arreglo[j+1]; arreglo[j+1]=arreglo[j]; arreglo[j]=k;} } } return arreglo;
} //MAIN aqui solitamos los numeros atra vez de JOptionPane.showInputDialog para la lectura de entrada de datos por teclado public static void main(String[] args) { int opcion=0,retro=0; int numero[]=new int[MAX]; int frecuencia[]=new int[MAX]; String cadena; do{ retro=0;
MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
5
for(int i=0;i<numero.length;i++) { cadena=JOptionPane.showInputDialog("Igrese numero "+(i+1)+" :"); numero[i]=Integer.parseInt(cadena); cadena=JOptionPane.showInputDialog("Igrese su frecuencia : "); frecuencia[i]=Integer.parseInt(cadena);
} do{ opcion=elijeOpcion(); int moda=0,mediana=0,maximo=0,minimo=0,promedio=0;
switch(opcion) { case 1:promedio=promedioPonderado(numero,frecuencia); JOptionPane.showMessageDialog(null,"Promedio: "+promedio);break; case 2:moda=moda(numero,frecuencia); JOptionPane.showMessageDialog(null,"Moda: "+moda);break; case 3:mediana=mediana(numero,frecuencia); JOptionPane.showMessageDialog(null,"Mediana: "+mediana);break; case 4:maximo=maximo(numero,frecuencia); JOptionPane.showMessageDialog(null,"Máximo: "+maximo);break; case 5:minimo=minimo(numero,frecuencia); JOptionPane.showMessageDialog(null,"Mínimo: "+minimo);break; case 6:retro=1;break; case 7:System.exit(0); default:JOptionPane.showMessageDialog(null,"Ingrese una opción válida..."); MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
6
} }while(retro==0); }while(retro==1); } }
MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR
7