1 / 7

Fraction class

Fraction class. class fraction { int num, den; fraction (int a, int b){ int common = gcd(a,b); num=a/common; den=b/common; } fraction (int a){ num=a; den=1; } fraction add(fraction f){ int num = this.num*f.den + f.num*this.den;

aleda
Download Presentation

Fraction class

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fraction class class fraction { int num, den; fraction (int a, int b){ int common = gcd(a,b); num=a/common; den=b/common; } fraction (int a){ num=a; den=1; } fraction add(fraction f){ int num = this.num*f.den + f.num*this.den; int den = this.den*f.den; return new fraction(num,den); } fraction subtract(fraction f){ int num = this.num*f.den - f.num*this.den; int den = this.den*f.den; return new fraction(num,den); } fraction multiply(fraction f){ int num = this.num*f.num; int den = this.den*f.den; return new fraction(num,den); }

  2. contd fraction divide(fraction f){ int num = this.num*f.den; int den = this.den*f.num; return new fraction(num,den); } fraction power(int n){ int num = intpower(this.num, n); int den = intpower(this.den, n); return new fraction(num,den); } boolean isEqual(fraction f){ return (this.num==f.num)&(this.den==f.den); } boolean isLess(fraction f){ return (this.num*f.den < f.num*this.den); } boolean isGreater(fraction f){ return (this.num*f.den > f.num*this.den); }

  3. contd void printfraction(){ System.out.println(this.num+"/"+this.den); } int intpower(int a, int n){ if (n==0) return 1; int result = 1; for (int i=1; i<=n; i++) result = result * a; return result; } int gcd(int m, int n){ if (m<0) m=-m; if (n<0) n=-n; while (m!=n){ if (m>n) m=m-n; else n=n-m; } return m; } }

  4. contd class fractiondemo{ public static void main(String args[]){ fraction f1 = new fraction(1,2); fraction f2 = new fraction(2,4); fraction f3 = new fraction(3); System.out.print("Fraction f1: ");f1.printfraction(); System.out.print("Fraction f2: ");f2.printfraction(); System.out.print("Fraction f3: ");f3.printfraction(); fraction f4 = f1.add(f3); f4.printfraction(); f4 = f1.subtract(f3); f4.printfraction(); f1.multiply(f3).printfraction(); f1.divide(f3).printfraction(); f1.power(3).printfraction(); System.out.println(f1.isLess(f3)); System.out.println(f1.isEqual(f2)); System.out.println(f1.isGreater(f3)); } }

  5. Access Control // Public vs private access. class MyClass { private int alpha; // private access public int beta; // public access int gamma; // default access (essentially public) /* Methods to access alpha. It is OK for a member of a class to access a private member of the same class. */ void setAlpha(int a) { alpha = a; } int getAlpha() { return alpha; } } class AccessDemo { public static void main(String args[]) { MyClass ob = new MyClass(); /* Access to alpha is allowed only through its accessor methods. */ ob.setAlpha(-99); System.out.println("ob.alpha is " + ob.getAlpha()); // You cannot access alpha like this: ob.alpha = 10; // Wrong! alpha is private! // These are OK because beta and gamma are public. ob.beta = 88; ob.gamma = 99; } }

  6. Access control example /* This class implements a "fail-soft" array which prevents runtime errors. */ class FailSoftArray { private int a[]; // reference to array private int errval; // value to return if get() fails public int length; // length is public /* Construct array given its size and the value to return if get() fails. */ public FailSoftArray(int size, int errv) { a = new int[size]; errval = errv; length = size; } // Return value at given index. public int get(int index) { if(ok(index)) return a[index]; return errval; } // Put a value at an index. Return false on failure. public boolean put(int index, int val) { if(ok(index)) { a[index] = val; return true; } return false; } // Return true if index is within bounds. private boolean ok(int index) { if(index >= 0 & index < length) return true; return false; } }

  7. contd. // Demonstrate the fail-soft array. class FSDemo { public static void main(String args[]) { FailSoftArray fs = new FailSoftArray(5, -1); int x; // show quiet failures System.out.println("Fail quietly."); for(int i=0; i < (fs.length * 2); i++) fs.put(i, i*10); for(int i=0; i < (fs.length * 2); i++) { x = fs.get(i); if(x != -1) System.out.print(x + " "); } System.out.println(""); // now, handle failures System.out.println("\nFail with error reports."); for(int i=0; i < (fs.length * 2); i++) if(!fs.put(i, i*10)) System.out.println("Index " + i + " out-of-bounds"); for(int i=0; i < (fs.length * 2); i++) { x = fs.get(i); if(x != -1) System.out.print(x + " "); else System.out.println("Index " + i + " out-of-bounds"); } } }

More Related