#include <cstdlib>
#include <iostream>
#define maks 5
using namespace std;
class Stack{
friend ostream& operator<<(ostream&, const Stack&);
public:
Stack();
int penuh(int);
int kosong(int);
void cetak();
void push(char);
char pop();
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out, const Stack& s)
{
cout<<"\n Isi stack : ";
for(int i=0; i<s.banyak; i++)
out << s.A[i] << " ";
}
Stack::Stack(){
banyak=0;
for(int i=0; i<maks; i++)
A[i]='0';
}
int Stack::penuh(int s){
return s==maks? 1:0;
}
int Stack::kosong(int s){
return s==0? 1:0;
}
void Stack::cetak(){
cout <<"\n -> Isi Stack : ";
for(int i=0; i<banyak; i++)
cout << A[i] << " ";
}
void Stack::push(char x)
{
cout <<"\n Elemen Masuk : "<<x;
if (penuh(banyak)) cout<<"Stack penuh ";
else if (A[0]=='0'){
A[0]=x;
banyak++;}
else {
for (int i=banyak;i>=0; i--)
A[i+1]=A[i];
A[0]=x;
banyak++;
}
}
char Stack::pop()
{
cout <<"\n Pop stack, elemen yang di-pop: "<<A[0];
char temp=A[0];
for (int i=0; i<banyak; i++)
A[i]=A[i+1];
A[banyak]='0';
banyak++;
return temp;
}
int main()
{
Stack stack;
for (char c='a'; c<'e'; c++){
stack.push(c);
stack.cetak();
}
char p=stack.pop();
stack.cetak();
cout<<"\n-> Cetak pakai overloading: "<<stack;
system("PAUSE");
return 0;
}
Tugas s.data sbelum UTS
Diposting oleh
alka
, Minggu, 31 Oktober 2010 at 07.21, in
#include <cstdlib>
#include <iostream>
//#include “stdio.h”
//#include expects “FILENAME”
using namespace std;
int main()
{ int queue[10];
int depan = -3;
int belakang = -3;
int pilihan, data, i;
do{
cout <<” MENU\n”;
cout <<” 1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n”;
cout <<” Pilihan = “; scanf(“%d”, &pilihan);
switch (pilihan)
{
case 1:
if (belakang < 4 )
{ cout<<”Data Masuk = “; scanf(“%d”, &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
cout <<”Queue penuh!\n”;
break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ cout <<”Data keluar = %d\n”, queue[depan];
depan++;
}
else
cout<<”Queue kosong!\n”;
break;
case 3:
for(i=depan; i<=belakang; i++)
cout <<”%d “, queue[i];
cout <<”\n”;
break;
}
}while (pilihan != 4);
system(“PAUSE”);
return EXIT_SUCCESS;
}
#include <iostream>
//#include “stdio.h”
//#include expects “FILENAME”
using namespace std;
int main()
{ int queue[10];
int depan = -3;
int belakang = -3;
int pilihan, data, i;
do{
cout <<” MENU\n”;
cout <<” 1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n”;
cout <<” Pilihan = “; scanf(“%d”, &pilihan);
switch (pilihan)
{
case 1:
if (belakang < 4 )
{ cout<<”Data Masuk = “; scanf(“%d”, &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
cout <<”Queue penuh!\n”;
break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ cout <<”Data keluar = %d\n”, queue[depan];
depan++;
}
else
cout<<”Queue kosong!\n”;
break;
case 3:
for(i=depan; i<=belakang; i++)
cout <<”%d “, queue[i];
cout <<”\n”;
break;
}
}while (pilihan != 4);
system(“PAUSE”);
return EXIT_SUCCESS;
}
Prak 5 sData, Rabu jam 07.30
Diposting oleh
alka
, Kamis, 28 Oktober 2010 at 01.41, in
#include <iostream.h>
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& v);
Array1D(){delete[]element;}
T& operator[](int i)const;
int Size(){return size;}
Array1D<T>& operator =(const Array1D<T>& v);
Array1D<T> operator+()const;
Array1D<T> operator+(const Array1D<T>& v)const;
Array1D<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& v)const;
Array1D<T> operator*(const Array1D<T>& v)const;
Array1D<T>&operator+=(const T& x);
Array1D<T>& ReSize(int sz);
Array1D<T>& geser_kanan();
Array1D<T>& geser_kiri();
private:
int size;
T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
size =sz;
element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element=new T[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new T[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<" ";
return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
delete[]element;
size=sz;
element=new T[size];
return *this;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kanan()
{
int n = size;
int temp = element[n-1];
for (int i=n-1; i>=0; i--)
element[i+1]=element[i];
element[0]=temp;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kiri()
{
int n=size;
int temp = element[0];
for(int i=0; i<n; i++)
element[i]=element[i+1];
element[n-1]=temp;
}
int main()
{
int X(10),Y,Z;
for (int i=0; i<10; i++)
X=i;
cout<<" X = "<< X <<endl;
cout<<" X is "<< X <<endl;
Y=X;
cout<<" Y is "<< Y <<endl;
Y += 2;
cout << " X incremented by 2 is " <<X<<endl;
Z=(Y+X)*Y;
cout<<"(Y+X)*y is " << Z <<endl;
cout<< "-(Y+X)*Y is " << -Z <<endl;
cout<<"setelah digeser kekanan :"<<(Y-X)*Y<<endl;
cout<<"setelah digeser kekiri :"<<(Y+X)<<endl;
system("PAUSE");
}
template <class T>
class Array1D{
friend ostream& operator<<(ostream&,const Array1D<T>&);
public:
Array1D(int size=0);
Array1D(const Array1D<T>& v);
Array1D(){delete[]element;}
T& operator[](int i)const;
int Size(){return size;}
Array1D<T>& operator =(const Array1D<T>& v);
Array1D<T> operator+()const;
Array1D<T> operator+(const Array1D<T>& v)const;
Array1D<T> operator-()const;
Array1D<T> operator-(const Array1D<T>& v)const;
Array1D<T> operator*(const Array1D<T>& v)const;
Array1D<T>&operator+=(const T& x);
Array1D<T>& ReSize(int sz);
Array1D<T>& geser_kanan();
Array1D<T>& geser_kiri();
private:
int size;
T*element;
};
template <class T>
Array1D<T>::Array1D(int sz)
{
size =sz;
element=new T[sz];
}
template <class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element=new T[size]; // get space
for (int i=0;i<size;i++)// copy elements
element[i]=v.element[i];
}
template <class T>
T& Array1D<T>::operator[](int i)const
{
return element[i];
}
template <class T>
Array1D<T>&Array1D<T>::operator =(const Array1D<T>& v)
{
if (this !=&v){
size=v.size;
delete[]element;
element=new T[size];
for(int i=0;i<size;i++)
element[i]=v.element[i];
}
return *this;
}
template <class T>
Array1D<T>Array1D<T>::operator+(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]- v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]+ v.element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator-()const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=-element[i];
return w;
}
template <class T>
Array1D<T>Array1D<T>::operator*(const Array1D<T>& v)const
{
Array1D<T>w(size);
for(int i=0; i<size;i++)
w.element[i]=element[i]* v.element[i];
return w;
}
template <class T>
Array1D<T>&Array1D<T>::operator+=(const T& x)
{
for(int i=0; i<size;i++)
element[i]+=x;
return *this;
}
template <class T>
ostream& operator<<(ostream& out,const Array1D<T>& x)
{
for(int i=0; i<x.size;i++)
out<<x.element[i]<<" ";
return out;
}
template <class T>
Array1D<T>&Array1D<T>::ReSize(int sz)
{
delete[]element;
size=sz;
element=new T[size];
return *this;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kanan()
{
int n = size;
int temp = element[n-1];
for (int i=n-1; i>=0; i--)
element[i+1]=element[i];
element[0]=temp;
}
template <class T>
Array1D<T>&Array1D<T>::geser_kiri()
{
int n=size;
int temp = element[0];
for(int i=0; i<n; i++)
element[i]=element[i+1];
element[n-1]=temp;
}
int main()
{
int X(10),Y,Z;
for (int i=0; i<10; i++)
X=i;
cout<<" X = "<< X <<endl;
cout<<" X is "<< X <<endl;
Y=X;
cout<<" Y is "<< Y <<endl;
Y += 2;
cout << " X incremented by 2 is " <<X<<endl;
Z=(Y+X)*Y;
cout<<"(Y+X)*y is " << Z <<endl;
cout<< "-(Y+X)*Y is " << -Z <<endl;
cout<<"setelah digeser kekanan :"<<(Y-X)*Y<<endl;
cout<<"setelah digeser kekiri :"<<(Y+X)<<endl;
system("PAUSE");
}
praktikum 4
Diposting oleh
alka
, Selasa, 19 Oktober 2010 at 20.26, in
#include <cstdlib>
#include <iostream>
#define maks10
using namespace std;
class Array1D{
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator>>(istream&, Array1D&);
public:
Array1D();
void cetak();
void geser_kiri();
void geser_kanan();
void hapus_elemen();
void urut();
private:
char A[10];
};
Array1D::Array1D(){
for(int i=0;i<10;i++)
A[i]='O';
}
void Array1D::cetak(){
for(int i=0;i<10;i++)
cout<<A[i]<<" ";
}
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<10;i++)
out<<x.A[i]<<" ";
out<<endl;
return out;
}
istream& operator>>(istream& in, Array1D& x){
for(int i=0;i<10;i++){
cout<<"masukkan nilai array ke-"<<i+1<<" : ";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan(){
int n=10;
int temp=A[n-1];
for(int i=n-1;i>=0;i--)
A[i+1]=A[i];
A[0]=temp;
}
void Array1D::geser_kiri(){
int n=10;
int temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=temp;
}
void Array1D::hapus_elemen(){
int posisi;
cout<<"\npilih indeks berapa yang akan di hapus :\n";
cin>>posisi;
if(posisi>0 && posisi<=10)
A[posisi-1]='O';
else cout<<"indeks hanya terdiri dari 1 - 10\n";
}
int main(int argc, char *argv[])
{
Array1D x;
cout<<"Array masih kosong : "<<x;
cin>>x;
cout<<"Isi Array saat ini : "<<x;
x.geser_kiri();
cout<<"Isi Array setelah di geser kiri : "<<x;
x.geser_kanan();
cout<<"Isi Array setelah di geser kanan : "<<x;
cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
x.hapus_elemen();
cout<<"Setelah dihapus menjadi : "<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
#define maks10
using namespace std;
class Array1D{
friend ostream& operator<<(ostream&, const Array1D&);
friend istream& operator>>(istream&, Array1D&);
public:
Array1D();
void cetak();
void geser_kiri();
void geser_kanan();
void hapus_elemen();
void urut();
private:
char A[10];
};
Array1D::Array1D(){
for(int i=0;i<10;i++)
A[i]='O';
}
void Array1D::cetak(){
for(int i=0;i<10;i++)
cout<<A[i]<<" ";
}
ostream& operator<<(ostream& out, const Array1D& x){
for(int i=0;i<10;i++)
out<<x.A[i]<<" ";
out<<endl;
return out;
}
istream& operator>>(istream& in, Array1D& x){
for(int i=0;i<10;i++){
cout<<"masukkan nilai array ke-"<<i+1<<" : ";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan(){
int n=10;
int temp=A[n-1];
for(int i=n-1;i>=0;i--)
A[i+1]=A[i];
A[0]=temp;
}
void Array1D::geser_kiri(){
int n=10;
int temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=temp;
}
void Array1D::hapus_elemen(){
int posisi;
cout<<"\npilih indeks berapa yang akan di hapus :\n";
cin>>posisi;
if(posisi>0 && posisi<=10)
A[posisi-1]='O';
else cout<<"indeks hanya terdiri dari 1 - 10\n";
}
int main(int argc, char *argv[])
{
Array1D x;
cout<<"Array masih kosong : "<<x;
cin>>x;
cout<<"Isi Array saat ini : "<<x;
x.geser_kiri();
cout<<"Isi Array setelah di geser kiri : "<<x;
x.geser_kanan();
cout<<"Isi Array setelah di geser kanan : "<<x;
cout<<"Urutan elemen pada indeksnya saat ini : "<<x;
x.hapus_elemen();
cout<<"Setelah dihapus menjadi : "<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
Prak 2 struktur data
Diposting oleh
alka
, Rabu, 06 Oktober 2010 at 05.41, in
NAMA : AL-KAUTSAR YULIAN ARTA
NIM : 09018271
#include <cstdlib>
#include <iostream>
class Operasi;
using namespace std;
//template <class T>
class Kompleks
{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
private:
int a;
int b;
};
//template <class T>
void Kompleks::cetak(){
if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}
//template <class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
//template <class T>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
//template <class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
}
//template <class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out << '[' << x.a << ']';
else if (x.a==0&&x.b==1) out << '[' << "i" << ']';
else if (x.a==0&&x.b==-1) out << '[' << "-i" << ']';
else if (x.a==0&&x.b>1) out << '[' << x.b << "i" << ']';
else if (x.a==0&&x.b<-1) out << '[' << x.b << "i" << ']';
else if (x.b==1) out << '[' << x.a << "+" << "i" << ']';
else if (x.b>1) out << '[' << x.a << "+" << x.b << "i" << ']';
else if (x.b==-1) out << '[' << x.a << "-i" << ']';
else out << '[' << x.a << x.b << ']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks& x){
cout << "Masukan bagian real : ";
in >> x.a;
cout << "Masukan bagian imajiner : ";
in >> x.b;
return in;
}
//template <class T>
class Operasi
{
public:
void cetak();
Kompleks jumlah(const Kompleks&, const Kompleks&);
Kompleks kali(const Kompleks&, const Kompleks&);
Kompleks kurang(const Kompleks&, const Kompleks&);
private:
int a;
int b;
};
void Operasi::cetak(){
if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}
//template <class T>
Kompleks Operasi::jumlah(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main(int argc, char *argv[])
{
Kompleks x(2, 3), y(4, -4), t;
Operasi z;
cout << "Menggunakan cetak() : "; x.cetak();
cout << "Menggunakan Overloading : " << x;
cout << "Konjugat : " << -x;
y.cetak();
cout << "\nPenjumlahan menggunakan method : ";
t=z.jumlah(x, y);
t.cetak();
cout << "Penjumlahan menggunakan operator : ";
t=x+y;
cout << x << "+" << y << "=" << t;
cout << "\nPerkalian menggunakan method : ";
t=z.kali(x, y);
z.cetak();
cout << "\nPerkalian menggunakan operator : ";
//x*y;
//ut << x << "*" << y << "=" << t;
t-y;
cout << "\n" << x << "-" << y << "=" << t << endl;
Kompleks n;
cin >> n;
cout << n;
system("PAUSE");
return EXIT_SUCCESS;
}
NIM : 09018271
#include <cstdlib>
#include <iostream>
class Operasi;
using namespace std;
//template <class T>
class Kompleks
{
friend class Operasi;
friend ostream& operator<<(ostream&, const Kompleks&);
friend istream& operator>>(istream&, Kompleks&);
public:
Kompleks(int s=0, int t=0):a(s),b(t){}
void cetak();
Kompleks operator-();
Kompleks operator-(const Kompleks&);
Kompleks operator+(const Kompleks&);
private:
int a;
int b;
};
//template <class T>
void Kompleks::cetak(){
if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}
//template <class T>
Kompleks Kompleks::operator-(){
Kompleks x;
x.a=a;
x.b=-b;
return x;
}
//template <class T>
Kompleks Kompleks::operator-(const Kompleks& m){
Kompleks x;
x.a=a-m.a;
x.b=b-m.b;
return x;
}
//template <class T>
Kompleks Kompleks::operator+(const Kompleks& m){
Kompleks x;
x.a=a+m.a;
x.b=b+m.b;
}
//template <class T>
ostream& operator<<(ostream& out, const Kompleks& x){
if(x.b==0) out << '[' << x.a << ']';
else if (x.a==0&&x.b==1) out << '[' << "i" << ']';
else if (x.a==0&&x.b==-1) out << '[' << "-i" << ']';
else if (x.a==0&&x.b>1) out << '[' << x.b << "i" << ']';
else if (x.a==0&&x.b<-1) out << '[' << x.b << "i" << ']';
else if (x.b==1) out << '[' << x.a << "+" << "i" << ']';
else if (x.b>1) out << '[' << x.a << "+" << x.b << "i" << ']';
else if (x.b==-1) out << '[' << x.a << "-i" << ']';
else out << '[' << x.a << x.b << ']';
return out;
}
//template <class T>
istream& operator>>(istream& in, Kompleks& x){
cout << "Masukan bagian real : ";
in >> x.a;
cout << "Masukan bagian imajiner : ";
in >> x.b;
return in;
}
//template <class T>
class Operasi
{
public:
void cetak();
Kompleks jumlah(const Kompleks&, const Kompleks&);
Kompleks kali(const Kompleks&, const Kompleks&);
Kompleks kurang(const Kompleks&, const Kompleks&);
private:
int a;
int b;
};
void Operasi::cetak(){
if(b>0) cout << "Bilangan Kompleks : " << a << "+" << b << "i";
else cout << "Bilangan kompleks : " << a << b << "i";
cout << endl;
}
//template <class T>
Kompleks Operasi::jumlah(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=m.a+n.a;
temp.b=m.b+n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kurang(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=m.a-n.a;
temp.b=m.b-n.b;
return temp;
}
//template <class T>
Kompleks Operasi::kali(const Kompleks& m, const Kompleks& n){
Kompleks temp;
temp.a=(m.a*n.a)-(m.b*n.b);
temp.b=(m.a*n.b)-(m.b*n.a);
return temp;
}
int main(int argc, char *argv[])
{
Kompleks x(2, 3), y(4, -4), t;
Operasi z;
cout << "Menggunakan cetak() : "; x.cetak();
cout << "Menggunakan Overloading : " << x;
cout << "Konjugat : " << -x;
y.cetak();
cout << "\nPenjumlahan menggunakan method : ";
t=z.jumlah(x, y);
t.cetak();
cout << "Penjumlahan menggunakan operator : ";
t=x+y;
cout << x << "+" << y << "=" << t;
cout << "\nPerkalian menggunakan method : ";
t=z.kali(x, y);
z.cetak();
cout << "\nPerkalian menggunakan operator : ";
//x*y;
//ut << x << "*" << y << "=" << t;
t-y;
cout << "\n" << x << "-" << y << "=" << t << endl;
Kompleks n;
cin >> n;
cout << n;
system("PAUSE");
return EXIT_SUCCESS;
}
Prak 1 struktur data
Diposting oleh
alka
, Rabu, 29 September 2010 at 08.04, in
NAMA : Al-kautsar yulian arta
NIM : 09018271
class bilangan
#include <iostream>
using namespace std;
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
public:
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
private:
int a;
float b;
};
ostream& operator<<(ostream& out, const Bilangan& x){
out <<”Bagian integer :”<<x.a<<endl;
out <<”Bagian float :”<<x.b<<endl;
return out;
}
void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
if (x.a>y.a)cout<<x.a<<”::x lebih besar dari “<<y.a<<”::y”;
else cout <<x.a<<”::x lebih kecil”<<y.a<<”::y”;
}
Bilangan& Bilangan ::operator =(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in ,Bilangan& x)
{
cout<<”\nMasukan bagian integer :”;
in>>x.a;
cout<<”masukan bagian float :”;
in>>x.b;
return in ;
}
Bilangan Bilangan ::operator+(const Bilangan& x) const
{
Bilangan cc;
cc.a=a+x.a;
cc.b=b+x.b;
return cc;
}
Bilangan Bilangan ::operator -() const
{ Bilangan x;
x.a=-a;
x.b=-b;
return x;
}
int main () {
Bilangan s , t (-2,3.14),d;
cout<<”Nilai awal s\n”<<s;
cout<<”Nilai awal t dari deklarasi\n”<<t;
s=t;
cout<<”Setelah s di-assign t \n”;
cout<<”nilai s\n”<<s;
cout<<”masukan nilai-nilai objek d”;
cin>>d;
cout<<”setelah d +t =>\n”<<d+t;
cout<<”nilai d dinegatifkan\n”<<-d;
system (“PAUSE”);
return EXIT_SUCCESS;
}
struktur program diatas :
A. KELAS
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
public:
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
private:
int a;
float b;
};
B. KONSTRUKTOR
void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
if (x.a>y.a)cout<<x.a<<”::x lebih besar dari “<<y.a<<”::y”;
else cout <<x.a<<”::x lebih kecil”<<y.a<<”::y”;
}
Bilangan& Bilangan ::operator =(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
C. METHOD
int a;
float b;
};
D. DATA MEMBER
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
E. OPERATOR OVERLOADING
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
NIM : 09018271
class bilangan
#include <iostream>
using namespace std;
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
public:
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
private:
int a;
float b;
};
ostream& operator<<(ostream& out, const Bilangan& x){
out <<”Bagian integer :”<<x.a<<endl;
out <<”Bagian float :”<<x.b<<endl;
return out;
}
void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
if (x.a>y.a)cout<<x.a<<”::x lebih besar dari “<<y.a<<”::y”;
else cout <<x.a<<”::x lebih kecil”<<y.a<<”::y”;
}
Bilangan& Bilangan ::operator =(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in ,Bilangan& x)
{
cout<<”\nMasukan bagian integer :”;
in>>x.a;
cout<<”masukan bagian float :”;
in>>x.b;
return in ;
}
Bilangan Bilangan ::operator+(const Bilangan& x) const
{
Bilangan cc;
cc.a=a+x.a;
cc.b=b+x.b;
return cc;
}
Bilangan Bilangan ::operator -() const
{ Bilangan x;
x.a=-a;
x.b=-b;
return x;
}
int main () {
Bilangan s , t (-2,3.14),d;
cout<<”Nilai awal s\n”<<s;
cout<<”Nilai awal t dari deklarasi\n”<<t;
s=t;
cout<<”Setelah s di-assign t \n”;
cout<<”nilai s\n”<<s;
cout<<”masukan nilai-nilai objek d”;
cin>>d;
cout<<”setelah d +t =>\n”<<d+t;
cout<<”nilai d dinegatifkan\n”<<-d;
system (“PAUSE”);
return EXIT_SUCCESS;
}
struktur program diatas :
A. KELAS
class Bilangan {
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
public:
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
private:
int a;
float b;
};
B. KONSTRUKTOR
void Bilangan::banding_int(const Bilangan& x, const Bilangan& y)
{
if (x.a>y.a)cout<<x.a<<”::x lebih besar dari “<<y.a<<”::y”;
else cout <<x.a<<”::x lebih kecil”<<y.a<<”::y”;
}
Bilangan& Bilangan ::operator =(const Bilangan& x)
{
a=x.a;
b=x.b;
return *this;
C. METHOD
int a;
float b;
};
D. DATA MEMBER
Bilangan (int a0=0, float b0=0.0) : a(a0),b (b0) {}
void banding_int (const Bilangan&, const Bilangan&);
Bilangan& operator =(const Bilangan&);
Bilangan operator +(const Bilangan&) const;
Bilangan operator -() const ;
E. OPERATOR OVERLOADING
friend ostream& operator<<(ostream&, const Bilangan&) ;
friend istream& operator>>(istream&, Bilangan&);
Langganan:
Postingan (Atom)