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/.
La machine peut comparer des valeurs et prendre des décisions:
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 comme 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/
La première étape consiste à comparer la variable age à LIMIT (14):
Dans la partie « Instructions » le code suivant s’inscrit:
if (age <= LIMIT) {
// age <= LIMIT } else { // age > LIMIT // TO DO }
Dans la console le code est complété ainsi:
if (age <= LIMIT) { cout = REDUIT ; }else { // age > LIMIT // TO DO }
Le cas age inférieur ou égal à LIMIT (14) est enregistré et vérifié. Que doit faire notre programme quand age est supérieur à LIMIT ?
Avec AlgoTouch, il existe deux manières de compléter ce cas:
La première manière de le définir est d’exécuter le programme avec age supérieur à LIMIT (14), par exemple 20:
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.
La deuxième manière de compléter le cas age inférieur ou égal à LIMIT (14) consiste à :
Le code enregistré devient:
if (age <= LIMIT) { cout = REDUIT ; } else { // age > LIMIT cout = PRIX ; }
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 instruction n’est nécessaire dans la section else .
Par exemple, la 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/.