/* * Created by IntelliJ IDEA. * User: Iris Attensam * Matrikelnummer: 0126732 * Beispielnr.: 3036 * Date: 26.12.2002 * Time: 18:55:52 * To change template for new class use * Code Style | Class Templates options (Tools | IDE Options). */ class Fraction { int den, num; //Fraction numerator, denominator Fraction(int n) { //Constructor who converts an integer to a Fraction num = n; den = 1; } Fraction(int n, int d) { // constructor who creates a Fraction num = n; den = d; reduce(); } Fraction add(Fraction f) { //add together two fraction Fraction ff = new Fraction(num * f.den + den * f.num, den * f.den); return ff; } Fraction mult(Fraction f) { // multiplies two fraction Fraction ff = new Fraction(num * f.num, den * f.den); return ff; } Fraction div(Fraction f) { //dividies two fraction Fraction ff = new Fraction(num * f.den, den * f.num); return ff; } Fraction sub(Fraction f) { // subtracts two fraction Fraction ff = new Fraction(num * f.den - f.num * den, den * f.den); return ff; } void print() { if (num == 0) eprog.EprogIO.print(0); else { eprog.EprogIO.print(num); eprog.EprogIO.print("/"); eprog.EprogIO.print(den); } } int gdc(int n, int d) { // returns the greatest common divisor int rem = n % d; while (rem != 0) { n = d; d = rem; rem = n % d; } return d; } void reduce() { // reduce the Fraction via gdc int x = gdc(num, den); num /= x; den /= x; if (den < 0) { den *= -1; num *= -1; } } boolean less(Fraction f) { // true, if fraction less than f return (num * f.den < f.num * den); } boolean greater(Fraction f) { // true, if fraction greater than f return (num * f.den > f.num * den); } boolean lesseq(Fraction f) { // true, if fraction less than or equal f return (num * f.den <= f.num * den); } boolean greatereq(Fraction f) { // true, if fraction greater than or equal f return (num * f.den >= f.num * den); } boolean equalzero() { //true, if numerator unequally 0 return (num == 0); } }