Vous êtes sur la page 1sur 2

POO & JAVA 4ème Année G.

Info
Année 2013-2014
TP N° 2
Prof. R. Ezzahir

Exercice 1 : Infinity, NaN et this

1. Quels résultats fournit ce programme ?


public class Excep {
public static void main (String args[]){
double x1 = 1e200, x2 = 1e210 ;
double y, z ;
y = x1*x2 ;
System.out.println ("valeur de y " + y) ;
x2 = x1 ;
z = y/(x2-x1) ;
System.out.println (y + " divise par " + (x2-x1) + " = " + z) ;
y = 15 ;
z = y/(x2-x1) ;
System.out.println (y + " divise par " + (x2-x1) + " = " + z) ;
z = (x2-x1)/(x2-x1) ;
System.out.println ((x2-x1) + " divise par " + (x2-x1) + " = " + z) ;
System.out.println (z + "+1 = " + (z+1)) ;
x1 = Float.POSITIVE_INFINITY ;
x2 = Double.NEGATIVE_INFINITY ;
z = x1/x2 ;
System.out.println (x1 + "/" + x2 + " = " + z) ;
}
}
2. Indiquer l’erreur dans le segment de code suivant :

public class GrillePain {


private int annee;
private int nbTranches;
private GrillePain(int a, int nbTranches) {
annee = a;
nbTranches = nbTranches;
}
}

Exercice 2: POO (Calcul de surfaces)

1. Ecrire 4 classes: Cercle, Rectangle, Terrain et Main.


 Les classes Cercle et Rectangle définissent des objets de type cercle rectangle,
dotées d’une méthode calculerSurface.
 la classe Terrain définit des objets constitués des cercles et rectangles et permet de
calculer leur surface totale.
 La classe Main contient la méthode main pour démarrer le programme.
 On souhait calculer la surface d'un terrain composé de N rectangles et de M cercles. Vous
pouvez soit entrer les données (N, M, largeurs, hauteurs et rayons) directement dans le
code, soit demander à l'utilisateur de les entrer au clavier. Par exemple, vous aurez une
surface totale de 398.82 si vous avez 3 rectangles de largeur/hauteur 1.0/2.0, 3.0/4.0 et
5.0/6.0 et si 2 cercles sont de rayon 7.0 et 8.0.
2. Copier le package ex2_1 dans ex2_2 puis modifier votre programme afin d’utiliser le
polymorphisme. Penser à écrire une interface (Surface) qui déclare la méthode
calculerSurface.

Exercice 3: classe abstraite : Une classe qui n'aura pas d'objet

1. Copier le package ex2_2 vers ex3, ensuite écrire le code de la classe FormeGeometrique ci-
dessous. Est-ce que Cette classe est abstraite ? Est-elle instanciable ?
2. Modifier les deux classes Cercle et Rectangle pour hériter de la classe FormeGeometrique.
3. Modifier la classe Main afin d’afficher les positions, la surface totale et le périmètre maximum
du terrain.
abstract public class FormeGeometrique implements Surface {
FormeGeometrique(double x, double y){
posX=x;
posY=y;
}
double posX, posY;
void deplacerVers(double x, double y) {
posX=x;
posY=y;
}
void afficherPosition() {
System.out.println("position : (" +posX+","+posY+")");
}
abstract double perimetre() ;
}

Exercice 4: abstract et final (abstract, final, Niveau 1)

Le programme AbstractFinal ci-dessous implémente une petite hiérarchie de 4 classes (A, B, C et D). Il
y a 2 erreurs dans la méthode main et 1 erreur dans la classe D. Toutes les erreurs sont dûmes à une
utilisation erronée des modificateurs abstract et final. Expliquez ces erreurs.

class AbstractFinal { class C extends A {


public static void main(String[] args) { final double c = 1;
A x = new A(); }
B y = new B();
C z = new C(); abstract class D extends A {
y.b = 2; double d;
z.c = 3;
} int operation(int a) {
} return (a * 2);
abstract class A { }
int a; abstract int calcul(int b) {
abstract int ma(); }
} abstract int machin();
class B extends A { }
int b;
}

Exercice 5: Arguments de la méthode main (Arguments de la méthode main)

Ecrivez un programme MonNom qui permet à l'utilisateur d'entrer autant de valeurs qu'il veut sur la
ligne de commande lors du démarrage du programme. Le programme affichera le nombre de valeurs
indiquées. Si le nom "Fifi" figure parmi les valeurs entrées, le programme affiche "Oui, c'est bien
moi", sinon il affiche "Vous ne me connaissez pas?".

Exemple d'exécution:

> java MonNom


Vous avez entré 0 valeurs
Vous ne me connaissez pas ?
> java MonNom abc 123 Gaston tjolahopp
Vous avez entré 4 valeurs
Vous ne me connaissez pas ?
> java MonNom 1 2 3 4 5 6 7 Fifi 8 9 10 11
Vous avez entré 12 valeurs
Oui, c'est bien moi !

Vous aimerez peut-être aussi