Minggu, 03 Juli 2011

Program C++ Selection Sort

Deskripsi
for i ß 1 to n-1 do
pos = i
for j ß i+1 to n do
if ( data[j]<data[pos])
pos = j
if (pos != 0 i) then
tukar(pos,i)
endif
endif
endfor
endfor

Berikut programnya :
#include <iostream.h>
#include <conio.h>

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void selection_sort()
{
int pos,i,j;
for(i=1;i<=n-1;i++)
{
pos = i;
for(j = i+1;j<=n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
}

void main()
{
cout<<"===PROGRAM SELECTION SORT==="<<endl;

cout<<"Masukkan Jumlah Data : ";
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"Masukkan data ke "<<i<<" : ";
cin>>data[i];
data2[i]=data[i];
}

selection_sort();
cout<<"Data Setelah di Sort : ";
for(int i=1; i<=n; i++)
{
cout<<" "<<data[i];
}
cout<<"\n\nSorting dengan selection sort Selesai";
getch();
}


Program di atas adalah program selection sort . Misalnya data pertama akan dibandingkan dengan data yang berikutnya untuk mencari data terkecil yang kemudian ditempatkan di sebelah kiri dan seterusnya

Program C++ Penjumlahan Big Integer

Algoritma :
Procedure big_integer ( input : digit , output : jumlah )
Deklarasi
digit : integer of array (input)
jumlah : integer of array (output)

Deskripsi
read(digit)
for i <= 0 to digit do
digit = input1[i]
write (input1[i])
for i <= 0 to digit do
digit = input2[i]
write (input2[i])
enfor
endfor
for i<= 0 to digit do
jumlah[i] = 0
endfor
read(jumlah)
for i <= digit-1 to 0 do
jumlah[i] = jumlah[i] + input1[i] + input2[i]
if ( jumlah[i] > 9 && I !=0 )
jumlah[i] = jumlah[i] % 10
jumlah[i – 1] = jumlah[i – 1] + 1
endif
endfor
for i <= 0 to digit do
jumlah[i]
endfor
write(jumlah)


Programnya :

#include <cstdlib>
#include <iostream>

using namespace std;

class big{
public:
big();
void masuk();
void beri_nilai();
void penjumlahan();
void keluar();
private:
int digit;
int input1[999];
int input2[999];
int jumlah[999];
};

big::big(){
cout<<"penjumlahan 2 bilangan dengan banyak digit"<<endl<<endl;
}

void big::masuk(){
cout<<"digit dari kiri"<<endl;
cout<<"banyaknya digit : ";
cin>>digit;
cout<<"\nbilangan pertama"<<endl;
for(int i=0;i<digit;i++){
cout<<"digit ke-"<<(i+1)<<" : ";
cin>>input1[i];
}
cout<<"bilangan : ";
for(int i=0;i<digit;i++){
cout<<input1[i];
}
cout<<endl;
cout<<"\nbilangan kedua"<<endl;
for(int i=0;i<digit;i++){
cout<<"digit ke-"<<(i+1)<<" : ";
cin>>input2[i];
}
cout<<"bilangan : ";
for(int i=0;i<digit;i++){
cout<<input2[i];
}
cout<<endl;
}

void big::beri_nilai(){
for(int i=0;i<digit;i++){
jumlah[i]=0;
}
}

void big::penjumlahan(){
for(int i=(digit-1);i>=0;i--){
jumlah[i]=jumlah[i]+input1[i]+input2[i];
if (jumlah[i] >9 && i !=0){
jumlah[i]=jumlah[i]%10;
jumlah[i-1]=jumlah[i-1]+1;
}
}
}

void big::keluar(){
cout<<"\nhasil penjumlahan : ";
for(int i=0;i<digit;i++){
cout<<jumlah[i];
}
cout<<endl<<endl;
}

int main(int argc, char *argv[])
{
big x;
x.masuk();
x.beri_nilai();
x.penjumlahan();
x.keluar();

system("PAUSE");
return EXIT_SUCCESS;
}



Program diatas adalah program untuk menjumlahkan bilangan bulat besar menggunakan sebuah array .

Program C++ Perkalian 2 Himpunan

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
string a[10];
string b[10];
int n,m;

cout<<"Masukan Data A:";
cin>>n;
for(int x=0;x<n;x++)
{
cout<<"Data["<<x+1<<"]:";
cin>>a[x];
}
cout<<endl;
cout<<"Masukan Data B:";
cin>>m;
for(int y=0;y<m;y++)
{
cout<<"Data["<<y+1<<"]:";
cin>>b[y];
}

cout<<endl;
cout<<"AxB=";
for(int x=0;x<n;x++)
for(int y=0;y<m;y++)
{
cout<<"{("<<a[x]<<")("<<b[y]<<")}";
cout<<endl;
}

system("PAUSE");
return EXIT_SUCCESS;
}


Program yang digunakan untuk mengalikan dua himpunan ,jika ada dua himpunan,himpunan A dan himpunan B maka program akan kalikan anggota dari himpunan A dan B. Dengan  A x B . Program di atas menggunakan array dan telah diinput integer tipe data dan string.