Sabtu, 24 September 2016

Contoh Program C++ untuk Mencari Data Numerik

Contoh sederhana program C++ untuk mengolah data numerik dengan cara mengurutkan data, mendapatkan data kuartilnya dan menemukan data yang ingin dicari.

#include <iostream.h>
#include <conio.h>
#include <math.h>
int bin_search(int A[50],int n,int c);
void main()
{int A[50],n,i,j,q1,q2,q3,temp,c,a=0,posisi;

cout<<"Masukkan Jumlah Data Anda = "; cin>>n;
cout<<endl;
cout<<"Masukkan Data anda : "<<endl<<endl;
for(i=0;i<n;i++)
{  cout<<"Data ke "<<i+1<<" = "; cin>>A[i];
}
cout<<endl;
cout<<"Data yang telah masuk : ";
for(i=0;i<n;i++)
{  cout<<A[i]<<" ";
}
for(i=0;i<n;i++)
{  for(j=0;j<n;j++)
   {   if(A[i]<A[j])
       {  temp=A[i];
          A[i]=A[j];
          A[j]=temp;
       }
   }
}
cout<<endl<<endl;
cout<<"Data Anda yang telah terurut : ";
for(i=0;i<n;i++)
{  cout<<A[i]<<" ";
}
cout<<" "<<endl;

if(n%2!=0)
{  q2=A[(n)/2];
   if((n+1)%4==0)
     {q1=A[(n)/4];
      q3=A[3*(n)/4];}
   if((n+1)%4!=0)
     {q1=(A[(n-1)/4-1]+A[(n-1)/4])/2;
      q3=(A[n-(n-1)/4]+A[n-1-(n-1)/4])/2;}
}

if(n%2==0)
{ q2=(A[(n-1)/2]+A[((n-1)/2)+1])/2;
  if(n%4==0)
    {q1=A[(n-1)/4];
     q3=A[n-1-((n-1)/4)];}
  if(n%4!=0)
    {q1=(A[(n-1)/4]+A[((n-1)/4)-1])/2;
     q3=(A[n-(n-1)/4]+A[n-1-(n-1)/4])/2;}
}
cout<<endl;
cout<<"Data Kuartil : "<<endl;
cout<<"Q1 = "<<q1<<endl;
cout<<"Q2 = "<<q2<<endl;
cout<<"Q3 = "<<q3<<endl;
cout<<" "<<endl;
cout<<"Masukkan Data yang Ingin Anda cari : "; cin>>c;
cout<<endl<<endl;
posisi=bin_search(A,n,c);
if(posisi!=-1)
{cout<<"Data "<<c<<" terdapat pada array ["<<posisi<<"] pada deret ke "<<posisi+1<<endl;}
else
  cout<<"Data tidak ditemukan"<<endl;
getch();
}

int bin_search(int A[50],int n,int c)
{ int start=0,end=n-1,med,letak=-1;
  med=(start+end)/2;
  do
  { if(c<A[med])
    { end=med-1;}
    if(c>A[med])
    { start=med+1;}
    med=(start+end)/2;
  }
  while(start<=end&&A[med]!=c);
  if(A[med]==c)
  letak=med;
  return letak;

}

1 komentar: