Popular Posts

25 Jan 2014

MODE of given grouped data.

# Statistics with C++


// Program to calculate the MODE of given grouped data( Only for Unimodal Data).

#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
const SZ=100;
class Mode
{
  public : float Fr[SZ],F[SZ],LM[SZ],UL[SZ];
  int Tn,h;
  public : void modData();
  void modShow();
  void mode();

};
void Mode :: modData()
{
  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>>Fr[i];
    F[i] = Fr[i];
  }
}

void Mode :: modShow()
{
  cout<<"\n\nYour Data : \n\n";
  cout<<"\nTotalNumbr of Data : "<<Tn;
  cout<<"\n\n  Class  \t Frequency\n";
  for(int i=0;i<Tn;i++)
  cout<<"\n  "<<LM[i]<<"-"<<UL[i]<<"\t\t"<<Fr[i];
}

void Mode :: mode()
{
   int l,u,f1,f0,f2,i,h;
    for(i=0;i<Tn;i++)
    {
      for(int j=0;j<Tn-1;j++)
      {
if(F[j]>F[j+1])
{
 int t;
 t=F[j];
 F[j]=F[j+1];
 F[j+1]=t;
}
      }
    }
    int GRT= F[Tn-1];
    for( i=0;i<Tn;i++)
    {
      if(Fr[i]==GRT)
      {
l=LM[i];
u=UL[i];
h=u-l;
f1=GRT;
f0=Fr[i-1];
f2=Fr[i+1];
break;
      }
    }
  /*
   cout<<"\n\n";

   cout<<"\nClass Interval (i.e h) = "<<h;
   cout<<"\nFrequency of median class (f1)= "<<f1;
   cout<<"\nLower limit of median class (l)= "<<l;
   cout<<"\nUpper limit of median class (u)= "<<u;
   cout<<"\nFreq., just before the freq. of median class (i.e f0) = "<<f0;
   cout<<"\nFreq., just after the freq. of median class (i.e f2) = "<<f2;
  */
   cout<<"\n\nMedian Class : \n";
   cout<<"\n-----------------------------------\n";
   cout<<"\n Class \t Frequency\n";
   cout<<"\n "<<l<<"-"<<u<<"\t\t"<<f1;
   cout<<"\n------------------------------------\n";
   //*/
   float mod =(float) l+ ( (h * (f1-f0)) / ( (f1-f0)-(f2-f1) ) );
   cout<<"\n\nMode for you Data = "<<setprecision(3)<<mod<<"\n";
}
void main()
{
  Mode MoD;
  clrscr();
  MoD.modData();
  clrscr();
  MoD.modShow();
  MoD.mode();
  getche();
}

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

Out Put :

Enter total number of data : 7

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

    Class Number1 :   118  126
    Class Number2 :   127  135
    Class Number3 :   136  144
    Class Number4 :   145  153
    Class Number5 :   154   162
    Class Number6 :   163  177
    Class Number7 :   172  182
Enter Frequencies for entered Classes :

  Freq. for class 118-126 :    3
  Freq. for class 127-135 :    5
  Freq. for class 136-144 :    9
  Freq. for class 145-153 :    12
  Freq. for class 154-162 :    5
  Freq. for class 163-171 :    4
  Freq. for class 172-180 :    2



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

* Plz comment if there is any error or Corrections.

Happy Coding!



No comments:

Post a Comment