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
- Cours 5 : SI ALORS FINSI, if
- Cours 5 : SI ALORS SINON FINSI, if else
- TD 5.1 : SELON QUE VAUT AUTRE FINSELONQUE,
switch case break default
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 ! :
- !( i1 != 0 )
- !( i2 <= 0 )
- !( i3 < 0 )
- !( '0' <= c && c <= '9' )
- !( 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
- É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
- É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
- É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.
- É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.