TP 2 : Instructions conditionnelles
7 octobre 2005 Enseignant : Dmitri Lebedev lebedev AT lix.polytechnique.fr
L'objectif de ce TP est de se familiariser avec les instructions conditionnelles if...else et switch.
Petit rappel : syntaxe
If-else
La structure générale est :
if (Condition) {
Suite d'instructions
}
else if (Condition) {
Suite d'instructions
}
(...) else {
Suites instructions
}
Aiguillage
On a la structure suivante :
switch(x){
case a : I1
case b : I2
case c : I3
default : I4
}
A noter que dès que la condition est vérifiée, toutes les instructions sont exécutées. On peut remédier à cela avec l'instruction break.
Conditionnelles simples
Tarif jeune ?
Ecrivez un programme qui demande l'age de l'utilisateur et lui indique s'il a droit au tarif jeune (-26 ans).
Tarif réduit ?
Ecrivez un programme qui demande l'age de l'utilisateur et lui indique s'il a droit au tarif réduit (-26 ans ou plus de 60 ans).
Saison
Ecrivez un programme qui demande de taper 'p' pour printemps, 'e' pour été, 'a' pour automne, 'h' pour hiver et retourne selon le cas la saison correspondante. Le programme retournera un message d'erreur si la lettre tapée ne correspond pas à une saison.
Email
L'université décide de donner un mail à ses étudiants. Ceux-ci ont la forme générale : Nom@jussieu.fr. Il y a cependant une restriction, si le nom excède 6 caractères, il doit être tronqué. Ainsi l'étudiant Delatour aura l'email Delato@jussieu.fr. Faire un programme qui demande le nom de l'étudiant et retourne son email.
Conditionnelles imbriquées
Madame, mademoiselle ou monsieur ?
Ecrivez un programme qui dit Bonjour madame , Bonjour mademoiselle ou Bonjour monsieur selon le sexe et l'état marital de la personne.
Rabais
Un client achète N pommes. Chaque pome a le même prix P. S'il achète plus que 5 pommes il obtient un rabais de 5%. S'il achète entre 3 et 5 pommes, il obtient un rabais de 3%. S'il achète moins que 3 pommes, il n'y a pas de rabais. Ecrivez un programme qui calcule le prix total.
Moyenne de notes
Ecrivez un programme qui lit trois notes d'examens et leurs coefficients, puis affiche la moyenne pondérée, en précisant éliminé si la moyenne est inférieure à 10, admissible dans le cas contraire.
Histoires de dates
Date correcte
Ecrivez un programme qui lit une date (jour, mois, année) et qui répond correct si la date est correcte et incorrecte sinon. On fera attention aux année bissextile. Ainsi, le 29 2 1999 n'est pas correcte car 1999 n'est pas une année bissextile.
Date du lendemain
Ecrivez un programme qui lit une date (jour, mois, année), que l'on supposera correcte, et retourne la date du lendemain. Exercice 10: Tarif jeune ? La suite Ecrivez un programme qui demande la date (jour, mois, année) du jour, la date de naissance de l'utilisateur et lui indique s'il a droit au tarif jeune (-26 ans).
Probleme de langue
Nombres ordinaux
En général, en fran¸cais, pour former un nombre ordinal, on ajoute le suffixe -ième, par exemple « trois » ! « troisième ». Il y a quelques exceptions : d une part « un » ! « premier », et d autre part des modifications euphoniques comme « neuf » ! « neuvième », « onze » ! « onzième », etc. Ecrire un programme qui lit un nombre (écrit en lettres !) et affiche l'ordinal correspondant.
Ordinaux abrégés en anglais
Dans cet exercice, nous nous intéressons aux ordinaux abrégés, o`u le nombre est écrit en chiffres. Les premiers sont « 1st », « 2nd », « 3rd », « 4th », etc. (abréviations de « first, second, third, fourth, ... »). Pour déterminer le suffixe, on regarde le dernier chiffre du nombre : si c est 1, on ajoute le suffixe est -st ; si c est 2, le suffixe est -nd ; si c est 3, le suffixe est -rd ; sinon le suffixe est -th. Il y a une exception : si l avant-dernier chiffre du nombre est 1, le suffixe est toujours -th. Ecrire un programme qui lit un nombre (avec Deug.readInt()), et qui affiche l'ordinal anglais abrégé correspondant.
Boucles
Encore un peu de syntaxe
while(Condition){
Suite d'instructions
}
for(int i=0;i<10;i++){
Suite d'instructions
}
- Écrire un programme de jeu qui fabrique un nombre au hasard entre 0 et 100, et le fait deviner à l'utilisateur. Celui-ci propose une valeur et l'ordinateur répond trop petit ou trop grand jusqu'à gagné. Modifiez le programme pour qu'il affiche le nombre de coups.
Aide: on utilisera la fonction Math.random() qui retourne un réel de type double entre 0.0 et 1.0.
-
Écrire un programme qui calcule la valeur de n! pour un entier de type int n entré au clavier et l'affiche à l'écran. En utilisant des valeurs de plus en plus grandes dans votre programme, déterminer la plus grande valeur de n pour laquelle on peut utiliser une variable de type int? Même question avec une variable de type long.