Beruflich Dokumente
Kultur Dokumente
* Rational.h
*
* Created on: Nov 16, 2016
*
* header file for Rational class
*/
#ifndef RATIONAL_H_
#define RATIONAL_H_
class Rational {
public:
Rational();
Rational ( int n = 0, int d = 1); //default case
int adding( const Rational& a); // a) adding two rational numbers
int subtracting(const Rational& s); // b) subtracting two rational numbers
int multiplying(const Rational& m); // c) multiplying two rational numbers
int dividing(const Rational& b); // d) dividing two rational numbers
void printRational(); // e) printing in form of a/b, where a is numerator
and b is denominator
void printFloat(); // f) printing in floating point format
private:
int numerator;
int denominator;
void reduce();
};
#endif /* RATIONAL_H_ */
/*
* Rational.cpp
*
* Created on: Nov 16, 2016
*
*/
#include <iostream>
#include <iomanip>
#include "Rational.h"
using namespace std;
Rational::Rational(int n, int d) {
numerator = d<0 ? -n:n; // to make sure that if a negative number is
entered, it will be in the numerator
denominator = d<0 ? -d:n;
reduce();
}
Rational Rational::adding ( const Rational& a) {
Rational r;
return r;
}
return r;
}
return r;
void Rational::printRational(){
if (denominator = 0)
cout<< "Error" <<endl;
else{
cout << numerator << "/" << denominator << endl;
}
}
void Rational::printFloat(){
if (denominator = 0)
cout << "Error" <<endl;
else
cout << numerator / denominator << "." << numerator%denominator <<endl;
//float(numerator) float(denominator) ????????
void Rational::reduce(){
int n = numerator < 0 ? -numerator : numerator;
int d = denominator;
int largest = n > d ? n : d;
int gcd = 0;
/*
* assign8.cpp
*
* Created on: Nov 16, 2016
*
*
* program to test Rational class
*
* ex. 9.15
*/
#include <iostream>
#include "Rational.h"
#include "Rational.cpp"
using namespace std;
int main(){
Rational x(-3/6), y(-25/40), z, w(9);
//adding
x.printRational();
cout<< " + ";
y.printRational();
z = x.adding(y);
cout<< " = ";
z.printRational();
cout << endl;
z.printRational();
cout<< " = ";
z.printFloat();
cout << endl;
// subtracting
x.printRational();
cout<< " - ";
y.printRational();
z = x.subtracting(y);
cout<< " = ";
z.printRational();
cout << endl;
z.printRational();
cout<< " = ";
z.printFloat();
cout << endl;
// multiplying
x.printRational();
cout<< " * ";
y.printRational();
z = x.multiplying(y);
cout<< " = ";
z.printRational();
cout << endl;
z.printRational();
cout<< " = ";
z.printFloat();
cout << endl;
//dividing
x.printRational();
cout<< " / ";
y.printRational();
z = x.adding(y);
cout<< " = ";
z.printRational();
cout << endl;
z.printRational();
cout<< " = ";
z.printFloat();
cout << endl;
}
class rational
{
private int nr, nu;
public rational() { nr = 0; nu = 1; }
public rational(int a, int b)
{ nr = a; nu = b; simplificare(); }