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