TP 3 de Programmation 2e Année Informatique 2004-2005 : java

Vous téléchargerez les sources pour les exercices 2 et 3. Utilisez eclipse !

Exercice 1

On rappelle la fonction pgcd en C :

int pgcd(int a, int b)

  if (b == 0)
      return a;
  else
    return pgcd(b, a % b); // "%" est l'opérateur "modulo".

En vous inspirant des bibliothèques mathématiques de Java, créez une classe qui contiendra une méthode permettant de calculer le pgcd de deux entiers. Une telle classe est dite utilitaire.

Exercice 2

Soit la classe Rationnel ().

  1. compléter la classe ;
  2. soit le code suivant :
    Rationnel r1= new Rationnel(3,2);
        Rationnel r2= new Rationnel();
        r2.p= 6; r2.q= 4;
        System.out.println(""+ r1 + " et " + r2);
        if (r1.estEgalA(r2))
          System.out.println(" sont égaux");
        else
          System.out.println(" sont différents");
      
    
    Que se passe-t-il si on l'exécute ? pourquoi ? corrigez la classe Rationnel pour éviter ce genre d'incidents.

Exercice 3

Une bibliothèque prête des livres, des CD audio, et des logiciels.

Tous peuvent être emprunté par un emprunteur (au maximum), qui a un nom.

Une bibliothèque sera considérée comme la liste des articles de prêt qu'elle contient, un article étant désigné par un numéro entier (son numéro d'inventaire).

On implémentera toutes les classes nécessaires, en dotant la classe Bibliotheque des methodes :

void emprunter (int numInv, String emprunteur)
marque l'article de numéro d'inventaire numInv comme emprunté par emprunteur.
boolean estEmprunte (int numInv)
renvoie vrai si numInv est emprunté, faux sinon.
String getEmprunteur (int numInv)
récupère l'emprunteur de numInv.
String getEmpruntsAsString ()
renvoie la liste des articles empruntés sous forme de chaîne.

Question 3.1

Faire le schéma des classes à utiliser. Rester simple.

On ne fera pas d'interface utilisateur, en se contentant de tester les classes dans un main() adéquat. On pourra doter les classes d'une méthode toString() qui permettra de renvoyer une représentation lisible de leurs objets sous forme de chaîne de caractères.

Question 3.2

Implémentez votre solution. Vous pouvez trouver des éléments utiles dans /home/InfoProfs/srosmord/TP1.

Question 3.3

Modifiez la classe bibliothèque en utilisant un Vector au lieu d'un tableau.

Question 3.4

Profitez-en pour ajouter la méthode :
boolean supprimer (int numInv)
supprime l'article de numéro d'inventaire numInv.


Serge ROSMORDUC