4.29.2010

Tugas Re-mid Algoritma dan Pemrograman


Tugas Re-mid Algoritma dan Pemrograman

Soal :
    Merubah dari fungsi main ke OOP dengan overloading input dan output

Program 1 : Program untuk menghitung jumlah kuadrat

Fungsi main :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i=1,n, jumlah=0;
    cout << "Program untuk menghitung jumlah kuadrat\n";
    cout << "masukan bilangan positif : ";
    cin >> n;
    while(i<=n){
                jumlah+=i*i;
                i++;
                }
    cout << "Jumlah 1 sampai " << n << " kuadrat " << jumlah << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Setelah diubah ke OOP :

#include <cstdlib>
#include <iostream>

using namespace std;
class Kuadrat{
      friend istream& operator>>(istream&, Kuadrat&);
      friend ostream& operator<<(ostream&, const Kuadrat&);
      public:
             Kuadrat();
             void hitung();
      private:
              int n, jumlah;
};
Kuadrat::Kuadrat(){
                   cout << "Program untuk menghitung jumlah kuadrat\n";
                   }
istream& operator>>(istream& in, Kuadrat& x){
         cout << "masukan bilangan positif : ";
         in >> x.n;
         return in;
}
ostream& operator<<(ostream& out, const Kuadrat& x){
         int jum;
         jum=x.jumlah;
         out <<"Jumlah 1 sampai " << x.n << " kuadrat " << jum-2<<endl;
}
void Kuadrat::hitung(){
     int i=1;
     while(i<=n){
                jumlah+=i*i;
                i++;
                }
}
int main(int argc, char *argv[])
{
    Kuadrat A;
    cin >> A;
    A.hitung();
    cout << A;
    system("PAUSE");
    return EXIT_SUCCESS;
}
 output dari source code :


Program 2 : Program Menghitung Faktorial dari Inputan Angka

Fungsi main :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int angka;
    int faktor=1;
    cout << "Program Menghitung Faktorial dari Inputan Angka\n";
    cout << "Masukan Angka : ";
    cin >> angka;
    for(int i=1; i<= angka; i++){
            faktor*=i;
            cout << i << " ";
            }
    cout << "\nhasil = " << faktor << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Setelah diubah ke OOP :

#include <cstdlib>
#include <iostream>

using namespace std;
class Faktor{
      friend istream& operator>>(istream&, Faktor&);
      friend ostream& operator<<(ostream&, const Faktor&);
      public:
             Faktor();
             void hitung_faktor();
      private:
              int angka;
               int faktor;
};
Faktor::Faktor(){
                 cout << "Program Menghitung Faktorial dari Inputan Angka\n";
                 }
istream& operator>>(istream& in, Faktor& x){
         cout << "Masukan Angka : ";
         in >> x.angka;
         return(in);
}
void Faktor::hitung_faktor(){
     for(int i=1; i<= angka; i++){
            faktor*=i;
            cout << i << " ";
            }
}
ostream& operator<<(ostream& out, const Faktor& x){
         int tmp;
         tmp=x.faktor;
         out << "\nhasil : " << tmp/2 << endl;
}
int main(int argc, char *argv[])
{
    Faktor A;
    cin >> A;
    A.hitung_faktor();
    cout << A;
    system("PAUSE");
    return EXIT_SUCCESS;
}
output dari source code :

Program 3 : Program Menghitung Jarak Jatuhnya Peluru

Fungsi main :

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
    float sudut, kecepatan, rad, jarak;
    cout << "Program Menghitung Jarak Jatuhnya Peluru\n";
    cout << "Masukan sudut penembakan (derajat) : ";
    cin >> sudut;
    cout << "Masukan kecepatan tembak (m/s) : ";
    cin >> kecepatan;
  
    rad=sudut*3.14/180;
    jarak=2*pow(kecepatan,2)*sin(rad)*cos(rad)/9.8;
  
    cout << "Peluru Jatuh Pada Jarak(m) : " << jarak << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Setelah diubah ke OOP :

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;
class Jarak_jatuh{
      friend istream& operator>>(istream&, Jarak_jatuh&);
      friend ostream& operator<<(ostream&, const Jarak_jatuh&);
      public :
             void hitung_jarak();
      private:
              float sudut, kecepatan, rad, jarak;
};
istream& operator>>(istream& in, Jarak_jatuh& x){
         cout << "Program Menghitung Jarak Jatuhnya Peluru\n";
         cout << "Masukan sudut penembakan (derajat) : ";
         cin >> x.sudut;
         cout << "Masukan kecepatan tembak (m/s) : ";
         cin >> x.kecepatan;
         return in;
}
void Jarak_jatuh::hitung_jarak(){
     rad=sudut*3.14/180;
     jarak=2*pow(kecepatan,2)*sin(rad)*cos(rad)/9.8;
}
ostream& operator<<(ostream& out, const Jarak_jatuh& x){
         cout << "Peluru Jatuh Pada Jarak(m) : " << x.jarak << endl;
}
int main(int argc, char *argv[])
{
    Jarak_jatuh A;
    cin >> A;
    A.hitung_jarak();
    cout << A;
    system("PAUSE");
    return EXIT_SUCCESS;
}
output dari source code :


Program 4 : rogram Penjumlahan Dua Buah Vektor

Fungsi main :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int elemen[100];
    int elemen1[100];
    int elemen2[100];
    int banyak;
    int A,B;
    cout << "Program Penjumlahan Dua Buah Vektor\n";
    cout << "\nBanyak elemen : ";
         cin >> A;
         cout << "Masukan data vektor\n";
         for(int i=0; i<A; i++){
                 cout << "Data[ " << i+1 << " ]";
                 cin >> elemen1[i];
                 }
    cout << endl;
         for(int i=0; i<A; i++){
         cout << "Data [ " << i+1 << " ] = " <<  elemen1[i] << endl;
         }
    cout << "\nBanyak elemen : ";
         cin >> B;
         cout << "Masukan data vektor\n";
         for(int i=0; i<B; i++){
                 cout << "Data[ " << i+1 << " ]";
                 cin >> elemen2[i];
                 }
    cout << endl;
         for(int i=0; i<B; i++){
         cout << "Data [ " << i+1 << " ] = " <<  elemen2[i] << endl;
         }
    cout << "\nhasil : \n";
    if(A<B)
            banyak=A;
    else banyak=B;
     for(int i=0; i<banyak; i++){
     elemen[i]=elemen1[i]*elemen2[i];
     cout << "Data [ " << i+1 << " ] = " <<  elemen[i] << endl;
     }
    system("PAUSE");
    return EXIT_SUCCESS;
}

Setelah diubah ke OOP :

#include <cstdlib>
#include <iostream>

using namespace std;
class Vektor{
      friend ostream& operator<<(ostream&, Vektor&);
      friend istream& operator>>(istream&, Vektor&);
public:
       Vektor();
       void perkalian_vektor(const Vektor&, const Vektor&);
       void beri_nilai(int);
private:
        int elemen[100];
        int banyak;
};
Vektor::Vektor(){
                 banyak=3;
                 for(int i=0; i<banyak; i++)
                 elemen[i]=0;
}
void Vektor::beri_nilai(int i){
     banyak=i;
}
istream& operator>>(istream& in, Vektor& x){
         cout << "Program Penjumlahan Dua Buah Vektor\n";
         cout << "\nBanyak elemen : ";
         in >> x.banyak;
         cout << "Masukan data vektor\n";
         for(int i=0; i<x.banyak; i++){
                 cout << "Data[ " << i+1 << " ]";
                 in >> x.elemen[i];
                 }
         return(in);
}
ostream& operator<<(ostream& out, Vektor& x){
         out << endl;
         for(int i=0; i<x.banyak; i++)
         out << "Data [ " << i+1 << " ] = " <<  x.elemen[i] << endl;
         return(out);
}
void Vektor::perkalian_vektor(const Vektor& A, const Vektor& B){
     if(A.banyak<B.banyak)banyak=A.banyak;
     else banyak=B.banyak;
     for(int i=0; i<banyak; i++)
     elemen[i]=A.elemen[i]*B.elemen[i];
}

int main(int argc, char *argv[])
{
    Vektor X,Y,Z;
    cin >> X;
    cout <<X;
    cin >> Y;
    cout <<Y;
    Z.perkalian_vektor(X,Y);
    cout << "\n Hasil : \n" << Z;
    system("PAUSE");
    return EXIT_SUCCESS;
}
output dari source code :


Program 5 : Program Menghitung jarak dua buah titik koordinat

Fungsi main :

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

int main(int argc, char *argv[])
{
    int x1,x2,y1,y2;
    float hasil;
    cout << "Masukan Koordinat\n";
          cout << "Koordinat 1\n";
          cout << "x : "; cin >> x1;
          cout << "y : "; cin >> y1;
          cout << "Koordinat 1 : (" << x1 << ", " << y1 << ")\n";
          cout << "Koordinat 2\n";
          cout << "x : "; cin >> x2;
          cout << "y : "; cin >> y2;
          cout << "Koordinat 2 : (" << x2 << ", " << y2 << ")\n";
    hasil=sqrt((abs(x1-x2))^2+(abs(y1-y2)));
    cout << "Jarak dua titik : " << hasil << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Setelah diubah ke OOP :

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;
class Jarak_dua_titik{
      friend istream& operator>>(istream&, Jarak_dua_titik&);
      friend ostream& operator<<(ostream&, const Jarak_dua_titik&);
      public:
             void hasil_jarak(){hasil=sqrt((abs(x1-x2))^2+(abs(y1-y2))^2);};
      private:
              int x1,x2,y1,y2;
              float hasil;
};
istream& operator>>(istream& in, Jarak_dua_titik& X){
          cout << "Masukan Koordinat\n";
          cout << "Koordinat 1\n";
          cout << "x : "; in >> X.x1;
          cout << "y : "; in >> X.y1;
          cout << "Koordinat 1 : (" << X.x1 << ", " << X.y1 << ")\n";
          cout << "Koordinat 2\n";
          cout << "x : "; in >> X.x2;
          cout << "y : "; in >> X.y2;
          cout << "Koordinat 2 : (" << X.x2 << ", " << X.y2 << ")\n";
          return(in);
}
ostream& operator<<(ostream& out, const Jarak_dua_titik& X){
          out << "Jarak dua titik : " << X.hasil << endl;
          return(out);
}
int main(int argc, char *argv[])
{
    Jarak_dua_titik A;
    cin >> A;
    cout << A;
    system("PAUSE");
    return EXIT_SUCCESS;
}
output dari source code :


Makasih...

0 komentar:

Posting Komentar

 

Cah Cengar's © 2008 Business Ads Ready is Designed by Ipiet Supported by Tadpole's Notez