Oktober 22, 2012

program algoritma greedy/ PAA pert 1


Dalama program kali ini kita akan menggnakan c++,oleh karena itu untuk prototype nya sedikit berbedadari bahasa c,,pertama-tama kita sertakan dahulu prototype dan file hider yang di butuhkan dalampembuatan program kali ini yaitu

# include <iostream.h>
# include <stdio.h>
# include <conio.h>
# define sz 10
# include <iostream.h># include <stdio.h># include <conio.h># define sz 10Pertama kita sertakan iostream.h yang berfungsi untuk menampung perintah dan fungsi-funsgi tertentudalam c++Kedua yaitu kita buat file header stdio.h yang berguna untuk mengaktifkan fungsi cetak dan input ,ytucin dan coutSedangkan conio berfungsi untuk mengaktifkan funsgi seperti getch dan clrscrrKemudian kita buat prototype terkahir yaitu define,define disini berfungsi untuk menyamaknmaksud,,artinya kata sz disini bernilai 10,sehingga dalam program kita tidak perlu menuliskanangkanya,cukup dengan kata sz.

class SumOfSubs {
int w[sz];
int x[sz];
int n;
int m;
public:
SumOfSubs();
void getdata();
void sumofsubs(int, int, int); };

Selanjtunya kita buat sebuah class bernama sumofsubs yang mempunyai beberapa atribut dan methodclass SumOfSubs{int w[sz];int x[sz];disini kita mendeklarasikan sebuah array bernama w dan x dengan jumlah array menampung sebanyak 5int n;int m;selanjutnya kita deklarasikan sebuah variable n,dan m bertipe integerpublic:SumOfSubs();void getdata();kemudian kita disni kita buat method bernama sumofsubs dan void getdatavoid sumofsubs(int, int, int);dan kemudian kita buat lagi method terakhir tetapi mempunyai 3 parameter,};
SumOfSubs::SumOfSubs() {
w[sz] = 0;
x[sz] = 0;
n = 0;
m = 0; }
Langkah berikutnya adalah membuat sebuah kostruktorSumOfSubs::SumOfSubs(){w[sz] = 0;x[sz] = 0;n = 0;m = 0;}Di kontruktor ini isinya sama saja dengan class,,karena sebenarnya konstruktor itu tipe dari class itusendiri,Cuma bedanya di kontruktor ini kita membuat sebuah insisialisasi nilai.void SumOfSubs::getdata(){int i;int sum = 0;

void SumOfSubs::getdata() {
int i;
int sum = 0;
cout<<"Masukkan jumlah koin :";
cin>>n;
fflush(stdin);
cout<<"\n\n";
berikutnya kita buat sebuah method sumofsubs dengan pewarisan dari get data,pertama kitadeklarasikan dahulu yaitu int I yang berguna untuk melakukan sebuah perulangan nantinya,int sum =o,digunakan untuk melakukan penjumlahan,tetapi kita isikan dulu nilai nyaa sama dengan 0cout<<"ENTER HOW MANY NUMBERS : ";kemudian kita cetak berapa nomor yag ingin dimasukkan dengan perintah coutcin>>n;selanjutnya dengan perintah cinn kita buat sebuah inputan yang menmapung variabel nfflush(stdin);digunakan untuk alokasi memorycout<<"\n\n";untuk mencetak spasi kebawah

for(i = 1; i<= n; i++) {
cout<<"Nominal Koin "<<i<<" :";
cin>>w[i];
fflush(stdin); }
cout<<"\n\nJumlah nominal koin: ";
cin>>m;
fflush(stdin);
for(i = 1; i <= n; i++)
sum = sum + w[i];
sumofsubs(0, 1, sum); }
Langkah beriktunya adalah pembuatan sebuah nilai sum dengan melakukan perulangan terlebih dahulufor(i = 1; i<= n; i++){disini for akan melakukan perulangan dari nilai 1 sampai kecil sama dengan nilai inputan yaitu sebanyakncout<<"ENTER POSITIVE NUMBER : ";kemudian buat cetakan yang menyuruh menginpur pisitve numbercin>>w[i];selnjutnya cin akan menampaung nya dengan menggunakan sebuah arrayfflush(stdin);}cout<<"\n\nSUM UP VALUE (LIMIT) : ";dan buat cetakan sum up value atau jug aterjadi kelimitancin>>m;dan varibel m akan menampung banyaknya limitfflush(stdin);for(i = 1; i <= n; i++)selanjutnya kiat aakan buat perulangan lagi untuk mendapatkan nilai sumsum = sum + w[i];disini sum akan mendapatkan nilai dari perulangan teresbut dengan cara si W akan menampung nilai-nilai nyaasumofsubs(0, 1, sum);
void SumOfSubs::sumofsubs(int s, int k, int r) {
int i;
int temp[sz];
_setcursortype(_NOCURSOR);
selanjutnya sumofsubs disini akan mempunay parameter yang menampung nilai-nilai tersebut,termasuk sum}Kemduain kita buat kostruktor baru lagi dengan parameter yaitu s,k,dan rvoid SumOfSubs::sumofsubs(int s, int k, int r){int i;int temp[sz];disni kita buat lagi sbuah deklarasi variabel untuk melakukan perulangan yitu variabel I dan kita bautarrya baru lagi bernama temp dengan niali batas array yaitu sampai 5. _setcursortype(_NOCURSOR);Artinnya /*tampilkan pesan kesalahan jika panjang kalimat lebih dari 20 huruf
x[k] = 1;
if((s + w[k]) == m) {
cout<<"\n\nPosisi :";
for(i = 1; i <= k; i++) {
cout<<" "<<x[i];
temp[i] = x[i]; }
cout<<"\nHasil : { ";
for(i = 1; i <= k; i++) {
if(temp[i] == 1)
cout<<w[i]<<" "; }
cout<<"}"; }
x[k] = 1;kemudian kita buat variebl x dengan k sebagai array nya bernilai 1.


else if((s + w[k] + w[k+1]) <= m)
sumofsubs((s + w[k]), (k + 1), (r - w[k]));
if(((s + r - w[k]) >= m) && ((s + w[k+1]) <= m)) {
x[k] = 0;
sumofsubs(s, (k + 1), (r - w[k])); } }



void main()
{
clrscr();
textmode(C80);
SumOfSubs S;
S.getdata();
getch();
}

perbedaan grafis secara umum

Grafik atau diagram membantu orang memahami data dengan cepat. Apakah Anda ingin membuat perbandingan, menunjukkan hubungan, atau sorot tren, mereka membantu audiens Anda "melihat" apa yang Anda bicarakan. Masalahnya adalah ada berbagai jenis begitu banyak diagram dan grafik bahwa sulit untuk mengetahui mana yang untuk memilih. Klik pada pilihan grafik dalam program spreadsheet Anda dan disajikan dengan banyak gaya. Mereka semua terlihat pintar, tetapi mana yang sesuai untuk data yang telah dikumpulkan?
Dapatkah Anda menggunakan grafik batang untuk menunjukkan tren? Adalah grafik baris yang sesuai untuk data penjualan? Bila Anda menggunakan pie chart?Spreadsheet akan memetakan apa pun yang Anda kirim ke, apakah hasil akhirnya masuk akal atau tidak. Itu hanya menerima perintah dan mengeksekusi mereka!
Untuk mengetahui apa perintah untuk memberi, Anda harus memiliki pemahaman yang baik tentang mekanisme tabel, grafik dan diagram. Kami akan menunjukkan dasar-dasar menggunakan empat jenis grafik yang sangat umum:
  • Grafik garis
  • Grafik bar
  • Pie chart
  • Venn diagram
Pertama kita akan mulai dengan beberapa dasar-dasar.

X dan Y Axes - 

Untuk membuat grafik sebagian besar atau grafik, termasuk grafik pie, Anda biasanya menggunakan data yang diplot dalam dua dimensi, seperti yang ditunjukkan pada Gambar 1.


  • Dimensi horizontal adalah sumbu x.
  • Dimensi vertikal adalah sumbu y.










Contoh:
Penjualan ABC Usaha 'bervariasi sepanjang tahun. Dengan merencanakan angka penjualan pada grafik garis, seperti yang ditunjukkan pada Gambar 3, sangat mudah untuk melihat fluktuasi utama selama setahun. Di sini, penjualan drop off selama musim panas, dan sekitar Tahun Baru.
Sementara beberapa variasi musiman mungkin tidak dapat dihindari dalam bidang usaha Usaha ABC dalam, dimungkinkan untuk meningkatkan arus kas selama periode rendah melalui kegiatan pemasaran dan penawaran khusus.
Grafik garis juga dapat menggambarkan beberapa seri. Dalam contoh ini Anda mungkin memiliki garis tren yang berbeda untuk kategori produk yang berbeda atau lokasi toko, seperti yang ditunjukkan pada Gambar 4 di bawah ini. Sangat mudah untuk membandingkan tren ketika mereka diwakili pada grafik yang sama.

Bar Grafik

Tipe lain dari grafik yang menunjukkan hubungan antara seri data yang berbeda adalah grafik batang. Berikut ketinggian bar mewakili nilai terukur atau frekuensi: The, lebih tinggi atau lebih bar semakin besar nilai.
Contoh:
ABC Usaha menjual tiga model yang berbeda dari produk utama, Alpha, Platinum, dan Deluxe. Dengan merencanakan penjualan masing-masing model selama periode tiga tahun, menjadi mudah untuk melihat tren yang mungkin disembunyikan oleh analisis sederhana dari angka itu sendiri. Pada Gambar 5, Anda dapat melihat bahwa, meskipun Deluxe adalah yang tertinggi-penjualan tiga, penjualan telah turun selama periode tiga tahun, sedangkan penjualan dua lainnya terus tumbuh.Mungkin Deluxe menjadi usang dan perlu diganti dengan model baru? Atau mungkin itu menderita kompetisi yang semakin ketat dibandingkan dengan dua lainnya?
Tentu saja, Anda juga bisa mewakili data pada grafik garis beberapa seri seperti yang ditunjukkan pada Gambar 6.
Seringkali pilihan turun ke betapa mudahnya tren adalah tempat. Dalam contoh ini grafik garis benar-benar bekerja lebih baik daripada grafik batang, tapi ini tidak mungkin terjadi jika grafik harus menunjukkan data untuk 20 model bukan hanya tiga. Ini perlu dicatat, meskipun, bahwa jika Anda dapat menggunakan grafik garis untuk data Anda, Anda dapat sering menggunakan grafik batang sama dengan baik.
Sebaliknya tidak selalu benar. Ketika x-sumbu Anda variabel mewakili data terputus (seperti produk berbeda atau wilayah penjualan), Anda hanya dapat menggunakan grafik batang.
Secara umum, grafik garis digunakan untuk menunjukkan data yang terkait pada skala kontinu, sedangkan grafik batang yang digunakan untuk menunjukkan data yang terputus-putus.
Data juga dapat diwakili pada grafik batang horisontal seperti yang ditunjukkan pada Gambar 7. Hal ini sering metode yang disukai ketika Anda membutuhkan lebih banyak ruang untuk menggambarkan variabel yang diukur. Hal ini dapat ditulis di sisi grafik daripada tergencet di bawah sumbu x.

Pie Charts

Sebuah grafik pie membandingkan bagian untuk keseluruhan. Dengan demikian hal itu menunjukkan distribusi persentase. Pie Seluruh merupakan kumpulan data total dan setiap segmen kue adalah kategori tertentu dalam keseluruhan.
Jadi, untuk menggunakan pie chart, data Anda mengukur harus menggambarkan rasio atau hubungan persentase. Anda harus selalu menggunakan unit yang sama dari ukuran dalam pie chart. Jika nomor Anda akan berarti apa-apa.
Pie chart pada Gambar 8 menunjukkan di mana penjualan ABC Enterprise berasal.


Diagram Venn

Grafik terakhir kita akan menutupi di sini adalah diagram Venn.Dibuat oleh matematikawan John Venn pada tahun 1881, ini adalah diagram yang digunakan untuk menunjukkan tumpang tindih antara set data. 

Setiap set diwakili oleh lingkaran. Tingkat tumpang tindih antara set digambarkan oleh tumpang tindih antara lingkaran. 
Gambar 9 menunjukkan penjualan di Percetakan Sempurna. Ada tiga lini produk: alat tulis cetak, pencetakan buletin, dan disesuaikan barang-barang promosi seperti mug.

Dengan memisahkan proporsi pelanggan bisnis 'yang membeli setiap jenis produk, menjadi jelas bahwa mayoritas dari kelompok pelanggan terbesar (55% dari total) - mereka yang memiliki alat tulis perusahaan mereka dicetak - hanya menggunakan Percetakan Sempurna untuk alat tulis. Ada kemungkinan bahwa mereka tidak menyadari bahwa Percetakan Sempurna juga bisa mencetak newsletter perusahaan mereka dan barang-barang promosi. Akibatnya, Percetakan Sempurna harus mempertimbangkan merancang beberapa aktivitas pemasaran untuk mempromosikan lini produk kepada pelanggan alat tulis nya.