RationnelCréez une classe
Rationnel contenant un numérateur et un
dénominateur tous deux de type entier. Instanciez deux rationnels a
et b et initialisez-les aux valeurs respectives
1/2 et 4/3. Affichez
ensuite les valeurs de ces champs.
Complétez le fichier suivant :
package classes;
public class RationnelVide
{
public int num, den;
/**
* Retourne chaine de la forme num/den
*/
public String toString()
{
return null;
}
static RationnelVide cree(int num, int den)
{
return null;
}
public RationnelVide copie()
{
return null;
}
/**
* Retourne le rationnel qu'il faut additioner
* à this pour obtenir 0.
*/
public RationnelVide oppose()
{
return null;
}
/**
* Retourne le rationnel par lequel il faut multiplier
* this pour obtenir 1.
*/
public RationnelVide inverse()
{
return null;
}
/**
* Retourne le plus grand commun diviseur de a et b
* Utilisez les propriétés suivantes :
* pgcd(a, 0) = a
* pgcd(a, b) = pgcd(b, a modulo b)
*
* Modifier ensuite la méthode "cree(int, int)"
* pour que les rationnels soient toujours créés
* sous forme irréductible.
*/
static int pgcd(int a, int b)
{
return 0;
}
/**
* Retourne vrai ssi le rationnel est positif.
*/
public boolean estPositif()
{
return true;
}
public RationnelVide plus(RationnelVide autre)
{
return null;
}
public RationnelVide moins(RationnelVide autre)
{
return null;
}
public RationnelVide multiplie(RationnelVide autre)
{
return null;
}
public RationnelVide divise(RationnelVide autre)
{
return null;
}
/**
* Retourne vrai ssi this - autre vaut zéro.
*/
public boolean egale(RationnelVide autre)
{
return true;
}
/**
* Retourne :
* 1 si this > autre
* 0 si this est égal à autre
* -1 si this < autre
*/
public int compareTo(RationnelVide autre)
{
return 0;
}
public static void main(String[] args)
{
RationnelVide a, b;
a = new RationnelVide();
b = new RationnelVide();
a.num = 1;
a.den = 2;
b.num = 4;
b.den = 3;
System.out.println("a = 1/2 = " + a);
System.out.println("b = 4/3 = " + b);
System.out.println("compareTo(" + a + ", " + b + ") = -1 = "
+ a.compareTo(b));
System.out.println("1/2 = " + a.copie());
System.out.println("-1/2 = " + a.oppose());
System.out.println("11/6 = " + a.plus(b));
System.out.println("2/3 = " + a.multiplie(b));
System.out.println("3/8 = " + a.divise(b));
}
}