Une classe pour modéliser un segment de droite                        

Une classe pour modéliser un segment de droite

Il s'agit de modéliser un segment de droite dont les valeurs des abscisses des deux extrémités sont entières. Les opérations que l'on souhaite faire sur ce segment sont :

Écrire le code une classe publique Segment se trouvant dans un paquetage de nom segment comportant :

Vous définirez aussi dans le paquetage segment une classe TestSegment pour tester la classe Segment. Cette classe comportera une méthode main à laquelle vous devrez fournir trois paramètres entiers par la ligne de commande : abcisses des deux extrémités d'un segment et abscisse d'un point dont on voudra savoir s'il appartient ou non au segment.
Si le tableau de chaînes de caractères qui se trouve en argument de la méthode main s'appelle arg, ces trois arguments sont nommés arg[0], arg[1] et arg[2] et seront convertis en int par la méthode Integer.parseInt(String s).
Avant d'exécuter la méthode main, dans la fenêtre obtenue par Run configurations, cliquez sur l'onglet Arguments et inscrire les valeurs des trois paramètres.
On utilisera nécessairement la méthode toString lorsqu'on voudra écrire le segment sur la sortie standard (l'écran).

Exemple d'exécution souhaitée pour la méthode main

Pour la commande :
    java segment.TestSegment 44 -35 8, c'est-à-dire pour les arguments -35 44 8, la sortie du test pourrait être :
    Longueur du segment [-35, 44] : 79
    8 appartient au segment [-35, 44]
Pour la commande :
    java TestSegment 44 -35 100, c'est-à-dire pour les arguments -35 44 100, la sortie du test pourrait être : :
    Longueur du segment [-35, 44] : 79
    Longueur du segment [-35, 44] : 79
    100 n'appartient pas au segment [-35, 44]

Indications

  1. Pour transformer une chaîne de caractères s en un int que l'on affecte à une variable entière n, on peut écrire :
    n = Integer.parseInt(s);.
    La méthode parseInt est une méthode statique de la classe java.lang.Integer.
  2. Si la méthode toString est définie comme indiqué ci-dessus, si on a défini :
    Segment e = new Segment(1, 3));
    l'instruction :
    System.out.println(e);
    donnera sur la sortie standard : segment [1, 3]
    et l'instruction :
    System.out.println("le " + e);
    donnera sur la sortie standard : le segment [1, 3]
  3. Le "et logique" sécrit && en Java, le "ou logique" s'écrit ||.

Corrigés

Segment.java
TestSegment.java

Indications sur l'instruction conditionelle


Une instruction conditionelle s'écrit :
if (condition) {
    instruction1;
    instruction2;
    ...
}
else {
    autreInstruction1;
    autreInstruction2;
}
Les parenthèses autour de la condition sont obligatoires.

Il peut ne pas y avoir de else, on peut écrire :

if (condition) {
    instruction1;
    instruction2;
    ...
}
puis la suite du code sans commencer par le mot else.
Si une seule instruction est à faire dans le bloc du if ou dans le bloc du else, les accolades sont facultatives. On peut écrire :
if (condition) instruction1; ...

On peut composer en écrivant :

if (condition) //bloc d'instructions
else if (autreCondition) //bloc d'instructions
else //bloc d'instructions

© Irène Charon, Télécom ParisTech 2011