Estadisticas

8
ESTADISTICAS María Guadalupe García Muñoz|Programar o morir UNIVERSIDAD TECNOLOGICA DEL VALLE DE TOLUCA

description

Aprende a usar JOptionPane.showInputDialog y switch con JAVA POO

Transcript of Estadisticas

ESTADISTICAS

María Guadalupe García Muñoz|Programar o morir UNIVERSIDAD TECNOLOGICA DEL VALLE DE TOLUCA

MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR

1

Contenido OBJETIVO ............................................................................................................................................. 2

EJEMPLO .............................................................................................................................................. 2

MARÍA GUADALUPE GARCÍA MUÑOZ|PROGRAMAR O MORIR

2

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

3

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

4

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

5

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

6

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

7

}

}while(retro==0);

}while(retro==1);

}

}