Minggu, 02 Desember 2012

algoritma greedy

pengertian dari Algoritma greedy adalah algoritma yang digunakan untuk memecahkan suatu masalah dengan menyeleksi suatu kondisi tertentu. Algoritma ini biasanya berjalan berdasarkan seleksi  input yang terbesar atau yang terkecil, sehingga akan didapatkan suatu solusi yang baik, namun bukan yang terbaik, karena algoritma ini akan berhenti  jika sudah menemui satu solusi yang berhasil ditemukan. kali ini kita akan mencoba membuat sebuah program dengan C cara kerja algoritma greedy tersebut


#include<stdio.h>
#include<conio.h>
#define size 99
void sort(int[], int);
main()
{
int x[size] ,i,n,uang,hasil[size];
printf("\n Banyak Koin : ");
scanf("%d", &n);
printf("\n \n Masukan Jenis Koin : \n");
for(i=1;i<=n;i++)
{
scanf("%d", &x[i]);
}
sort(x,n);
printf("\n Koin Yang Tersedia \n : ");
for(i=1;i<=n;i++)
{
printf("%d", x[i]);
printf("\n");
}
printf("\n");
printf("\n \n Masukan Nilai Yang Dipecah : \n");
scanf("%d", &uang);
printf("\n");
for(i=1;i<=n;i++)
{
hasil[i]=uang/x[i];
uang=uang%x[i];
}
for(i=1;i<=n;i++)
{
printf("Keping %d", x[i]);
printf("-an sebanyak : %d", hasil[i]);
printf("\n \n");
}
getch();
return 0;
}
void sort(int a[], int siz)
{
int pass,hold,j;
for(pass=1;pass<=siz-1;pass++)
{
for(j=0;j<=siz-2;j++)
{ if(a[j+1] < a[j+2])
{
hold=a[j+1];
a[j+1]=a[j+2];
a[j+2]=hold;
}}}}

membuat bintang di strawberry prolog

pada praktikum pertama gw dengan strawberry prolog bikin pusing karena kita kudu ngitung kordinat biar garis garisnya lurus dan sesuai ma yang kita mau. nah gw dapet tugas buat ngebuat bintang yang apik gak mletat mletot. pikiran gw gampang lah toh cuma bikin bintang doang kan. dan ternyata pas gw coma bikin pusing juga tu bintang. nah buat sohib sohib yang punya tugas disuruh bikin bintang nih gw kasih listingnya


?-
Brush(system_color(window)),
window(_,_,win_func(),"praktikum1_ardian_50410993",10,10,800,800).
win_func(paint):-
pen(5,rgb(59,100,50)),
line(400,10,330,200),
line(400,10,470,200),
line(330,200,125,200),
line(470,200,680,200),
line(125,200,285,335),
line(680,200,530,335),
line(285,335,215,530),
line(215,530,400,430),
line(400,430,585,530),
line(585,530,530,335).

C merge sort

merge sort dengan C

 
Listing Program

# include <iostream.h>
#include <conio.h>


void merge(long [], int, int);
void merge_sort(long [], int);

main() {
            clrscr();
const int array_size = 10;
            long array[array_size] = {0};
cout<<"******************************************"<<endl;
            cout<<"************** MERGE SORT ****************"<<endl;
            cout<<"******************************************"<<endl<<endl;
cout<<"Masukkan Elemen-Elemen Array(max. 10)"<<endl<<endl;

                        for(int count_1=0;count_1<array_size;count_1++) {
                                    cout<<"\t Elemen["<<count_1<<"] = ";
                                    cin>>array[count_1]; }
merge_sort(array, array_size);
gotoxy(35,10);
            cout<<"Elemen-Elemen Yang Sudah di Sortir : ";
            for(int count_2=0;count_2<array_size;count_2++) {
                        gotoxy(50, 12+count_2);
                        cout<<"Elemen ["<<count_2<<"] = "<<array[count_2]<<endl; }
getch();
            return 0; }

void merge(long array[], int array_size_1, int array_size_2) {
            long *temp_array = new long[array_size_1+array_size_2];

            int count_1 = 0;
            int count_2 = 0;
            int count_3 = 0;

            while(count_2<array_size_1 && count_3<array_size_2) {
                        if(array[count_2]<=array[array_size_1+count_3]) {
                                    temp_array[count_1] = array[count_2];
                                    count_2++; }
                        Else {
                                    temp_array[count_1] = array[array_size_1+count_3];
                                    count_3++; }
                        count_1++; }

            while(count_2<array_size_1) {
                        temp_array[count_1] = array[count_2];
                        count_1++;
                        count_2++; }

            while(count_3<array_size_2){
temp_array[count_1] = array[array_size_1+count_3];
                        count_3++;
                        count_1++; }
for(int count_4=0; count_4<array_size_1+array_size_2; count_4++)
                        array[count_4] = temp_array[count_4];

                        delete temp_array;}
void merge_sort(long array[], int array_size){
            if(array_size>1){
                        int sub_array_size_1 = array_size/2;
                        int sub_array_size_2 = array_size - sub_array_size_1;
merge_sort(array, sub_array_size_1);
merge_sort(array+sub_array_size_1, sub_array_size_2);
                        merge(array, sub_array_size_1, sub_array_size_2);
            }}