BAB 5 DIKTAT

Latihan
1. cetaklah bilangan 1 sampai dengan 4 menggunakan downto.
 {Bilangan (1-4 menggunakan dewonto) algoritma cetak angka}
    Deklarasi
i           : integer
Deskripsi
For i 4 to 0 do
Write (i)
Endfor
using namespace std;
int main()
{
   int i;                    for(i=4;i>0;i--)
                              cout<<" "<<i<<endl;
   return 0;
}

2. buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi
    algoritma ?
    .{menentukan int 1 sampai 7, menentukan hari yang sesuai }
Deklarasi
Hari_ke           :int;
Hari     :string;
Deskripsi
            Read (hari_ke)
            Pilih(hari_ke)untuk
1 : hari |senin|;
2: hari |selasa|;
3: hari |Rabu|;
4: hari |Kamis|;
5: hari |Jumat|;
6: hari |Sabtu|;
7: hari |Minggu|;
End{pilih}
Write{hari}
using namespace std;
class Kalender {
  friend ostream& operator<<(ostream&, Kalender&);
  friend istream& operator>>(istream&, Kalender&);
public:
  Kalender() {};
  void adalah();
private:
  int hari_ke;
  char *hari;
};

void Kalender::adalah() {
  switch (hari_ke) {
  case 1:  hari = "Senin"; break;
  case 2:  hari = "Selasa";break;
  case 3:  hari = "Rabu";  break;
  case 4:  hari = "Kamis"; break;
  case 5:  hari = "Jum'at";break;
  case 6:  hari = "Sabtu"; break;
  default: hari = "Minggu";break;
    }
  }

istream& operator>>(istream& in, Kalender& masukan) {
  cout << "Masukkan hari ke-";
  in >> masukan.hari_ke;
  return in;
}

ostream& operator<<(ostream& out, Kalender& keluaran) {
  out << "Hari ke- " << keluaran.hari_ke  << " adalah "
  << keluaran.hari << endl;
  return out;
}

main() {
  Kalender tanggal;
  cin >> tanggal;
  tanggal.adalah();
  cout << tanggal;
  getch();
  return 0;
}

3. Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5
    antara 1 sampai dengan 100.
    {Membaca i (bilangan 1 sampai dengan 100), kemudian menentukan bilangan yang habis dibagi 3 dan 5}
Deklarasi
i           : integer           {bilangan 1 sampai dengan 100}
Deskripsi
Read i
I ß 1 sampai dengan 100
for (int i=1; i<=100; i++)
if (i mod 3==0)
Write i
Else (i mod 5==0)
Write i
using namespace std;
class bilangan{
friend ostream& operator<<(ostream&, bilangan&);
friend istream& operator>>(istream&, bilangan&);
public:
bilangan(){};
void proses(){
i =0;
while (!(i>100))
{ if (i % 3==1 && i % 5==1){
}
else
{
cout << i << endl; }
i =i+15;
}
}
private:
int i;
};
istream& operator>>(istream& in, bilangan& masukkan){
cout<<"Bilangan Yang Habis Dibagi 3 & 5 = "<<endl;
in >>masukkan.i;
return in;
}
ostream& operator<<(ostream& out, bilangan& keluaran){
cout<<"Bilangannya adalah "<<keluaran.i<<endl;
return out;
}
int main(int argc, char *argv[])
{
bilangan bil;
cin >> bil;
bil.proses();
cout<< bil;
cout<< endl;
system("PAUSE");
return 0;
}
4. Hitunglah nilai dari :
1 1 1 1 12
3 4 n

using namespace std;
  
    class hitung
    {
    public:
           void input();
           int proses();
    private:
            int n;
            float rumus,jumlah,total;
            };
  
    void hitung::input(){
    cin>>n;
    cout<<endl;}
  
    int hitung::proses(){
    jumlah=0;
    total=0;
    rumus=-1;
    for(int j=1; j<=n; j++){
    rumus=(rumus*(-1));
    total=rumus/j;
    jumlah+=total;
    if(j==1)
    cout<<"("<<total<<")";
    if(j>1)
    cout<<"+("<<total<<")";
    }
  
    cout<<endl<<endl<<"hasil penjumlahan deret = "<<jumlah;
    return jumlah;
    }
  
    int main()
    {
    cout<<"menghitung jumlah dari rumus 1-(1/2)+(1/3)-(1/4)+...+(1/n)"<<endl<<endl;
    cout<<"nilai n : ";
    hitung deret;
    deret.input();
    deret.proses();
  
    getch();
    return 0;
    }

5. Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan kombinasi n
     buah bola yang diambil r bola.
 {Menghitung nilai permutasi dan kombinasi n buah bola yang diambil r bola}
 Deklarasi
            hasil,n,k : integer
            proses[2],yesno[2]; character
. Deskripsi
            Read(n,k)
            if(n<k)
            then write("Nilai n tidak boleh lebih kecil dari k")
            else
            write"(Pilih P (permutasi) atau C (kombinasi))"
            if(proses[0]=='p' || proses[0]=='P')
            hasil = faktorial(n)/faktorial(n-k);
            then write("\n \n")
            then write(n,"P",k," : ",hasil)
           
            else if (proses[0]=='c' || proses[0]=='C')
            hasil = faktorial(n)/(faktorial(k) * faktorial(n-k));
            then write("\n \n")
            then write(n,"C",k," : ",hasil)
            else
            then write("\n\tAnda tidak memilih P atau C")
            then write("\n\tIngin mengulang? <y/n> ")
            Read(yesno[0])
            if (yesno[0]=='Y'||yesno[0]=='y')
            Y=1
            else if (yesno[0]=='N'||yesno[0]=='n'||yesno[0]!='Y'||yesno[0]!='y')
            Y=0

       using namespace std;

long int fak (long int x);
main()
{
int n,r, Prts,pilihan,p;
char ulang;
do
{

cout<<"(c) Created 2010 by esa d’suryanta.Inc"<<endl<<endl;
cout<<"PERHITUNGAN KOMBINASI DAN PERMUTASI"<<endl;
cout<<"1. KOMBINASI"<<endl;
cout<<"2. PERMUTASI"<<endl;
cout<<"3. EXIT"<<endl;
cout<<endl<<endl;
cout<<"Pilihan Anda : ";cin>>pilihan;
switch (pilihan)
{
case 1 :
cout<<" Program Menghitung Kombinasi(nCr)";
cout<<endl;
cout<<" Masukkan Nilai n : "; cin>>n;
cout<<endl;
cout<<" Masukkan Nilai r : "; cin>>r;
cout<<endl;
if (n>r){
Prts = fak(n)/(fak(n-r)*fak (r));
cout<<endl;
printf(" Kombinasinya adalah: %d",Prts);
cout<<endl; }
else if (n<r){
cout<<"data tak valid";}
cout<<endl ;
break;
case 2 :
cout<<" Program Menghitung Permutasi(nPr)";
cout<<endl;
cout<<" Masukkan Nilai n : "; cin>>n;
cout<<endl;
cout<<" Masukkan Nilai r : "; cin>>r;
cout<<endl;
if (n>r){
Prts = fak (n)/fak(n-r);
cout<<endl;
printf(" Permutasinya adalah: %d",Prts);
cout<<endl; }
else if (n<r){
cout<<"data tak valid";}
cout<<endl ;
break;
case 3 :
cout<<"Exit"<<endl;
break;
default:
cout<<"Menu tidak tersedia"<<endl;
break;
}
cout<<"Kembali ke Menu Utama (y/n)?";cin>>ulang;
}
while (ulang == 'y');

getch();
}
long int fak (long int n)
{
int f;
if (n<=1)
{
f=1;
}
else
{
f=n*fak(n-1);
}
return (f);
}
6. Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan
    biner.
   Deklarasi
            desimal, pembagi, bit : long
            pembagi=1073741824
 Deskripsi
            Read(desimal)
            while(pembagi>desimal)pembagi/=2
            do
            bit=desimal/pembagi
            then write(bit)
            desimal=desimal%pembagi
            pembagi/=2;
            while(pembagi>=1)
            write("\n")

using namespace std;


int main(int argc, char** argv) {
           
            long desimal, pembagi, bit;
            pembagi=1073741824;
           
            cout<<"\t\t Program Konversi Bilangan Desimal ke Biner"<<endl<<endl;
            cout<<" Masukan bilangan  desimal : ";
            cin>>desimal;
           
            while(pembagi>desimal)pembagi/=2;
            do{
                        bit=desimal/pembagi;
                        cout<<bit;
                        desimal=desimal%pembagi;
                        pembagi/=2;
            }
            while(pembagi>=1);
            cout<<"\n";
            return 0;
}

7. Buatlah algoritma, flowchart dan program untuk menampilkan permutasi dari 3 huruf.
    Misalnya diberikan : abc
    output :
abc
bca
bac, dan seterusnya

using namespace std;
void masuk(char a[50]);
void keluar(char b[50]);
void identitas();

int main()
 {
  char kata[50];
      masuk(kata);
      keluar(kata);;
  getch();
 }

void masuk(char a[50]){
   cout<<"\nMasukkan Kata           : ";
  gets(a);
  cout<<endl;

      }

void keluar(char b[50]){
cout<<"\nHasil Pembalikkan kata  :";
  for(int a=strlen(b);a>=0;a--)
   {
    cout<<b[a];
   }
      cout<<endl;
      }


    


EmoticonEmoticon