Réaliser le tri croissant d’un tableau t selon la méthode dite de tri par sélection.
Le principe de ce tri est de:
L’opération se poursuit jusqu’à la fin du tableau t qui est alors trié.
Les données du programme à réaliser sont accessibles sur https://algotouch.irisa.fr/agt/
Certains problèmes peuvent se résoudre avec une seule macro boucle, par exemple:
Cependant d’autres problèmes ne peuvent être résolus avec une seule boucle. On doit alors créer une seconde boucle dans le corps de la première boucle. On parle alors de “boucles imbriquées”.
Avec AlgoTouch, il est impossible de construire directement une boucle à l’intérieur d’une boucle. Le seul moyen est de créer une nouvelle macro boucle qui sera appelée dans le corps de la première.
Define Double From i = 0 ; exist = 0 ; // ... Until i >= t.length exist == 1 // ... Loop Exist1Double ; i = i + 1 ; // ... Terminate Write "Valeur de exist " exist ; // ... End
Define Exist1Double From exist = 0 ; j = i + 1 ; // ... Until j >= t.length exist == 1 // ... Loop if (t[i] != t[j]) { j = j + 1 ; } else { // t[i] == t[j] exist = 1 ; } // ... Terminate // ... End
Dans cette partie du cours, nous allons créer un programme AlgoTouch (une macro), qui détermine si un tableau d’entiers contient des valeurs identiques: