Specifica della classe Rational

La classe Rational ha un solo costruttore:

/*
   Precondizione: n rappresenta un numero intero 
         con eventuale segno negativo
       d rappresenta un numero naturale maggiore di 0 
   Postcondizione: crea il numero razionale con n al numeratore e d al denominatore
*/
public Rational (String n, String d)

I metodi pubblici sono i seguenti:

/*
   Postcondizione: restituisce una stringa che rappresenta il numeratore
       (numero intero in notazione decimale con eventuale segno negativo)
*/
public String numerator()
 
/*
   Postcondizione: restituisce una stringa che rappresenta il denominatore
       (numero naturale maggiore di 0 in notazione decimale)
*/
public String denominator()
 
/*
   Precondizione: r != null
   Postcondizione: restituisce la somma del ricevente e di r
*/
public Rational add(Rational r)
 
/*
   Precondizione: r != null
   Postcondizione: restituisce la differenza tra il ricevente ed r
*/
public Rational subtract(Rational r)
 
/*
   Precondizione: r != null
   Postcondizione: restituisce il prodotto del ricevente e di r
*/
public Rational multiply(Rational r)
 
/*
Precondizione: r != null AND r non e' 0
Postcondizione: restituisce il quoziente tra il ricevente ed r
*/
public Rational divide(Rational r)

 

 

Inoltre:

/*
   Postcondizione: restituisce una stringa che rappresenta il numero razionale
*/
public String toString()
 
/*
   Postcondizione: restituisce un double che rappresenta il numero razionale
*/
public double doubleValue()

 

 

 

 

 Infine definire un metodo che restituisce oggetti Rational nella cui rappresentazione interna numeratore e denominatore sono normalizzati.

Ovvero tali che: MCD(numeratore,denominatore) = 1.

A tal fine utilizzare il seguente algoritmo per calcolo del MCD (tale algoritmo si basa sulle seguenti proprieta' del MCD di due numeri interi positivi: