IN101 : Sujet du TD5.1
Groupe ESIEE, Denis BUREAU, novembre 2005.
Attention ! Le sujet peut être modifié jusqu'à la veille du TD.

1  Les objectifs

Savoir utiliser les structures alternatives simples et multiples et savoir manipuler les expressions booléennes.

2  Notions à mettre en oeuvre

3  Références dans le "Petit mémento de syntaxe Java"

Paragraphes 11.3.1.1 et 11.3.1.2 .

4  Expressions booléennes

Dans les expressions booléennes suivantes, i1, i2, i3, i4, et i5 sont des int, et c est un char .
Récrire ces expressions sans utiliser aucun ! :
  1. !( i1 != 0 )
  2. !( i2 <= 0 )
  3. !( i3 <  0 )
  4. !( '0' <= c && c <= '9' )
  5. !( i4%2==0 || i5%2==1 )

5  Traduire en Java

Methode d'interpretation d'un caractere
  Soit c son parametre d'entree de type caractere
  Si c est une lettre minuscule
    Alors afficher "minuscule"
    Sinon Si c est une lette majuscule
            Alors afficher "MAJUSCULE"
            Sinon Si c est un chiffre
                    Alors afficher "chiffre"
                    Sinon afficher "divers"
                  FinSi
          FinSi
  FinSi
FinMethode
  

6  Exercices

  1. Écrire en Java une méthode max qui retourne le plus grand des 3 entiers passés en paramètres.
    Contrainte : n'utiliser qu'un seul return
    Compter le nombre de comparaisons écrites / exécutées, le nombre de if ou else écrits / exécutés, et le nombre d'affectations écrites / exécutées ; le minimum pour ces 6 nombres semble être dans l'ordre :
    2 / 2,   2 / 2,   3 / 1 à 3.
    Exemple :   paramètres : 5 , 3 , 5 ® retourne : 5
  2. Écrire en Java une méthode calc qui simule une mini-calculatrice. Elle prendra en paramètres d'entrée deux nombres réels, et un caractère représentant l'opération à effectuer entre ces deux nombres ; elle effectuera le calcul, puis affichera le résultat comme ci-dessous (sauf s'il y a eu des erreurs).
    Exemples :
    paramètres : 2 , 3.14 , '*' ® affichage : 2 * 3.14 = 6.28
    paramètres : 2 , 0 , '/' ® affichage : Division par zero !
    paramètres : 2 , 3.14 , '#' ® affichage : Operation inconnue !

7  Problèmes

  1. Écrire en pseudo-langage une fonction déterminant si deux droites sont confondues ou parallèles ou orthogonales ou sécantes. La fonction prendra les 2 × 3 coefficients réels en paramètre et retournera un caractère 'c', 'p', 'o', ou 's'. Hiérarchiser les 4 cas, et ne pas oublier les cas particuliers tels que les droites horizontales ou verticales, ainsi que les coefficients qui ne définissent pas une équation de droite.
    En travail personnel :  Traduire cette fonction en Java (on se contentera d'une précision de 10-6) et tester son bon fonctionnement sur, notamment, chacun des exemples suivants :
    - les droites [1, 2, 3] et [3, 6, 9], qui sont confondues;
    - les droites [2, 0, 3] et [9, 0, 5], qui sont parallèles;
    - les droites [0, 2, 3] et [0, 9, 5], qui sont parallèles;
    - les droites [2, 2, 0] et [1, -1, 1], qui sont orthogonales;
    - les droites [1, -1, 1] et [2, 2, 0], qui sont orthogonales;
    - les droites [0, 1, 2] et [1, 2, 0], qui sont simplement sécantes.
  2. Écrire en Java une méthode permettant, à partir d'une date quelconque jour/quantième/mois/année, de calculer et d'afficher la date du dernier dimanche du mois en question.
    Les paramètres d'entrée respecteront les règles syntaxiques suivantes :
              <jour>      ::= 'l' | 'm' | 'M' | 'j' | 'v' | 's' | 'd' 
              <quantieme> ::= 1 | 2 | 3 | ... | 30 | 31 
              <mois>      ::= 1 | 2 | 3 | ... | 11 | 12 
              <annee>     ::= 1583 | 1584 | ... | 2999 | 3000
              
    
    On suppose les données fournies correctes et conformes aux spécifications.
    Exemple :
    paramètres : j , 9 , 12 , 1999 ® affichage : Le dernier dimanche du mois est le : 26/12/1999
    Contrainte : n'oubliez pas qu'il est interdit d'utiliser une boucle !



File translated from TEX by TTH, version 3.70.
On 28 Nov 2005, 19:12.