Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.sp.sp.temtem.bot;
- public class Racional {
- private int numerador;
- private int denominador;
- public Racional(int numerador, int denominador) {
- this.numerador = numerador;
- this.denominador = denominador;
- }
- public void somar(Racional r){
- r = normalizeRacional(r);
- this.numerador += r.numerador;
- simplificarNotacao();
- }
- public void subtrair(Racional r){
- r = normalizeRacional(r);
- this.numerador -= numerador;
- simplificarNotacao();
- }
- public void multiplicar(Racional r){
- this.numerador *= r.numerador;
- this.denominador *= r.denominador;
- simplificarNotacao();
- }
- public void dividir(Racional r){
- this.numerador /= r.numerador;
- this.denominador /= r.denominador;
- simplificarNotacao();
- }
- public double getValor(){
- return numerador/denominador;
- }
- public int getNumerador() {
- return numerador;
- }
- public void setNumerador(int numerador) {
- this.numerador = numerador;
- }
- public int getDenominador() {
- return denominador;
- }
- public void setDenominador(int denominador) {
- this.denominador = denominador;
- }
- //facilitar as somas;
- private Racional normalizeRacional(Racional r){
- int newDenominador = mmc(this.denominador, r.denominador);
- this.numerador = this.numerador * (newDenominador / this.denominador);
- this.denominador = newDenominador;
- r.numerador = r.numerador * (newDenominador / r.denominador);
- r.denominador = newDenominador;
- return r;
- }
- private void simplificarNotacao(){
- int divisor = mdc(this.numerador, this.denominador);
- this.numerador = this.numerador / divisor;
- this.denominador = this.denominador / divisor;
- }
- //Algoritmo do MDC
- private int mdc(int a, int b){
- while(b != 0){
- int r = a % b;
- a = b;
- b = r;
- }
- return a;
- }
- //Algoritmo do MMC
- private int mmc(int a, int b){
- return a * (b / mdc(a, b));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement