pdf - e-book - archive - github.com

2.7  Objets

2.7.1  Création d’une classe

Exercice 1 La classe Rationnel

Cré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.

Corrigé

2.7.2  Méthodes

Exercice 2 Opérations sur les Rationnels

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));
 }
}

Télécharger le fichier

Corrigé