Senin, 27 Mei 2013

program c++ permutasi kombinasi dengan class


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

using namespace std;

int hasil;
// fungsi factorial :
          int factorial (int nilai)
          {
              hasil = nilai;
              while (nilai>1)
              {
              hasil = hasil * (nilai-1);
              nilai = nilai - 1;
              }
              return hasil;
          }
         
int main(int argc, char *argv[])
{
    int p,nq,max,x,i,j,n,k,r,s,tr,no;
    int a[100];
    div_t xx;
    for (i=0;i<100;i++)
    {
        a[i] = 0;
    }
//Tampilan Pembuka
printf("---------------------------\nPROGRAM GENERATE PERMUTASI\n\n");
printf("     Oleh Cumplunk.\n");
printf("---------------------------\n");

//input nilai n (jumlah data < maksimal 100 >)
printf("Masukkan Nilai n : ");
scanf("%d",&n);
//input data ke dalam array
for (i=1;i<=n;i++)   //ulangi untuk semua data hingga data ke-n
{
    printf("Masukkan Nilai Himpunan a[%d] : ", i);
    scanf("%d", &a[i]);
}
//input nilai r
printf("Nilai r : ");
scanf("%d", &tr);
//hitung nilai permutasi
p = factorial(n);
nq = factorial(n-tr);
if (nq==0) nq=1;
max = p/nq;
printf("Nilai Permutasi : %d\n\
              Tekan Enter Untuk Melihat Hasil Generate Permutasi...\n", max);
getche();  //fungsi membaca karakter keyboard
no = 1;   //variabel untuk menampilkan nomor

//men-generate permutasi dengan
//algoritma generate next-permutation

//generate sebanyak nilai permutasi
for (x=1;x<=max;x++)
{
    printf("%3d. ", no);
    for (i=1;i<=tr;i++)
        printf("%d ", a[i]);
    printf("\n", a[i]);
    no++;
   
    j = n - 1;
    while (a[j] > a[j+1])
          j = j - 1; //j adalah subcript terbesar dengan aj < aj+1
    k = n;
    while (a[j] > a[k])
          k = k - 1;  //ak adalah integer terkecil dan lebih besar dari aj
         
//tukar aj dan ak
i = a[k];
a[k] =a[j];
a[j] = i;

r = n;
s = j + 1;
while (r > s)
{
      //tukar ar dan as
      i = a[r];
      a[r] = a[s];
      a[s] = i;
     
      r = r - 1;
      s = s + 1;
      }
}
    system("PAUSE");
    return EXIT_SUCCESS;
}

»» READMORE...

Senin, 13 Mei 2013

fibonacci menggunakan class


#include <cstdlib>
#include <iostream>

using namespace std;

class Madis{  //deklaasi kelas
public:
void pilih();       //pendeklarasian fungsi pilihan
void arit();        //pendeklarasian fungsi aritmatik
void vibo();        //pendeklarasian fungsi baris vibonaci
private:
int q[100];
};
void Madis::pilih(){
int n;
cout<<"1. Aritmatik"<<endl;
cout<<endl;
cout<<"2. Vibonaci"<<endl;
cout<<"\n\npilihan anda : ";
cin>>n;
cout<<endl;
if(n==1)arit();
if(n==2)vibo();
else
cout<<"Upsss,,, Please RUN Again"<<endl;

}
void Madis::arit(){
system("cls");
int n,s,a,jml=0;
cout<<"\nMasukkan nilai awal :";
cin>>s;
cout<<endl;
cout<<"Masukkan beda :";
cin>>a;
cout<<"\nMasukkan batas :";
cin>>n;
cout<<endl;
cout<<"\nMaka didapat deret aritmatik =>";
for (int i=0; i<n; i++){
       q[i]=s+i*a;
       cout<<q[i]<<" ";
       jml=jml+q[i];
}
cout<<endl;
cout<<"\nJumlah dari deret adalah "<<jml<<endl;
cout<<"\n\n";
pilih();
}
void Madis::vibo(){
system("cls");
int i,a,s,d=0,n;
cout<<"\nMasukkan nilai awal :";
cin>>a;
cout<<"Masukkan batas :";
cin>>n;
s=a;
i=a;
cout<<"\nMMaka akan di dapat deretan :\n"<<i<<" ";
for(int i=0; i<n-1; i++){

       q[i]=s+a;
       s=a;
       a=q[i];
       cout<<q[i]<<" ";
       d=d+q[i];
}
cout<<"nJumlah dari deret adalah "<<d+i;
cout<<"\n\n";
pilih();
}
int main(int argc, char *argv[])
{
Madis z;
z.pilih();

    system("PAUSE");
    return EXIT_SUCCESS;
}

»» READMORE...