Popular Posts

23 Jan 2014

Median For Grouped Data.

# Statistics With C++


// Program to calculate the median of given grouped data.

#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
const SZ=100;
class Median
{
  public : int F[SZ],LCF[SZ],LM[SZ],UL[SZ];
  int N,Tn,h;
  public : void mdData();
  void mdShow();
  void mdMedian();

};
void Median :: mdData()
{
  cout<<"\nEnter total no. data : ";
  cin>>Tn;
  cout<<"\n\nEnter lower and upper limit of class: (ex. 0  10) : \n";
  for(int i=0;i<Tn;i++)
  {
     cout<<"\n  Class Number"<<i+1<<" : ";
     cin>>LM[i];
     cin>>UL[i];
  }
  cout<<"\n\nEnter frequency for entered classes : \n";
  for(i=0;i<Tn;i++)
  {
    cout<<"\n Freq. for class "<<LM[i]<<"-"<<UL[i]<<" : ";
    cin>>F[i];
    LCF[i] = F[i];
  }
  for(i=1;i<Tn;i++)
  {
    LCF[i]=LCF[i-1]+LCF[i];
  }
}

void Median :: mdShow()
{
  cout<<"\n\nYour Data : \n\n";
  cout<<"\nTotalNumbr of Data : "<<Tn;
  cout<<"\n\n  Class  \t Frequency\t less than c. freq.\n";
  for(int i=0;i<Tn;i++)
  cout<<"\n  "<<LM[i]<<"-"<<UL[i]<<"\t\t"<<F[i]<<"\t\t"<<LCF[i];
}

void Median :: mdMedian()
{
   int c,d,l,u,f,i=0;
   N=LCF[Tn-1];
   float mdc=(float)N/2;
   while(i<Tn)
   {
     if(LCF[i]>mdc)
     {
       d=LCF[i];
       c=LCF[i-1];
       f=F[i];
       l=LM[i];
       u=UL[i];
       h=u-l;
      break;
     }
     i++;
   }

   cout<<"\n\n";
   /*  
   cout<<"\nClass Interval (i.e h) = "<<h;
   cout<<"\nSum of all Freq.s (i.e N) = "<<N;
   cout<<"\nTo find median class (N/2) = "<<mdc;
   cout<<"\nFrequency of median class (f)= "<<f;
   cout<<"\nLower limit of median class (l)= "<<l;
   cout<<"\nUpper limit of median class (u)= "<<u;
   cout<<"\nLess-than-cf just before the ltcf of median class (i.e C) = "<<c;
   */
   cout<<"\n\nMedian Class : \n\n";
   cout<<"-----------------------------------\n";
   cout<<" Class \t Frequency \t Less than CF.\n";
   cout<<"\n "<<l<<"-"<<u<<"\t\t"<<f<<"\t\t "<<d ;
   cout<<"\n------------------------------------\n";
 
   float MeDian =(float) l+((h*(mdc-c)/f));
   cout<<"\n\nMedian for you Data = "<<setprecision(2)<<MeDian<<"\n";
}
void main()
{
  Median MD;
  clrscr();
  MD.mdData();
  MD.mdShow();
  MD.mdMedian();
  getche();

}
---------------------------------------------------------------------------------------------------------------------

Out Put :

Enter total no. of Data :     7

Enter lower and upper limit of class: (ex. 0  10) :

Class Number1  :  0   3
Class Number2  :  3   6
Class Number3  :  6   9
Class Number4  :  9  12
Class Number5  :  12  15
Class Number6  :  15  18
Class Number1  :   18  21

Enter frequencies for entered classes  :

Freq. for class  0-3 :   2
Freq. for class  3-6 :   7
Freq. for class  6-9 :   10
Freq. for class  9-12 :  12
Freq. for class  12-15 :  9
Freq. for class  15-18 :  6
Freq. for class  18-21 :  4

---------------------------------------------------------------------------------------------------------------------

Please comment if you find any error or Corrections...

Happy Coding!

No comments:

Post a Comment