Sabtu, 09 April 2016

DIKTAT ALPRO BAB IV(1,2,3,5)

BAB IV
PEMILIHAN/KONTROL PROGRAM


1. Buatlah flowchart dan translasi program dari algoritma 3.2.b.
 ALGORITMA :
Kasus 1 " Mencari bilangan terbesar "

Algoritma :
    - Memasukan 3 bilangan bulat
    - Menentukan bilangan terbesar diantara ketiga bilangan tersebut dan menampilkannya

Deklarasi :
    - x, y, x : interger
    - maks      : interger

Deskripsi :
     read (x,y,z)
     maks <- x
     if (y > maks) then maks Å y end if
     if (z > maks) then maks ( z end if
     write (‘Bilangan terbesar adalah = ‘,maks)  

RAPTOR :





Program CPP :
#include <iostream>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

    class Banding
    {
        friend istream& operator>>(istream&, Banding&);
        public:
        Banding() {};
        void bandingkan()
        {
            int maks = x;
            if (y > maks) maks = y;
            if (z > maks) maks = z;
            cout << endl << endl << "Bilangan terbesar : " << maks;
        }
        private:
        int x, y, z;
    };
    istream& operator>>(istream& in, Banding& bilangan)
    {
        cout << "Bilangan pertama = ";
        cin >> bilangan.x;
        cout << "Bilangan kedua   = ";
        cin >> bilangan.y;
        cout << "Bilangan ketiga  = ";
        cin >> bilangan.z;
        return in;
    };

int main(int argc, char** argv) {

    Banding bilangan;
    cin >> bilangan;
    bilangan.bandingkan();
   
   
    return 0;
}


2. Sempurnakan algoritma 3.3. dengan akar imajiner berbentuk :
a + bi
dengan a dan b bilangan real dan bila harga b2-4ac < 0 .
ALGORITMA :
Kasus 2 " Menentukan Jenis Akar Persamaan Kuadrat "

Algoritma :
    - mendeklarasikan variabel untuk koefisien pangkat 1, koefisien pangkat 2, koefisien pangkat 0, deskriminan
    - di inputkan koefisien pangkat 1, koefisien pangkat 2, koefisien pangkat 3
    - Menampilkan hasil jenis akar imajiner, rasional

Deklarasi :
    - koefisien pangkat 1, 2, 3 : interger
    - diskriminan : float
   
Deskripsi :
    Read (koefisien pangkat 1, koefisien pangkat 2, koefisien pangkat 3)
    deskriminan <- b^2-4*A*C
    if (A = 0) then write (‘Bukan Persamaan Kuadrat’)
    else if disk > 0 then   
    x1 ( -B + sqrt (disk)/2*A
    x2 ( -B - sqrt(disk)/2*A
    else if disk = 0 then
    x1 ( -B/2*A
    x2 ( x1   
    else write (‘Akar imajiner’)
    end if
    write (x1,x2)


RAPTOR :

Program CPP ;
#include <iostream>
#include <math.h>
#include <conio.h>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

class Akar {
    friend ostream& operator<<(ostream&, Akar&);
    friend istream& operator>>(istream&, Akar&);
    public:
    Akar();
    int disk() { return B*B-4*A*C; }
    float akar1() {return (-B+sqrt(disk()))/(2*A); }
    float akar2() {return (-B-sqrt(disk()))/(2*A); }
    void hitung_akar();
    void cetak_disk() {
         cout << "diskriminan = " << disk() << endl; }
    void cetak_akar() {
        cout << "x1 = " << akar1() << endl;
        cout << "x2 = " << akar2() << endl;
    }
private:
    int A, B, C; // input
    float x1, x2; // akar 1 dan akar 2
};
ostream& operator<<(ostream& out, Akar& keluaran) {
    keluaran.cetak_disk();
    if (keluaran.disk() >= 0) keluaran.cetak_akar();
    else out << "Akar imajiner";
    return out;
}
istream& operator>>(istream& in, Akar& masukan) {
    cout << "Koefisien pangkat 2 : "; cin >> masukan.A;
    cout << "Koefisien pangkat 1 : "; cin >> masukan.B;
    cout << "Koefisien pangkat 0 : "; cin >> masukan.C;
return in;
}
Akar::Akar() {
    cout << "Menghitung akar persamaan kuadrat "<<endl<<endl;
}

void Akar::hitung_akar() {
    if (A == 0) {
    cout << "bukan pers. kuadrat.\n";
    cout << "Harga akar = " << -C/B; } else {
    if (disk() > 0) {
        x1 = akar1();
        x2 = akar2();
        }   
    else if (disk() == 0) {
        x1 = akar1();
        x2 = x1;
        }
    }   
}

int main(int argc, char** argv) {
    Akar kasus;
    cin >> kasus;
    kasus.hitung_akar();
    cout << kasus;
    return 0;
}





3. Buatlah program dari algoritma 3.4. menggunakan case … of .
 ALGORITMA :
Kasus 3 " Menkonversi nilai angka ke nilai huruf

Algoritma
    - mendeklarasikan variabel nilai
    - menkonversi nilai menjadi huruf

Deklarasi
    - nilai : interger
   
Deskripsi
    read(nilai)
   
    switch (nilai)
   
    case 81 ... 100 :
        cout << nilai << " Nilai hurufnya adalah A " << endl;
    break
    case 61 ... 80 :
        cout << nilai << " Nilai hurufnya adalah B " << endl;
    break
    case 41 ... 60 :
        cout << nilai << " Nilai hurufnya adalah C " << endl;
    break
    case 21 ... 40 :
        cout << nilai << " Nilai hurufnya adalah D " << endl;
    break
    case 0 ... 20 :
        cout << nilai << " Nilai hurufnya adalah E " << endl;
    break
RAPTOR :



Program CPP :
#include <iostream>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int nilai;
   
    cout << " Menentukan Nilai Angka " << endl << endl;
   
    cout << " Masukan Nilai Angka : "; cin >> nilai;
    cout << endl;
   
    switch (nilai)
    {
   
    case 81 ... 100 :
   
        cout << nilai << " Nilai hurufnya adalah A " << endl;
    break;
    case 61 ... 80 :
   
        cout << nilai << " Nilai hurufnya adalah B " << endl;
    break;
    case 41 ... 60 :
   
        cout << nilai << " Nilai hurufnya adalah C " << endl;
    break;
    case 21 ... 40 :
   
        cout << nilai << " Nilai hurufnya adalah D " << endl;
    break;
    case 0 ... 20 :
   
        cout << nilai << " Nilai hurufnya adalah E " << endl;
    break;
}
   
    return 0;
}
  
 5. Buatlah algoritma, flowchart dan program untuk menentukan banyaknya hari
dalam suatu bulan dan tahun yang diberikan. Pertimbangkan pula adanya tahun
kabisat di mana bulan Februari mempunyai jumlah 29 hari. Gunakan case .. of
dan if .. then .. else .. yang tepat untuk setiap kasus.
ALGORITMA :
Kasus 5 " Menampilkan Tanggal pada Bulan dan Tahun Tertentu "

Algoritma
    - mendeklarasikan variabel bulan dan tahun
    - menentukan apakah tahun tersebut kabisat atau bukan

Deklarasi
    - bulan, tanggal : interger
   
Deskripsi
     read (bulan)
     read (tahun)
     case 2 :  
            if ((tahun%100==0)||(tahun%100!=0)&&(tahun%400==0))
          
            for i <- 1 to 29 d0
            i <- i+1
            write (i)
              
              
              
          
            else
          
            for i < 1 to 28 do
            i <- i + 1  
            write (i)
              
        break;
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
      
            for i <- 1 to 31 do
            i <- i+1
            write (i)
        break;
      
        case 4:
        case 6:
        case 9:
        case 11:
      
            for i <- 1 to 30 do
            i <- i + 1
            write (i)
          
      
        break;
        default:
        write(salah kode bulan)

RAPTOR :


Program CPP : 
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
   
    int tahun, bulan,bil;

    cout << " Masukkan Tahun    : "; cin >> tahun;
    cout << " Masukkan Bulan ke : "; cin >> bulan;

    switch (bulan)
    {
        case 2:
            if ((tahun%100==0)||(tahun%100!=0)&&(tahun%400==0))
            {
                for(int i=1; i<=29; i++)
                {
                cout<<i<<" ";
                }
            }
            else
            {
                for(int i=1; i<=28; i++)
                {
                    cout<<i<<" ";
                }
            }
        break;

        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
        {
            for(int i=1; i<=31; i++)
            {
                cout<<i<<" ";
            }
        }
        break;

        case 4:
        case 6:
        case 9:
        case 11:
        {
            for(int i=1; i<=30; i++)
            {
                cout<<i<<" ";
            }
        }
        break;
        default:
        cout<<"salah kode bulan\n";
    }
   
getch();
}



0 komentar

Posting Komentar