Ré-ordre de trois entiers [if13] - Exercice

publicité
Ré-ordre de trois entiers [if13] - Exercice
Karine Zampieri, Stéphane Rivière
Unisciel
algoprog
Version 29 décembre 2016
Table des matières
1 Ré-ordre de trois entiers
1.1 Arbre de décision . . .
1.2 Affichage ordonné . . .
1.3 Tri croissant . . . . . .
/
.
.
.
pgreordre
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Références générales
2
2
3
4
6
Java - Ré-ordre de trois entiers (Solution)
Mots-Clés Structures conditionnelles Requis Structures de base Difficulté • ◦ ◦ (30 min) Objectif
Cet exercice réalise l’affichage ordonné puis le tri croissant de trois entiers.
...(énoncé page suivante)...
1
Unisciel algoprog – Ré-ordre de trois entiers [if13]
1
1.1
2
Ré-ordre de trois entiers / pgreordre
Arbre de décision
Soient trois valeurs a, b, c sur lesquels est définie une relation d’ordre inférieur (<).
Remplissez les rectangles de l’arbre de décision selon le même principe que celui fourni.
Solution simple
Voici l’arbre solution :
Unisciel algoprog – Ré-ordre de trois entiers [if13]
1.2
Affichage ordonné
Écrivez un programme qui saisit trois valeurs entières dans a, b et c.
Affichez l’invite :
Trois entiers?
En utilisant l’arbre de décision, affichez dans l’ordre les trois entiers.
Aide détaillée
Par exemple, dans le cas a<b et c<b, cela consiste à écrire :
Testez. Exemples d’exécution.
Trois entiers? 2 1 3
==> 1 <= 2 < 3
Trois entiers? 3 0 -2
==> -2 < 0 <= 3
Trois entiers? 5 1 2
==> 1 <= 2 <= 5
Validez votre programme avec la solution.
Solution Java
@[pgreordre1.java]
import java.util.Scanner;
public class PGReordre1 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
System.out.print("Trois entiers? ");
3
Unisciel algoprog – Ré-ordre de trois entiers [if13]
int a
int b
int c
if (a
if
4
= cin.nextInt();
= cin.nextInt();
= cin.nextInt();
< b){
(c < a){
System.out.println("==> "+c+" < "+a+" < "+b);
}
else{
if (c < b){
System.out.println("==> "+a+" <= "+c+" < "+b);
}
else{
System.out.println("==> "+a+" <= "+b+" <= "+c);
}
}
}
else{
if (a < c){
System.out.println("==> "+b+" <= "+a+" < "+c);
}
else{
if (c < b){
System.out.println("==> "+c+" < "+b+" <= "+a);
}
else{
System.out.println("==> "+b+" <= "+c+" <= "+a);
}
}
}
}
}
1.3
Tri croissant
Complétez votre programme afin de remette dans l’ordre les trois valeurs. (Déclarez
une variable tmp pour réaliser les permutations.)
Aide simple
Remplacez les affichages par des permutations.
Aide détaillée
Par exemple, dans le cas a<b et c<b, cela consiste à écrire :
Testez. Exemples d’exécution.
Trois entiers? 2 1 3
==> 1 2 3
Trois entiers? 3 0 -2
==> -2 0 3
Unisciel algoprog – Ré-ordre de trois entiers [if13]
Trois entiers? 5 1 2
==> 1 2 5
Validez votre programme avec la solution.
Solution Java
@[pgreordre2.java]
import java.util.Scanner;
public class PGReordre2 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
System.out.print("Trois entiers? ");
int a = cin.nextInt();
int b = cin.nextInt();
int c = cin.nextInt();
int tmp;
if (a<b){
if (c<a){
tmp = c;
c = b;
b = a;
a = tmp;
}
else{
if (c<b){
tmp = c;
c = b;
b = tmp;
}
}
}
else{
if (a<c){
tmp = a;
a = b;
b = tmp;
}
else{
if (c<b){
tmp = a;
a = c;
c = tmp;
}
else{
tmp = b;
b = c;
c = a;
a = tmp;
}
}
}
System.out.println("==> "+a+" "+b+" "+c);
}
}
5
Unisciel algoprog – Ré-ordre de trois entiers [if13]
2
Références générales
Comprend [Tarlowski-PG1 :c2 :ex6] 6
Téléchargement