Ré-ordre de trois entiers [if13] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 15 octobre 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 5 alg - 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 algorithme 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 : Afficher("==> " , a , " <= " , c , " < " , b) 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 algorithme avec la solution. Solution alg @[pgreordre1.alg] Algorithme pgreordre1 Variable a , b , c : Entier Début | Afficher ( "Trois entiers? " ) 3 Unisciel algoprog – Ré-ordre de trois entiers [if13] | | | | | | | | | | | | | | | | | | | | Fin 1.3 4 Saisir ( a , b , c ) Si ( a < b ) Alors | Si ( c < a ) Alors | | Afficher ( "==> " , c , " < " , a , " < " , b ) | Sinon | | Si ( c < b ) Alors | | | Afficher ( "==> " , a , " <= " , c , " < " , b ) | | FinSi | FinSi Sinon | Si ( a < c ) Alors | | Afficher ( "==> " , b , " <= " , a , " < " , c ) | Sinon | | Si ( c < b ) Alors | | | Afficher ( "==> " , c , " < " , b , " <= " , a ) | | Sinon | | | Afficher ( "==> " , b , " <= " , c , " <= " , a ) | | FinSi | FinSi FinSi Tri croissant Complétez votre algorithme 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 : tmp <- c c <- b b <- tmp 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 algorithme avec la solution. Unisciel algoprog – Ré-ordre de trois entiers [if13] Solution alg @[pgreordre2.alg] Algorithme pgreordre2 Variable a , b , c : Entier Variable tmp : Entier Début | Afficher ( "Trois entiers? " ) | Saisir ( a , b , c ) | Si ( a < b ) Alors | | Si ( c < a ) Alors | | | tmp <- c | | | c <- a | | | a <- b | | | b <- tmp | | Sinon | | | Si ( c < b ) Alors | | | | tmp <- c | | | | c <- b | | | | b <- tmp | | | FinSi | | FinSi | Sinon | | Si ( a < c ) Alors | | | tmp <- a | | | a <- b | | | b <- tmp | | Sinon | | | Si ( c < b ) Alors | | | | tmp <- a | | | | a <- c | | | | c <- tmp | | | Sinon | | | | tmp <- b | | | | b <- c | | | | c <- a | | | | a <- tmp | | | FinSi | | FinSi | FinSi | Afficher ( "==> " , a , " " , b , " " , c ) Fin 2 Références générales Comprend [Tarlowski-PG1 :c2 :ex6] 5