x,y,z:entiers
DEBUT
Afficher "Entrez trois valeurs entières distinctes"
Saisir x,y,z
Si z>y ET y>x Alors
Afficher " Triés en ordre croissant"
Sinon
Afficher "Ces nombres ne sont pas triés"
FinSi
FIN
Comme toujours en Java, le code semble plus complexe qu’il n’y parait et ceci pour deux raisons :
q La saisie nécessite la mise en place de mécanismes complexes : beaucoup de lignes pour pas grandchose.
q La saisie attend une chaîne de caractères, or les tests se font sur des entiers. Il faut donc convertir les
chaînes de caractères en valeurs entières. Java permet de convertir dans tous les sens, mais ceci fait appel à
des notions (classes et objets) qui seront abordées en fin d’ouvrage.
import java.io.*;
class chap3_tri {
public static void main(String[] args) {
String t1,t2,t3;
int x,y,z;
BufferedReader saisie;
saisie=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Entrez trois valeurs entières distinctes:");
try {
t1=saisie.readLine();
t2=saisie.readLine();
t3=saisie.readLine();
x=Integer.parseInt(t1);
y=Integer.parseInt(t2);
z=Integer.parseInt(t3);
if(z>y && y>x)
System.out.println("Triés en ordre croissant");
else
System.out.println("Ces nombres ne sont pas triés");
}
catch(Exception excp) {
System.out.println("Erreur");
}
}
}
4. Tests imbriqués
Vous connaissez le dicton populaire "avec des si, on mettrait Paris en bouteille", auquel on répond généralement après
une accumulation de conditions "s’il fait beau, et qu’il fait chaud, et que la voiture n’est pas en panne, alors nous irons
à la mer, sinon si la voiture est en panne nous prendrons le train, sinon s’il y a grève alors nous ferons du stop, sinon
si tout va mal alors nous resterons à la maison". C’est un peu lourd dit comme ça, mais qui n’a jamais échafaudé des
plans douteux devant vérifier plusieurs conditions avec des scénarios de secours ?
Vous retrouverez parfois le même problème en programmation. Les deux formes de Si cidessus permettent de s’en
sortir assurément, mais la syntaxe peut devenir très lourde. Vous pouvez en effet parfaitement imbriquer vos tests en
plaçant des Si en cascade dans les blocs d’instructions situés après les Alors et les Sinon. Prenez l’exemple suivant : il
faut deviner si un nombre saisi au clavier est proche ou non d’une valeur prédéfinie. Pour le savoir, le programme
affiche froid, tiède, chaud ou bouillant suivant l’écart entre la valeur saisie et celle prédéfinie. Cet écart est calculé avec
une simple soustraction, puis en déterminant sa valeur absolue.
PROGRAMME IMBRIQUE
VAR
nombre,saisie,ecart :entiers
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
50
DEBUT
Afficher "Entrez trois valeurs entières distinctes"
Saisir x,y,z
Si z>y ET y>x Alors
Afficher " Triés en ordre croissant"
Sinon
Afficher "Ces nombres ne sont pas triés"
FinSi
FIN
Comme toujours en Java, le code semble plus complexe qu’il n’y parait et ceci pour deux raisons :
q La saisie nécessite la mise en place de mécanismes complexes : beaucoup de lignes pour pas grandchose.
q La saisie attend une chaîne de caractères, or les tests se font sur des entiers. Il faut donc convertir les
chaînes de caractères en valeurs entières. Java permet de convertir dans tous les sens, mais ceci fait appel à
des notions (classes et objets) qui seront abordées en fin d’ouvrage.
import java.io.*;
class chap3_tri {
public static void main(String[] args) {
String t1,t2,t3;
int x,y,z;
BufferedReader saisie;
saisie=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Entrez trois valeurs entières distinctes:");
try {
t1=saisie.readLine();
t2=saisie.readLine();
t3=saisie.readLine();
x=Integer.parseInt(t1);
y=Integer.parseInt(t2);
z=Integer.parseInt(t3);
if(z>y && y>x)
System.out.println("Triés en ordre croissant");
else
System.out.println("Ces nombres ne sont pas triés");
}
catch(Exception excp) {
System.out.println("Erreur");
}
}
}
4. Tests imbriqués
Vous connaissez le dicton populaire "avec des si, on mettrait Paris en bouteille", auquel on répond généralement après
une accumulation de conditions "s’il fait beau, et qu’il fait chaud, et que la voiture n’est pas en panne, alors nous irons
à la mer, sinon si la voiture est en panne nous prendrons le train, sinon s’il y a grève alors nous ferons du stop, sinon
si tout va mal alors nous resterons à la maison". C’est un peu lourd dit comme ça, mais qui n’a jamais échafaudé des
plans douteux devant vérifier plusieurs conditions avec des scénarios de secours ?
Vous retrouverez parfois le même problème en programmation. Les deux formes de Si cidessus permettent de s’en
sortir assurément, mais la syntaxe peut devenir très lourde. Vous pouvez en effet parfaitement imbriquer vos tests en
plaçant des Si en cascade dans les blocs d’instructions situés après les Alors et les Sinon. Prenez l’exemple suivant : il
faut deviner si un nombre saisi au clavier est proche ou non d’une valeur prédéfinie. Pour le savoir, le programme
affiche froid, tiède, chaud ou bouillant suivant l’écart entre la valeur saisie et celle prédéfinie. Cet écart est calculé avec
une simple soustraction, puis en déterminant sa valeur absolue.
PROGRAMME IMBRIQUE
VAR
nombre,saisie,ecart :entiers
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
50
