The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Código Java – Promedio, Mediana, Moda, Máximo y Mínimo


//Codificado por: sAfOrAs
//Calculo de la promedio, mediana, moda, máximo y mínimo
import javax.swing.*;
public class SyGCalculoMicroEstadistico
{
	static int MAX=5;
	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)
				{
					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];
		
		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);
		
		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;		
	
	}

	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;
			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...");			
				}
			}while(retro==0);
		}while(retro==1);	
	}
} 
About these ads

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 506 seguidores

%d personas les gusta esto: