adfly.468x60.5 Dulang Dollar Melalui ShortURL adf.ly | short URL

25 April 2010

Tipe Data Pecahan C++
Share

Berikut ini adalah coding untuk file header c++ untuk tipe data Pecahan. Silahkan dicopy dan disimpan dengan nama file "pecahan.h". Selamat mencoba semoga dapat menjadi referensi bagi anda. Mohon saran dan pemikirannya untuk mengembangkan coding ini.

Coding:



struct Pecahan{
int pembilang,penyebut; //attribut
Pecahan(int b=1,int s=1){ //constructor
pembilang=b;
penyebut=s;
}
Pecahan operator +(Pecahan p){
int b,s;
b=(pembilang*p.penyebut)+(penyebut*p.pembilang);
s=penyebut*p.penyebut;
return Pecahan(b,s);
}
Pecahan operator -(Pecahan p){
int b,s;
b=(pembilang*p.penyebut)-(penyebut*p.pembilang);
s=penyebut*p.penyebut;
return Pecahan(b,s);
}
Pecahan operator *(Pecahan p){
int b,s;
b=pembilang*p.pembilang;
s=penyebut*p.penyebut;
return Pecahan(b,s);
}
Pecahan operator /(Pecahan p){
int b,s;
b=pembilang*p.penyebut;
s=penyebut*p.pembilang;
return Pecahan(b,s);
}

Pecahan operator *(int i){
return Pecahan(pembilang*i,penyebut);
}
Pecahan operator /(int i){
return Pecahan(pembilang,penyebut*i);
}
Pecahan operator-(int i){
int b;
b=(pembilang-(i*penyebut));
return Pecahan(b,penyebut);
}
Pecahan operator+(int i){
int b;
b=(pembilang+(i*penyebut));
return Pecahan(b,penyebut);
}




int operator >(Pecahan p){
return float(float(pembilang)/float(penyebut))>float(float(p.pembilang)/float(p.penyebut));
}
int operator <(Pecahan p){
return float(float(pembilang)/float(penyebut))<float(float(p.pembilang)/float(p.penyebut));
}
int operator ==(Pecahan p){
return float(float(pembilang)/float(penyebut))==float(float(p.pembilang)/float(p.penyebut));
}
int operator >=(Pecahan p){
return float(float(pembilang)/float(penyebut))>=float(float(p.pembilang)/float(p.penyebut));
}
int operator <=(Pecahan p){
return float(float(pembilang)/float(penyebut))<=float(float(p.pembilang)/float(p.penyebut));
}
int operator >(float x){
return float(float(pembilang)/float(penyebut))>x;
}
int operator <(float x){
return float(float(pembilang)/float(penyebut))<x;
}
int operator ==(float x){
return float(float(pembilang)/float(penyebut))==x;
}
int operator >=(float x){
return float(float(pembilang)/float(penyebut))>=x;
}
int operator <=(float x){
return float(float(pembilang)/float(penyebut))<=x;
}

friend ostream& operator <<(ostream& os,Pecahan& p) {
int c,s;
if (p.pembilang>=p.penyebut){
c=p.pembilang/p.penyebut;
s=p.pembilang%p.penyebut;
if(!s){
os<<c;
}else{
if(!(p.penyebut%s)){
os<<c<<" 1/"<<(p.penyebut/s);
}else{
if(!(p.pembilang%2) && !(p.penyebut%2)){
os<<c<<" "<<(p.pembilang/2)<<"/"<<(p.penyebut/2);
}else{
if(!(p.pembilang%3) && !(p.penyebut%3)){
os<<c<<" "<<(p.pembilang/3)<<"/"<<(p.penyebut/3);
}else{
os<<c<<" "<<p.pembilang<<"/"<<p.penyebut;
}
}
}
}
} else if(!(p.penyebut%p.pembilang)){
os<<"1/"<<(p.penyebut/p.pembilang);
}else{
if(!(p.pembilang%2) && !(p.penyebut%2)){
os<<(p.pembilang/2)<<"/"<<(p.penyebut/2);
}else{
if(!(p.pembilang%3) && !(p.penyebut%3)){
os<<(p.pembilang/3)<<"/"<<(p.penyebut/3);
}else{
os<<p.pembilang<<"/"<<p.penyebut;
}
}
}
return os;
}

friend istream& operator>>(istream& is,Pecahan& p){
char c;
is>>p.pembilang>>c>>p.penyebut;
return is;
}


void Tampil(){
int c,s;
if (pembilang>penyebut){
c=pembilang/penyebut;
s=pembilang%penyebut;
if (penyebut%s){}
cout<<c<<" "<<s<<"/"<<penyebut<<endl;
}
else cout<<pembilang<<"/"<<penyebut<<endl;
}


Contoh Penggunaan:

Coding:

#include <iostream.h>
#include "pecahan.h"
int main(){
Pecahan P,Q(2,3);
cin>>P;
cout<<P<<endl;
P=Q/2;
cout<<Q<<" / 2 = "<<P<<endl;
return 0;
}

Cetak

Artikel Lain :


Berlangganan

Berlangganan RSS Feed via Email:


Artikel Populer

Blog Archive

Pengikut

blog-indonesia.com



Recomended Download


Add to Your Blog