Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!   (85,161 visits to this link)

    2. News

    1. GTA Online

      1. Find Lobbies & Players
      2. Guides & Strategies
      3. Vehicles
      4. Content Creator
      5. Help & Support
    2. Crews

      1. Events
      2. Recruitment
    1. Grand Theft Auto Series

    2. GTA Next

    3. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    4. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    9. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    12. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption 2

    2. Red Dead Redemption

    3. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Forum Support

    2. Site Suggestions

Sign in to follow this  
metacortex

Simplifying a Fraction

Recommended Posts

metacortex

Hey everyone,

 

I am currently writing a small finger exercise in C# dealing with fractions. The class for the fractions is almost done, only the method of simplifying a fraction using Euclids algorithm for finding the GCD is kind of messy sad.gif

 

 

 

 

       public Fraction Simplify()       {           int divisor = this.GCD();           if (divisor != 0)           {               Fraction tmpFrac = new Fraction((this.Numerator / divisor), (this.Denominator / divisor));               return tmpFrac;           }           else           {               Fraction dummyFraction = new Fraction(1, 1);               return dummyFraction;           }       }

 

 

       public int GCD()       {           int tmpNumerator = this.Numerator;           int tmpDenominator = this.Denominator;           if (tmpNumerator == 0 || tmpNumerator == tmpDenominator)           {               return tmpDenominator;           }           else           {               while ((tmpDenominator != 0) && (tmpNumerator != 0))               {                   if (tmpNumerator > tmpDenominator)                   {                       tmpNumerator = tmpNumerator % tmpDenominator;                   }                   else                   {                       tmpDenominator = tmpDenominator % tmpNumerator;                   }               }           }           return tmpNumerator;       }

 

 

 

and these are the members:

 

 

        //members       #region Members              //private       private int _numerator;       private int _denominator;       private string _absoluteValue;       //public        public int Numerator       {           get           {               return this._numerator;           }           private set           {               this._numerator = value;           }       }       public int Denominator       {           get           {               return this._denominator;           }           private set           {               this._denominator = value;           }       }       public string AbsoluteValue       {           get           {               return this._absoluteValue;           }           private set           {               this._absoluteValue = value;           }       }       #endregion Members

 

This method is based on an improved algorithm PatrickW posted in this forum a long time ago.

 

 

I don't really see any mistake in my code, nor do I recognise any mathematical issues :S

 

Help is very much appreciated. smile.gif

Share this post


Link to post
Share on other sites
K^2

Your GCD algorithm returns tmpNumerator regardless of whether it was tmpDenominator or tmpNumerator that went to zero. So it will have 50% chance of returning 0 for GCD when it really isn't.

Share this post


Link to post
Share on other sites
metacortex

f*ck.

 

Please excuse my explicit language but that was just plain stupid blush.gif .

 

Here is the new method, just in case anyone is looking for something like this:

 

 

        public int GCD()       {           int gcd = 0;           int tmpNumerator = this.Numerator;           int tmpDenominator = this.Denominator;           if (tmpNumerator == 0 || tmpNumerator == tmpDenominator)           {               return tmpDenominator;           }           else           {               while((tmpDenominator != 0) && (tmpNumerator != 0))               {                   if(tmpNumerator > tmpDenominator)                 {                       tmpNumerator = tmpNumerator % tmpDenominator;	                 }                 else                 {                       tmpDenominator = tmpDenominator % tmpNumerator;                 }               }               if (tmpNumerator == 0)               {                  gcd = tmpDenominator;               }               else if (tmpDenominator == 0)               {                   gcd = tmpNumerator;               }           }           return gcd;       }

 

 

Thank you a lot K^2, have some cookies smile.gif

 

cookie.gifcookie.gifcookie.gif

 

cheers

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.