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: