IN101 : Sujet du TD3 
  Groupe ESIEE, Denis BUREAU, février 2007.
 
Attention ! Le sujet peut être modifié jusqu'à la veille du TD.
 
 
1  Les objectifs
 
Savoir manipuler des expressions entières, réelles, et booléennes ;
 savoir écrire des méthodes avec des paramètres et les inclure dans
 une classe ; savoir appeler ces méthodes depuis une autre classe.
 
2  Apport de connaissances
 
-  Constantes, final, static, Math.PI,
          Math.abs(), Math.sqrt()
 
-  Notions abordées dans les 3 premiers cours : voir les plans de cours
          détaillés et les références vers le poly sur la page web de l'unité.
 
 
3  Évaluation d'expressions
 Quelle est la valeur des expressions Java suivantes (sans calculatrice !) ?
 
-  1 + 2 / 3
 
-  1.0 + 2 / 3
 
-  1 + 20E-1 / 3
 
-  28 % 5
 
-  Math.cos(Math.PI/4) == Math.sin(Math.PI/4)
 
 
4  Expressions booléennes
 Dans les expressions booléennes suivantes,
 i1 à i6 sont des int . 
 Récrire ces expressions sans utiliser aucun ! :
 
-  !( i1 != 0 )
 
-  !( i2 <= 0 )
 
-  !( i3 <  0 )
 
-  !( -9 <= i4 && i4 <= +9 )
 
-  !( i5%2==0 || i6%2==1 )
 
 
5  Méthodes à écrire
    Conseil valable pour chaque méthode demandée : 
  commencer par écrire la signature suivie d'un corps vide,
  puis réfléchir au contenu de ce dernier.
  
  
-  Écrire en Java une fonction sommeJusquA() à un paramètre
          entier n qui retourne la somme des n premiers entiers
          (sans faire de boucle !). 
          Exemple: 10 ® 55 
 
-  Écrire en Java une fonction max qui retourne
          le plus grand des 3 entiers passés en paramètres. 
          Contraintes : n'utiliser qu'un seul return
          et ne pas comparer les mêmes valeurs plusieurs fois. 
          Exemple :            paramètres :  5 , 3 , 5
          ® retourne : 5
 
 
6  Classes & méthodes à écrire
    Conseil valable pour chaque méthode demandée : 
  commencer par écrire la signature suivie d'un corps vide,
  puis réfléchir au contenu de ce dernier.
  
  
-  Écrire en Java une classe Pendule comportant 1 attribut réel
          l, correspondant à la longueur de ce pendule. 
          Prévoir un constructeur à 1 paramètre et une fonction
          periode() qui retourne la période du pendule selon la formule
          t = 2pÖ{[l/g]}    (définir g en constante). 
          Exemple: 2.4525 ® 3.141592653589793
 
-  Écrire en Java une classe de test Expressions ne comportant
          qu'une fonction booléenne test().
          En utilisant les valeurs données dans l'énoncé,
          cette fonction créera un objet de la classe Pendule,
          appellera sur cet objet la méthode periode(),
          comparera le résultat obtenu au résultat attendu (à 10-9 près),
          et enfin retournera le résultat de la comparaison.
 
-  Écrire en Java une classe Triangle comportant 3 attributs réels
          a, b, et c, correspondant aux longueurs des trois
          côtés de ce triangle. 
          Prévoir un constructeur à 3 paramètres, une fonction
          perimetre() qui retourne le périmètre du triangle, et une
          fonction surface() qui retourne la surface du triangle selon la
          formule s = Ö{p (p-a)(p-b)(p-c)}  où p est le
          demi-périmètre du triangle            (indice : une fonction appellera l'autre...) 
          Exemple: 1.5 2. 2.5 ® 6 et 1.5
 
-  Compléter la fonction test() précédente pour qu'elle
          teste aussi les méthodes de la classe Triangle
          en utilisant les valeurs données dans l'énoncé.
          Combiner le résultat de toutes les comparaisons pour déterminer
          la valeur booléenne finale à retourner.
 
-  Écrire en Java une classe Cercle comportant 3 attributs réels
          x, y, et diameter, correspondant respectivement aux
          coordonnées du centre et au diamètre de ce cercle. 
          Prévoir un constructeur à 3 paramètres, et une fonction
          estSur() à 2 paramètres (les coordonnées d'un point)
          qui retourne vrai si le point est sur le cercle, et faux sinon
          (attention aux problèmes de précision...). 
          Exemple: 0.0 0.0 2.0 0.707107 0.707107 ® true
          (à 10-6 près)
 
-  Compléter la fonction test() précédente pour qu'elle
          teste aussi les méthodes de la classe Cercle
          en utilisant les valeurs données dans l'énoncé.
          Combiner le résultat de toutes les comparaisons pour déterminer
          la valeur booléenne finale à retourner.
 
-  En travail personnel : 
          Il est conseillé de tester sur machine ces exercices avec BlueJ.
 
   
7  Problème
   
-  Écrire en java une fonction droites() déterminant si
      deux droites sont co-linéaires (c'est-à-dire confondues ou parallèles)
      ou orthogonales ou sécantes.
      La fonction prendra les 2 × 3 coefficients réels en paramètre et
      retournera une chaîne de 1 caractère "L", "O", ou "S".
      On supposera que les coefficients fournis définissent toujours
      une équation de droite.
      On supposera que les droites ne sont ni horizontales ni verticales.
 
-  On souhaite maintenant qu'au lieu de répondre "L", la fonction
      réponde "C" quand les droites sont confondues et "P"
      lorsqu'elles sont strictement parallèles.
 
-  On veut maintenant que la fonction marche aussi pour des droites
      horizontales ou verticales.
 
-  On veut enfin que la fonction réponde "?" lorsque les coefficients
      ne définissent pas 2 équations de droites.
 
     
File translated from
TEX
by 
TTH,
version 3.74.
On 07 Feb 2007, 18:45.