package oracle.forms.jvr;

public class CalculatorOperations  
{
  protected double numeroA;
  protected double numeroB;
  protected double resultado;
  protected char operacion;

  public CalculatorOperations() 
  {
      this.numeroA = 0;
      this.numeroB = 0;
      this.resultado = 0;
      this.operacion = ' ';
  }

    public void setNumeroA(double n)
    {
        this.numeroA = n;
    }

    public void setNumeroB(double n)
    {
        this.numeroB = n;
    }

    public void setResultado(double n)
    {
        this.resultado = n;
    }

    public void setOperacion(char o)
    {
        this.operacion = o;
    }

    public double getNumeroA()
    {
        return this.numeroA;
    }

    public double getNumeroB()
    {
        return this.numeroB;
    }

    public double getResultado()
    {
        return this.resultado;
    }

    public char getOperacion()
    {
        return this.operacion;
    }

    public void suma()
    {
        this.resultado = this.numeroA + this.numeroB;
    }
    
    public void resta()
    {
        this.resultado = this.numeroA - this.numeroB;
    }
    
    public void multiplicacion()
    {
        this.resultado = this.numeroA * this.numeroB;
    }
    
    public void division()
    {
        this.resultado = this.numeroA / this.numeroB;
    }

    public void sqrt()
    {
        this.resultado = Math.sqrt(this.numeroA) ;
    }

    public void fraccion()
    {
        this.resultado = (1/this.numeroA) ;
    }

    public void porcentaje()
    {
        this.resultado = (this.numeroA*this.numeroB)/100 ;
    }

    public void signo()
    {
        this.resultado = (this.numeroA*(-1)) ;
    }

    public void redondear()
    {
        this.resultado = Math.round(this.numeroA);
    }

    public void seno()
    {
        this.resultado = Math.sin(this.numeroA) ;
    }

    public void arcoseno()
    {
        this.resultado = Math.asin(this.numeroA) ;
    }
    
    public void coseno()
    {
        this.resultado = Math.cos(this.numeroA) ;
    }

    public void arcocoseno()
    {
        this.resultado = Math.acos(this.numeroA) ;
    }
    
    public void tangente()
    {
        this.resultado = Math.tan(this.numeroA) ;
    }

    public void arcotangente()
    {
        this.resultado = Math.atan(this.numeroA) ;
    }
    
    public void PI()
    {
        this.resultado = Math.PI;
    }

    public void E()
    {
        this.resultado = Math.E;
    }
    
    public void exponencial()
    {
        this.resultado = Math.pow(this.numeroA,this.numeroB);
    }

    public void log()
    {
        this.resultado = Math.log(this.numeroA);
    }

    public void alCuadrado()
    {
        this.resultado = this.numeroA * this.numeroA;
    }
    
    public void alCubo()
    {
        this.resultado = this.numeroA * this.numeroA * this.numeroA;
    }
    
    public void factorial()
    {
       if (this.numeroA < 1)
       {
           this.resultado = 0;
       }
       else
       {
           redondear();
           for (int i = (int)(this.numeroA -1); i > 1; --i)
           this.numeroA *= i;
           System.out.println (this.numeroA);
           this.resultado = (this.numeroA);
      }
    }
      
    public void absoluto()
    {    
       this.resultado = Math.abs(this.numeroA);
    }
     
    public void redondearArriba()
    {    
       this.resultado = Math.ceil(this.numeroA);
    }    

    public void redondearAbajo()
    {    
       this.resultado = Math.floor(this.numeroA);
    }   
    
    public void establecerNumeroA(String a)
    {
        double n = Double.parseDouble(a);
        this.setNumeroA(n);
    }
    public void establecerNumeroB(String b)
    {
        double n = Double.parseDouble(b);
        this.setNumeroB(n);
    }
    
    public String retornarNumeroA()
    {
        String cad="";
        cad = String.valueOf(numeroA);
        return cad;   
    }
    
    public String retornarNumeroB()
    {
        String cad="";
        cad = String.valueOf(numeroB);
        return cad;
    }
    
    public String retornarResultado()
    {
        String cad="";
        cad = String.valueOf(resultado);
        return cad;
    }
    }