prak 9
#include <cstdlib>
#include <iostream>
#define maks 5
using namespace std;
class node{
public:
char data;
node *next;
};
class queue{
friend ostream& operator<<(ostream&, const queue&);
public:
queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
private:
char a[maks];
int banyak;
node *first;
node *last;
};
ostream& operator<<(ostream& out,const queue& s){
if(s.banyak==0){cout<<"\nQueue Kosong,!";}else{
cout<<"\nIsi Queue sebanyak "<<s.banyak<<", yaitu: ";
for(int i=0;i<s.banyak;i++)
out<<s.a[i];
}
}
queue::queue(){
first=NULL;
last=NULL;
banyak=0;
for(int i=0;i<maks;i++)
a[i]='0';
}
int queue::penuh(int s){
return s==maks?1:0;
}
int queue::kosong(int s){
return s==0?1:0;
}
void queue::cetak(){
cout<<"\nIsi Queue: ";
for(int i=0;i<banyak;i++)
cout<<a[i]<<" ";
}
void queue::enqueue(char data){
if(first == NULL){
first = new node();
first->data = data;
last = first;
}else{
last->next = new node();
last->next->data = data;
last = last->next;
}
cout<<"\nElemen: "<<data<<" masuk antrian";
if(penuh(banyak))cout<<"\nMaaf,elemen "<<data<<" tidak bisa masuk antrian!!\nQueue penuh";
else if(a[0]=='0'){
a[0]=data;
banyak++;
}else{
int tempat=0;
while(a[tempat]>data)tempat++;
if(banyak!=tempat)
for(int i=banyak;i>=tempat;i--)
a[i+1]=a[i];
a[tempat]=data;
banyak++;
}
}
char queue::dequeue(){
char reval = NULL;
node *point;
point = first;
if(first!=NULL){
first = first->next;
reval = point->data;
delete point;
}
char temp=a[--banyak];
cout<<"\n\nDequeue elemen --> "<<temp;
a[banyak]='0';
return temp;
}
int main(int argc, char *argv[])
{
queue p;
p.enqueue('b');
cout<<p;
p.enqueue('d');
cout<<p;
p.enqueue('c');
cout<<p;
p.enqueue('e');
cout<<p;
p.enqueue('a');
cout<<p;
p.enqueue('f');
cout<<p;
char x=p.dequeue();
cout<<"\nElemen yang di-dequeue "<<x<<endl;
cout<<p;
char y=p.dequeue();
cout<<"\nElemen yang di-dequeue "<<y<<endl;
cout<<p;
char z=p.dequeue();
cout<<"\nElemen yang di-dequeue "<<z<<endl;
cout<<p;
char x1=p.dequeue();
cout<<"\nElemen yang di-dequeue "<<x1<<endl;
cout<<p;
char y1=p.dequeue();
cout<<"\nElemen yang di-dequeue "<<y1<<endl;
cout<<p;
cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
Friday, 31 December 2010
SIMULASI QUEUE DENGAN ARRAY
prak 8
#include <cstdlib>
#include <iostream>
#define maks 6
using namespace std;
class Queue{
friend ostream& operator<<(ostream&,const Queue&);
public:
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
void urik();
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out,const Queue& s)
{ cout<<"\nIsi Queue:";
for(int i=0;i<s.banyak;i++)
out<<s.A[i]<<" ";
}
Queue::Queue(){
banyak=0;
for(int i=0;i<maks;i++)
A[i]='0';
}
int Queue::penuh(int s)
{ return s==maks?1:0;}
int Queue::kosong(int s)
{ return s==0?1:0;}
void Queue::cetak()
{ cout<<"\nIsi Queue:";
for(int i=0;i<banyak;i++)
cout<<A[i]<<" ";
}
void Queue::enqueue(char x)
{
cout<<"\n\nElemen:"<<x<<" masuk antrian";
if(penuh(banyak))cout<<" \nmaaf,queue penuh!!\n"<<x<<" tidak bisa masuk antrian";
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 Queue::dequeue()
{
char temp=A[--banyak];
cout<<"\n\nDequeue elemen--> "<<temp;
A[banyak]='0';
return temp;
}
void Queue::urik()
{
int n=maks;
char temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=temp;
}
int main(int argc, char *argv[])
{
Queue q;
int x=1;
for(char c='a';c<'h';c++){
q.enqueue(c);
cout<<q;
}
char p=q.dequeue();
q.cetak();
char d='h';
q.enqueue(d);
q.urik();
cout<<q;
cout<<"\n\nCetak pakai overloading"<<q;
char r=q.dequeue();
q.cetak();
cout<<"\n\nCetak pakai overloading"<<q;
cout<<endl<<endl;;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
#define maks 6
using namespace std;
class Queue{
friend ostream& operator<<(ostream&,const Queue&);
public:
Queue();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
void urik();
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out,const Queue& s)
{ cout<<"\nIsi Queue:";
for(int i=0;i<s.banyak;i++)
out<<s.A[i]<<" ";
}
Queue::Queue(){
banyak=0;
for(int i=0;i<maks;i++)
A[i]='0';
}
int Queue::penuh(int s)
{ return s==maks?1:0;}
int Queue::kosong(int s)
{ return s==0?1:0;}
void Queue::cetak()
{ cout<<"\nIsi Queue:";
for(int i=0;i<banyak;i++)
cout<<A[i]<<" ";
}
void Queue::enqueue(char x)
{
cout<<"\n\nElemen:"<<x<<" masuk antrian";
if(penuh(banyak))cout<<" \nmaaf,queue penuh!!\n"<<x<<" tidak bisa masuk antrian";
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 Queue::dequeue()
{
char temp=A[--banyak];
cout<<"\n\nDequeue elemen--> "<<temp;
A[banyak]='0';
return temp;
}
void Queue::urik()
{
int n=maks;
char temp=A[0];
for(int i=0;i<n;i++)
A[i]=A[i+1];
A[n-1]=temp;
}
int main(int argc, char *argv[])
{
Queue q;
int x=1;
for(char c='a';c<'h';c++){
q.enqueue(c);
cout<<q;
}
char p=q.dequeue();
q.cetak();
char d='h';
q.enqueue(d);
q.urik();
cout<<q;
cout<<"\n\nCetak pakai overloading"<<q;
char r=q.dequeue();
q.cetak();
cout<<"\n\nCetak pakai overloading"<<q;
cout<<endl<<endl;;
system("PAUSE");
return EXIT_SUCCESS;
}
Wednesday, 8 December 2010
STACK DENGAN ARRAY
prak 7
#include <cstdlib>
#include <iostream>
#define maks 5
using namespace std;
class stack{
friend ostream& operator<<(ostream&, const stack&);
public:
stack();
int penuh(int);
int kosang(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 dipop :"<<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<'d';c++){
stack.push(c);
stack.cetak();
}
char p=stack.pop();
stack.cetak();
cout<<"\n\n cetak pakai overloding :"<<stack;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
#define maks 5
using namespace std;
class stack{
friend ostream& operator<<(ostream&, const stack&);
public:
stack();
int penuh(int);
int kosang(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 dipop :"<<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<'d';c++){
stack.push(c);
stack.cetak();
}
char p=stack.pop();
stack.cetak();
cout<<"\n\n cetak pakai overloding :"<<stack;
system("PAUSE");
return EXIT_SUCCESS;
}
LINK LIST
prak 6
#include <cstdlib>
#include <iostream>
using namespace std;
class Node{
friend class List;
friend ostream& operator<<(ostream&, const List&);
public:
Node(char& t, Node *p):info(t), berikut(p){}
protected:
char info;
Node *berikut;
};
class List{
friend ostream& operator<<(ostream&, const List&);
public:
List():kepala(0){}
~List();
void sisip(char t);
int hapus(char& t);
int kosong(){return(kepala==0);}
void cetak();
protected:
Node *kepala;
Node *nodeBaru(char& t, Node *p){
Node *q=new Node(t,p);return q;}
};
ostream& operator<<(ostream& out, const List& k){
for(Node *p=k.kepala;p;p=p->berikut)
out<<p->info<<"->";
out<<"*\n";
return out;
}
List::~List(){
Node *temp;
for(Node *p=kepala;p;){
temp=p;
p=p->berikut;
delete temp;
}
}
void List::sisip(char t){
cout<<t<<"masuk list:";
Node *p=nodeBaru(t,kepala);
kepala=p;
}
int List::hapus(char& t){
if(kosong())return 0;
t=kepala->info;
Node *p=kepala;
kepala=kepala->berikut;
delete p;
return 1;
}
void List::cetak(){
for(Node *p=kepala;p;p=p->berikut)
cout<<p->info<<"->";
cout<<"*\n";
}
int main(int argc, char *argv[])
{
cout<<"link list\n\n";
List x;
char data;
x.sisip('a');
cout<<x;
x.sisip('b');
cout<<x;
x.sisip('c');
cout<<x;
x.sisip('d');
cout<<x;
for(int i=0;i<5;i++){
x.hapus(data);cout<<data<<" dihapus dari list : ";
cout<<x;
}
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
class Node{
friend class List;
friend ostream& operator<<(ostream&, const List&);
public:
Node(char& t, Node *p):info(t), berikut(p){}
protected:
char info;
Node *berikut;
};
class List{
friend ostream& operator<<(ostream&, const List&);
public:
List():kepala(0){}
~List();
void sisip(char t);
int hapus(char& t);
int kosong(){return(kepala==0);}
void cetak();
protected:
Node *kepala;
Node *nodeBaru(char& t, Node *p){
Node *q=new Node(t,p);return q;}
};
ostream& operator<<(ostream& out, const List& k){
for(Node *p=k.kepala;p;p=p->berikut)
out<<p->info<<"->";
out<<"*\n";
return out;
}
List::~List(){
Node *temp;
for(Node *p=kepala;p;){
temp=p;
p=p->berikut;
delete temp;
}
}
void List::sisip(char t){
cout<<t<<"masuk list:";
Node *p=nodeBaru(t,kepala);
kepala=p;
}
int List::hapus(char& t){
if(kosong())return 0;
t=kepala->info;
Node *p=kepala;
kepala=kepala->berikut;
delete p;
return 1;
}
void List::cetak(){
for(Node *p=kepala;p;p=p->berikut)
cout<<p->info<<"->";
cout<<"*\n";
}
int main(int argc, char *argv[])
{
cout<<"link list\n\n";
List x;
char data;
x.sisip('a');
cout<<x;
x.sisip('b');
cout<<x;
x.sisip('c');
cout<<x;
x.sisip('d');
cout<<x;
for(int i=0;i<5;i++){
x.hapus(data);cout<<data<<" dihapus dari list : ";
cout<<x;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Wednesday, 27 October 2010
ARRAY DINAMIS
prak 5
s
// exception classes for various error types
#ifndef Xcept_
#define Xcept_
#include <except.h>
#include <new.h>
// bad initializers
class BadInitializers {
public:
BadInitializers() {}
};
// insufficient memory
class NoMem {
public:
NoMem() {}
};
// change new to throw NoMem instead of xalloc
void my_new_handler()
{
throw NoMem();
};
new_handler Old_Handler_ = set_new_handler(my_new_handler);
// improper array, find, insert, or delete index
// or deletion from empty structure
class OutOfBounds {
public:
OutOfBounds() {}
};
// use when operands should have matching size
class SizeMismatch {
public:
SizeMismatch() {}
};
// use when zero was expected
class MustBeZero {
public:
MustBeZero() {}
};
// use when zero was expected
class BadInput {
public:
BadInput() {}
};
#endif
program awal
#include <cstdlib>
#include <iostream>
#include "xcept.h"
using namespace std;
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);
void geser_kiri();
void geser_kanan();
private:
int size;
T*element;
};
template<class T>
Array1D<T>::Array1D(int sz)
{
if (sz < 0)throw BadInitializers();
size =sz;
element = new T[sz];
}
template<class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element = new T[size];
for (int i = 0; i<size; i++)
element [i]= v.element[i];
}
template<class T>
T& Array1D<T>::operator[](int i) const
{
if (i<0 || i >=size)throw OutOfBounds();
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
{
if (size != v.size) throw SizeMismatch();
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
{
if (size != v.size) throw SizeMismatch();
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
{
if (size != v.size) throw SizeMismatch();
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)
{
if (sz<0) throw BadInitializers();
size = sz;
element = new T[size];
return* this;
}
void main(void)
{
try {
Array1D<int>x(10),y,z;
for(int i=0;i<20;i++)
x[i]=i;
cout<<"X[3]="<<x[3]<<endl;
cout<<"X is"<<x<<endl;
y=x;
cout<<"Y is"<<y<<endl;
x+=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;
}
catch(...){
cerr<<"An exception has occured"<<endl;}
}
{
system("PAUSE");
return EXIT_SUCCESS;
}
s
// exception classes for various error types
#ifndef Xcept_
#define Xcept_
#include <except.h>
#include <new.h>
// bad initializers
class BadInitializers {
public:
BadInitializers() {}
};
// insufficient memory
class NoMem {
public:
NoMem() {}
};
// change new to throw NoMem instead of xalloc
void my_new_handler()
{
throw NoMem();
};
new_handler Old_Handler_ = set_new_handler(my_new_handler);
// improper array, find, insert, or delete index
// or deletion from empty structure
class OutOfBounds {
public:
OutOfBounds() {}
};
// use when operands should have matching size
class SizeMismatch {
public:
SizeMismatch() {}
};
// use when zero was expected
class MustBeZero {
public:
MustBeZero() {}
};
// use when zero was expected
class BadInput {
public:
BadInput() {}
};
#endif
program awal
#include <cstdlib>
#include <iostream>
#include "xcept.h"
using namespace std;
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);
void geser_kiri();
void geser_kanan();
private:
int size;
T*element;
};
template<class T>
Array1D<T>::Array1D(int sz)
{
if (sz < 0)throw BadInitializers();
size =sz;
element = new T[sz];
}
template<class T>
Array1D<T>::Array1D(const Array1D<T>& v)
{
size = v.size;
element = new T[size];
for (int i = 0; i<size; i++)
element [i]= v.element[i];
}
template<class T>
T& Array1D<T>::operator[](int i) const
{
if (i<0 || i >=size)throw OutOfBounds();
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
{
if (size != v.size) throw SizeMismatch();
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
{
if (size != v.size) throw SizeMismatch();
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
{
if (size != v.size) throw SizeMismatch();
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)
{
if (sz<0) throw BadInitializers();
size = sz;
element = new T[size];
return* this;
}
void main(void)
{
try {
Array1D<int>x(10),y,z;
for(int i=0;i<20;i++)
x[i]=i;
cout<<"X[3]="<<x[3]<<endl;
cout<<"X is"<<x<<endl;
y=x;
cout<<"Y is"<<y<<endl;
x+=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;
}
catch(...){
cerr<<"An exception has occured"<<endl;}
}
{
system("PAUSE");
return EXIT_SUCCESS;
}
Wednesday, 20 October 2010
ARRAY STATIS
prak 4
#include <cstdlib>
#include <iostream>
#define maks 5
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();
private:
char A[maks];
};
Array1D::Array1D()
{
for(int i=0; i<maks; i++)
A[i]='0';
}
void Array1D::cetak()
{
for(int i=0; i< maks; i++)
cout <<A[i]<<"";
}
ostream& operator<<(ostream& out,const Array1D&x)
{
for(int i=0;i<maks;i++)
cout<<x.A[i]<<"";
cout<<endl;
return out;
}
istream& operator>>(istream& in,Array1D& x){
for(int i=0;i<5;i++){
cout<<"masukan nilai elemen posisi ke-"<<i+1<<":";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan()
{
int n=maks;
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=maks;
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<<"pilih indek berapa yang akan di hapus:";
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]='0';
else cout<<"nilai di luar range dari 1-5/n";
}
main(){
Array1D x;
cout<<"Array masih kosong:"<< x;
cin>>x;
cout<<"isi Array saat ini:"<<x;
x.geser_kiri();
cout<<"isi Array setelah digeser ke kiri:"<<x;
x.geser_kanan();
cout<<"isi Array setelah digeser ke kanan:"<<x;
x.hapus_elemen();
cout<<"setelah dihapus:"<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
#define maks 5
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();
private:
char A[maks];
};
Array1D::Array1D()
{
for(int i=0; i<maks; i++)
A[i]='0';
}
void Array1D::cetak()
{
for(int i=0; i< maks; i++)
cout <<A[i]<<"";
}
ostream& operator<<(ostream& out,const Array1D&x)
{
for(int i=0;i<maks;i++)
cout<<x.A[i]<<"";
cout<<endl;
return out;
}
istream& operator>>(istream& in,Array1D& x){
for(int i=0;i<5;i++){
cout<<"masukan nilai elemen posisi ke-"<<i+1<<":";
in>>x.A[i];
}
return in;
}
void Array1D::geser_kanan()
{
int n=maks;
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=maks;
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<<"pilih indek berapa yang akan di hapus:";
cin>>posisi;
if(posisi>0 && posisi<=5)
A[posisi-1]='0';
else cout<<"nilai di luar range dari 1-5/n";
}
main(){
Array1D x;
cout<<"Array masih kosong:"<< x;
cin>>x;
cout<<"isi Array saat ini:"<<x;
x.geser_kiri();
cout<<"isi Array setelah digeser ke kiri:"<<x;
x.geser_kanan();
cout<<"isi Array setelah digeser ke kanan:"<<x;
x.hapus_elemen();
cout<<"setelah dihapus:"<<x;
system("PAUSE");
return EXIT_SUCCESS;
}
Wednesday, 13 October 2010
INHERITANCE DALAM C++
prak 3
#include <cstdlib>
#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;
protected:
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 dari"<<y.a<<"::y";
}
bilangan& bilangan::operator=(const bilangan& x){
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in, bilangan& x){
cout<<"\nMasukkan bagian integer: ";
in>>x.a;
cout<<"Masukkan 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;
}
class bil_char:public bilangan{
friend ostream& operator<<(ostream&, const bil_char&);
public:
bil_char(int a0=0, int b0=0,char ch='x'):bilangan(a0,b0),c(ch){}
private:
char c;
};
ostream& operator<<(ostream& out,const bil_char& x){
out<<"Bagian integer: "<<x.a<<endl;
out<<"Bagian float: "<<x.b<<endl;
out<<"Bagian char: "<<x.c<<endl;
return out;
}
int main(int argc, char *argv[])
{
cout<<"AFRIQ YASIN RAMADHAN\n09018222\n\n";
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 diassign t\n";
cout<<"Nilai s\n"<<s;
cout<<"Masukkan nilai-nilai objek d";
cin>>d;
cout<<"Setelah d+t=>\n"<<d+t;
cout<<"Nilai d dinegatifkan\n"<<-d;
bil_char ss;
cout<<"Nilai awal ss\n"<<ss;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#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;
protected:
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 dari"<<y.a<<"::y";
}
bilangan& bilangan::operator=(const bilangan& x){
a=x.a;
b=x.b;
return *this;
}
istream& operator>>(istream& in, bilangan& x){
cout<<"\nMasukkan bagian integer: ";
in>>x.a;
cout<<"Masukkan 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;
}
class bil_char:public bilangan{
friend ostream& operator<<(ostream&, const bil_char&);
public:
bil_char(int a0=0, int b0=0,char ch='x'):bilangan(a0,b0),c(ch){}
private:
char c;
};
ostream& operator<<(ostream& out,const bil_char& x){
out<<"Bagian integer: "<<x.a<<endl;
out<<"Bagian float: "<<x.b<<endl;
out<<"Bagian char: "<<x.c<<endl;
return out;
}
int main(int argc, char *argv[])
{
cout<<"AFRIQ YASIN RAMADHAN\n09018222\n\n";
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 diassign t\n";
cout<<"Nilai s\n"<<s;
cout<<"Masukkan nilai-nilai objek d";
cin>>d;
cout<<"Setelah d+t=>\n"<<d+t;
cout<<"Nilai d dinegatifkan\n"<<-d;
bil_char ss;
cout<<"Nilai awal ss\n"<<ss;
system("PAUSE");
return EXIT_SUCCESS;
}
Friday, 8 October 2010
KONSTRUKTOR DAN TEMPLATE
prak 2
#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;
}
#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;
}
Wednesday, 29 September 2010
CLASS
prak 1
s.data
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 dari"<<y.a<<"::y";
}
bilangan&bilangan::operator=(const bilangan&x)
{ a=x.a;
b=x.b;
return*this;
}
c.method:
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;
d.data member:
private:
int a;
float b;
};
e.operator overloading:
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)
{ 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.a;
return cc;
}
bilangan bilangan::operator-()const
{ bilangan x;
x.a=-a;
x.b=-b;
return x;
}
s.data
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 dari"<<y.a<<"::y";
}
bilangan&bilangan::operator=(const bilangan&x)
{ a=x.a;
b=x.b;
return*this;
}
c.method:
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;
d.data member:
private:
int a;
float b;
};
e.operator overloading:
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)
{ 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.a;
return cc;
}
bilangan bilangan::operator-()const
{ bilangan x;
x.a=-a;
x.b=-b;
return x;
}
Subscribe to:
Posts (Atom)