Table des matières
Soit deux variables x et y .
Le programme à réaliser doit:
Les données du problème sont accessibles sur https://algotouch.irisa.fr/agt/.
Define Max Do Read "Read x " x ; Read "Read y " y ; if (x > y) { Write "Maximum " x ; } else { // x <= y Write "Maximum " y ; } // ... End
Le programme complet est accessible sur https://algotouch.irisa.fr/agt/.
En AlgoTouch, pour comparer deux valeurs:
Automatiquement AlgoTouch active la bascule et détermine quelle valeur est la plus grande, quelle valeur est la plus petite.
Lors de la comparaison de variables et/ou de valeurs, 6 cas sont possibles:
x == y
x != y
x > y
x >= y
x < y
x <= y
age < LIMIT
age != LIMIT
age <= LIMIT
La comparaison des variables ou des valeurs permet de prendre des décisions. En fonction du résultat de la comparaison, une séquence d’actions ou une autre est à exécuter.
Par exemple, si l’âge est inférieur ou égal à 14 ans, le prix du billet est mis à 30 euros, dans le cas contraire, le prix du billet est mis à 50 euros.
Pour mettre en place une décision:
Si l’opération est conforme aux attentes:
Toutes ces étapes sont détaillées dans la suite de cette page.
Define PrixBillet Do Read "Quel age " age ; if (age <= LIMIT) { cout = REDUIT ; } else { // age > LIMIT cout = PRIX ; } Write "Prix du billet " cout ; // ... End
Nous allons traiter l’alternative à travers un exemple de calcul du prix d’un billet en fonction de l’âge de la personne. Le prix du billet est de:
L’âge de la personne n’est connu qu’au moment de l’exécution du programme et donc il est nécessaire d’effectuer la comparaison avec la valeur 14. Il y aura donc deux cas à prendre en compte avec, par exemple, des âges de 6 ans et 20 ans.
Les valeurs numériques LIMIT (14), REDUIT (30) et PRIX (50) ont été créées comme des constantes afin de pouvoir éventuellement modifier les coûts ou l’âge limite. C’est une bonne pratique en programmation.
Les données du programmes sont accessibles sur https://algotouch.irisa.fr/agt/
if (age <= LIMIT) { } else { // age > LIMIT // TO DO }
if (age <= LIMIT) { cout = REDUIT ; }else { // age > LIMIT // TO DO }
Le code enregistré devient:
if (age <= LIMIT) { cout = REDUIT ; } else { // age > LIMIT cout = PRIX ; }
Remarquons que le commentaire “TO DO” a disparu. C’est pour indiquer au programmeur que son code est complet.
Le code étant maintenant complet, il est possible de la rejouer avec d’autres valeurs.
Le programme complet est sur https://algotouch.irisa.fr/agt/.
Pour finir nous allons étudier le cas ou aucune instructions n’est nécessaire dans la section else .
Par exemple, une note d’un élève supérieure à 20 est ramenée à 20 et conservée sinon.
Les étapes à effectuer :
Le code produit est :
Define SaisirNote Do Read "Note " note ; if (note > 20) { note = 20 ; } else { // note <= 20 // TO DO } Write "Note " note ; // ... End
Le programme AlgoTouch incomplet est sur https://algotouch.irisa.fr/agt/.
Provoquer l’autre cas en plaçant une valeur inférieure à 20 dans la variable note , par exemple 15:
Comme la section else ne contient aucune instruction, le code produit devient:
Define SaisirNote Do Read "Note " note ; if (note > 20) { note = 20 ; } Write "Note " note ; // ... End
Le programme AlgoTouch complet est sur https://algotouch.irisa.fr/agt/.
Soit une variable v . Cette variable doit être supérieure à 0.
Le programme AlgoTouch à réaliser doit:
Par exemple, si la valeur saisie de v est -3, elle devient 0.
Les données du problème sont accessibles sur ce lien https://algotouch.irisa.fr/agt/
Define Positif Do Read "Read v " v ; if (v < 0) { v = 0 ; } Write "Valeur de v " v ; // ... End
Le programme complet est accessible sur https://algotouch.irisa.fr/agt/.