Vous êtes sur la page 1sur 5

Exercices de Révision

Exercice 1 (Exception)
Ecrire une classe « Equation » qui représente une équation de premier degré, définie par ces
deux coefficients. La classe admet une méthode «..resoudre(…) », qui retourne la
solution « X » de l’équation. Les cas particuliers et les erreurs sont gérés par des exceptions.
Aucun affichage n’est fait au niveau de la méthode.
Ecrire le programme qui teste cette classe et qui :
- Admet deux paramètres représentant les coefficients d’une équation.
- Affiche la solution X de cette équation.
Exemple d’exécution :
Paramètres donnés : 5 10
5X+10=0 ==> X=-2.0
Paramètres donnés : 0 0
Deux coefficients nulles, la solution est tout IR
Paramètres donnés : 0 4
Erreur : Impossible

Exercice 2 (Exception)
1. Pour la classe « Jeux » définie comme suit : (1 pt)
class Jeux {
public static int nombre;
public int nb;
public Jeux(int i) {
nombre++;
nb=nombre+i;}}

Qu’affichera le code suivant ?


Jeux j1=new Jeux(1);
Jeux j2=new Jeux(0);
Jeux j= j2;
System.out.println(j.nombre + “ et “ + j.nb);

1
2. Soit le code java suivant :
import java.util.Scanner;
public class TableauSansExce {
public static void main(String[] args)
{ int t[]=new int[3];
int i=0;
String entree,reponse;
Scanner s=new Scanner(System.in);
do
{System.out.println("Donner un nombre entier :");
entree=s.next();
t[i]=Integer.parseInt(entree);
System.out.println("Taper OK pour continuer");
reponse=s.next();
i++;
}while(reponse.equals("OK"));
for(i=0;i<t.length;i++)
{System.out.print("t["+(i+1)+"]="+t[i]+"\t");}}}
Etant donné la hiérarchie des sous classes de la classe Exception :
o class java.lang.Exception
o class java.lang.ClassNotFoundException
o class java.lang.IOException
o class java.lang.RuntimeException
o class java.lang.IllegalArgumentException
o class java.lang. NumberFormatException
o class java.lang.IndexOutOfBoundsException
o class
java.lang.ArrayIndexOutOfBoundsExceptio
n
o class java.lang.NegativeArraySizeException
2.1. Quels sont les résultats fournis par le programme, ci-dessus, dans les cas suivants.
S’il y a eu des exceptions, il faut préciser leurs classes. (2,75 pts)

Cas n° 1 Cas n°2 Cas n° 3


Donner un nombre entier : Donner un nombre entier : Donner un nombre entier :
14 17 14
Taper OK pour continuer Taper OK pour continuer Taper OK pour continuer
OK OK OK
Donner un nombre entier : Donner un nombre entier : Donner un nombre entier :
18 19 10
Taper OK pour continuer Taper OK pour continuer Taper OK pour continuer
OK ok OK

2
Donner un nombre entier : Donner un nombre entier :
5 8
Taper OK pour continuer Taper OK pour continuer
OK OK
Donner un nombre entier : Donner un nombre entier :
20 K01

2.2. En utilisant les délimiteurs de blocs try et catch, ajouter le code nécessaire pour prévoir
une gestion des exceptions relative aux exceptions levées dans la question 2.1. Le
traitement des exceptions est réduit à l’affichage du message contenu dans l’objet
exception. (3,25 pts)

Exercice 3 (Polymorphisme)
Voici ci-dessous une classe de test et l'affichage que des classes (à créer) devront fournir. La
méthode getType de ces classes devra fournir une description de l'instance, en incluant les
descriptions de toutes les classes mères.
La classe de test :
public class TestAnimal {
public static void main(String[] args) {
Animal[] animaux = new Animal[5];
animaux[0] = new Animal("Truc");
animaux[1] = new Animal();
animaux[2] = new Chien("Médor");
animaux[3] = new Homme();
animaux[4] = new Homme("Robert");
for (int i = 0; i < animaux.length; i++) {
System.out.println(animaux[i].getType());
}
}
}
L'affichage :
Je suis un animal de nom Truc.
Je suis un animal.
Je suis un animal de nom Médor. Je suis un mamifère. Je suis un chien.

3
Je suis un animal. Je suis un mamifère. Je suis un homme.
Je suis un animal de nom Robert. Je suis un mamifère. Je suis un homme.

Exercice 4 (Interface)
Une agence de location de voitures offre à ses clients la possibilité de choisir la voiture louée en
fonction de différents critères. Les voitures sont définies par un matricule, une marque, un modèle et
un prix de location. On note que, les trois premiers attributs sont des chaînes de caractères, le
dernier est un entier et ils sont tous privés.
1. Ecrire le code, en java, de la classe Voiture réduite aux attributs, ci-dessus, à un constructeur qui
initialise les attributs par des valeurs passées en paramètres ainsi qu’aux deux méthodes
getMarque() et getPrix(). (2.5 pts)

Il est possible de sélectionner dans la liste des voitures, à louer, une voiture satisfaisant un critère
donné. On définit donc l’interface Critère ayant la méthode suivante :

Correspond (Object o) : retourne true si et seulement si l’objet o est conforme à un critère


donné. On rappelle que la classe Object est la classe mère de toutes
les classes java.

2. Définir cette interface. (1 pt)


3. Donner le code de la classe CritereMarque qui implémente l’interface Critère. Cette classe
possède un attribut privé « marqueDemandée », un constructeur qui initialise l’attribut
« marqueDemandée » par une valeur passée en paramètre. Ainsi qu’une implémentation de la
méthode Correspond qui doit vérifier qu’un objet de la classe Voiture possède la même marque
que le critère « marqueDemandée ». (2.75 pts)
4. Donner le code de la classe CriterePrix qui implémente l’interface Critère. Cette classe possède un
attribut privé « prixDemandé », un constructeur qui initialise l’attribut « prixDemandé ». Ainsi
qu’une implémentation de la méthode Correspond qui doit vérifier qu’un objet de la classe
Voiture a un prix de location inférieur ou égal au « prixDemandé ». (2.75 pts)

5. Créer une classe Test réduite à une fonction main dans laquelle on :
 Crée un tableau de 3 voitures suivantes : (1.25 pts)
("123 TUNIS 2345","BMW","mod1",122);
("110 TUNIS 1234","Peugeot","mod2",120);
("135 TUNIS 1323","BMW","mod3",120);

4
 Crée un critère marque représentant la marque « BMW » (0.75 pt)
 Crée un critère prix de 120. (0.75 pt)
 Affiche le nombre de voitures qui vérifient les deux critères suivants : (1,25 pt)
- La marque BMW.
- Le prix de location inférieur ou égal à 120.

Vous aimerez peut-être aussi