Table des matières
Le programme complet est accessible sur https://algotouch.irisa.fr/agt/
Les problèmes vus précédemment pouvaient se résoudre avec une seule macro boucle:
Cependant certains 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: