IN101 : Sujet du TD5.2
Groupe ESIEE, Denis BUREAU, novembre 2005.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir choisir et programmer des structures répétitives
et savoir manipuler les expressions booléennes.
2 Notions abordées dans le cours 5
- TANT QUE, while () {}
- REPETER JUSQU'A, do {} while (!());
- POUR, for (;;) {}
- REPETER .. FOIS, for (;;) {}
- critères de choix de boucle (2 questions)
3 Références dans le "Petit mémento de syntaxe Java"
Paragraphes 11.3.2.1 à 11.3.2.3 .
4 Dérouler une boucle à la main
Après exécution de la fonction suivante, que vaut X
en fonction de X0 ?
(il y a plusieurs cas, selon la valeur de X0;
il est conseillé d'essayer les valeurs 0, 1, 2, 3, 3.4, 4)
public double f( double X0 ) {
double X=X0; int i;
for ( i=1; i<X0; i++ ) X = X * X0;
return X; } // f()
5 Traduire en Java
Methode de lecture d'une voyelle minuscule avec limite
(sans parametre ni valeur de retour)
Soient carac un caractere et nbEssais un entier
NbEssais <-- 0
REPETER
Demander une voyelle minuscule et la mettre dans carac
incrementer nbEssais
SI carac n'est pas une voyelle minuscule
ALORS afficher "Erreur"
FINSI
JUSQUA ce que carac soit une voyelle minuscule ou que nbEssais >= 3
SI carac n'est pas une voyelle minuscule
ALORS afficher "Trop d'erreurs !"
SINON afficher carac " est bien une voyelle minuscule."
FINSI
FinMethode
Aide :
On peut demander à l'utilisateur du programme de taper un
caractère par la méthode
carac = JOptionPane.showInputDialog("Entrez une voyelle minuscule").charAt(0);
à condition d'avoir importé javax.swing.JOptionPane
et déclaré le caractère carac.
6 Exercices
- Écrire en pseudo-langage une fonction calculant la factorielle
d'un nombre entier positif en utilisant une boucle POUR.
Rappels : 0! = 1 et
n! = n ×(n-1) ×(n-2) ×¼×2 ×1.
- Traduire en Java la fonction factorielle.
- Écrire (uniquement en pseudo-langage) le calcul de
la factorielle d'un nombre en utilisant une
boucle TANTQUE, une boucle REPETER...JUSQUA, et une boucle
REPETER...FOIS.
- Écrire une procédure Java prenant en paramètre
un nombre entier ( < 10000) et affichant une suite de
mots décrivant chaque chiffre.
Contrainte : ne pas effectuer de calcul de puissance.
Exemple : 347 ® trois quatre sept
Extension (en travail personnel) :
afficher le nombre "en français", par exemple :
trois cent quarante-sept
7 Problèmes
- s'il reste du temps,
sinon à faire en travail personnel
Écrire une procédure Java prenant en paramètre
un nombre entier compris entre 1 et 3999,
et affichant son équivalent en nombre romain.
Contrainte : ne pas effectuer de calcul de puissance.
Conseil : utiliser une méthode auxiliaire qui retournera le caractère
romain en fonction du chiffre et de la puissance de 10 passés en
paramètres.
Exemple : 2448 ® MMCDXLVIII
- Optionnel
Écrire une procédure
Java permettant, à partir d'une date quelconque
jour/quantième/mois/année (mêmes paramètres que le
"dernier dimanche" du TD5.1), de calculer et d'afficher le
calendrier du mois en question comme ci-dessous
(M majuscule pour Mercredi).
Exemple : m, 13, 12, 2005 ®
Calendrier du mois de decembre 2005 :
lundi mardi Mercredi jeudi vendredi samedi dimanche
. . . 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 .
File translated from
TEX
by
TTH,
version 3.70.
On 29 Nov 2005, 20:09.