Table des matières
Define Mult From produit = 1 ; Read "Read n " n ; // ... Until n <= 1 // ... Loop produit = produit * n ; n = n - 1 ; // ... Terminate Write "Valeur de produit " produit ; // ... EndLes programmes est sur https://algotouch.irisa.fr/agt/
somme = 5 + 4 + 3 + 2 + 1 = 15En fonction de la valeur de n le résultat n’est pas le même. Pour réaliser ce programme, il est nécessaire d’utiliser une nouvelle structure de programmation appelée l’itération ou la boucle.
somme = somme + n; n = n - 1;Ce bloc est exécuté 5 fois. Cette valeur correspond à la valeur initiale de 5. Évidemment, si cette valeur est à 3, le bloc est exécuté 3 fois. Et, enfin, si la valeur initiale de n est négative, le bloc ne s'exécute pas.
MacroExemple From // ... Until // ... Loop // ... Terminate // ...
Repérer la séquence d’instructions qui se répète et l’exécuter à la main jusqu’à obtenir le résultat voulu:
Dans la console la séquence suivante se répète :
somme = somme + n ; n = n - 1 ;
n == 0Sans entrer dans le détail, l’utilisateur peut choisir une meilleure condition avec:
n <= 0
somme = 0 ; Read "Read n" n ;Quand le programmeur est sûr de son code, il enregistre le bloc From .
Write "Valeur de somme " somme ;A ce niveau le programme est complet.
Le programme correspondant à l’exemple est donné ci-dessous. Il est bien divisé en quatre parties :
Il reste à voir comment ce programme est exécuté. Nous le verrons en examinant tour à tour l’exécution de chaque bloc.
From somme = 0 ; Read "Read n " n ; // ... Until n <= 0 // ... Loop somme = somme + n; n = n - 1 ; // ... Terminate Write "Valeur de somme " somme ; // ...
Define Puissance From Read "Read x " x ; Read "Read n " n ; exp = 1 ; // ... Until n <= 0 // ... Loop exp = exp * x ; n = n - 1 ; // ... Terminate Write "Valeur de exp " exp ; // ... EndLe programme complet est disponible sur https://algotouch.irisa.fr/agt/
Define PGCD From Read "Read p " p ; Read "Read q " q ; // ... Until p == q // ... Loop if (p < q) { q = q - p ; } else { // p >= q p = p - q ; } // ... Terminate Write "PGCD : " p ; // ... EndLe programme est disponible sur https://algotouch.irisa.fr/agt/
Le programme utilise 5 variables:
reste = n % i ;
if (reste != 0) { }
i = i + 1 ;
i >= moitie
Define Premier From // ... Until i >= moitie // ... Loop reste = n % i ; if (reste != 0) { i = i + 1 ; } else { // reste == 0 // TO DO } // ... Terminate // ... End
premier = 0 ;Il faut également ajouter une condition de sortie car le programme a détecteé que le nombre n n’est pas premier:
premier == 0
Define Premier From // ... Until i >= moitie reste == 0 // ... Loop reste = n % i ; if (reste != 0) { i = i + 1 ; } else { // reste == 0 premier = 0 ; } // ... Terminate // ... End
Read "Read n " n ;
moitie = n / 2 ;
i = 2 ;
if (n > 1) { premier = 1 ; } else { // n <= 1 premier = 0 ; }
Write "La valeur de premier " premier ;Une version plus évoluée peut tester la valeur de premier et afficher un message indiquant si n est premier ou pas.
Define Premier From Read "Read n " n ; moitie = n / 2 ; i = 2 ; if (n > 1) { premier = 1 ; } else { // n <= 1 premier = 0 ; } // ... Until i >= moitie reste == 0 // ... Loop reste = n % i ; if (reste != 0) { i = i + 1 ; } else { // reste == 0 premier = 0 ; } // ... Terminate Write "Valeur de premier " premier ; // ... End