Sommaire
Qu’est-ce-qu’un algorithme ?
Les différents éléments
Les déclarations
Lire une variable
Afficher une variable
Tester l’algorithme
Afficher un message
Les affectations
Les conditions SI…ALORS
SI…ALORS…SINON
Les boucles « TANT QUE »
Les boucles « POUR…DE…A »
Le mode pas à pas
Exercices
Intérêt des algorithmes
Introduction
Depuis quelques temps, la grande nouveauté au lycée c’est l’algorithmie. On apprend ce qu’est un algorithme et comment en faire un.
Nous allons voir que c’est plutôt simple tout simplement parce que tout est logique !! C’est un des intérêts de cette discipline, ça exerce la logique et ça aide donc par la suite en maths (et réciproquement !).
Qu’est-ce-qu’un algorithme ?
Pour faire simple, un algorithme est une suite d’opérations que l’on appelle instructions.
Ces instructions sont souvent des opérations mathématiques comme des égalités, inégalités…
Un algorithme fait ce qu’on lui dit et rien d’autre, c’est comme un robot !!
Par exemple, on pourrait faire faire la chose suivante à un algorithme :
« Prend le chiffre 4
Ajoute 6
Divise par 2
Multiplie par 5
Enlève 3
Et affiche le résultat final »
(normalement tu devrais trouver 22 )
Et bien voilà, ça c’est un algorithme ! Evidemment on ne l’écrit pas de cette manière là, il y a une syntaxe particulière, mais c’est l’idée.
On peut évidemment faire des choses bien plus compliquées :
« Prend le chiffre que l’utilisateur tape au clavier
Divise par 2 jusqu’a ce que le résultat soit strictement plus petit que 1
Affiche le nombre de fois que tu as divisé par 2 »
Les possibilités d’algorithmes sont infinies !
L’intérêt des algorithmes est de pouvoir être programmé par ordinateur : c’est lui qui fera tous les calculs ! Nous on a juste à lui dire quels calculs faire (il peut en faire des milliers presque instantanément^^)
Pour cela il faut un logiciel spécial, nous utiliserons ALGOBOX, que tu dois utiliser au lycée et que nous te conseillons fortement de télécharger pour t’entraîner
Voici le lien pour télécharger Algobox
Le logiciel se présente ainsi :
Nous verrons au fur et à mesure comment marche ce logiciel.
Il existe bien d’autres logiciels pour faire des algorithmes mais celui-ci est simple d’utilisation, c’est donc lui que nous utiliserons par la suite.
Les différents éléments
Un algorithme va se faire en plusieurs étapes. Mais avant de les voir, il faut d’abord savoir qu’est-ce-qu’on va utiliser.
En général, un algortihme a des variables d’entrée et des variables de sortie. Ces variables sont souvent des nombres.
Dans le 1er exemple, la variable d’entrée était le 4 (ce qu’on avait au début), et la variable de sortie était le résulat final (qui dans ce cas valait 22).
Dans le 2ème exemple, la variable d’entrée était le nombre tapé sur le clavier (donc ça peut être n’importe quel nombre), et la variable de sortie était le nombre de fois que l’on divisait par 2 (qui peut être n’importe quel entier).
On donne toujours un nom à ces variables, le plus souvent des lettres minuscules, par exemple a = 4 pour le premier exemple.
Il faut donc au départ « déclarer » chaque variable, en disant le type de variable que c’est (pour nous ce sera toujours un nombre, mais on peut avoir des variables de type mot, lettre, etc…).
Dans l’algortihme, il y aura donc 2 étapes principales :
– déclarer les variables
– faire des opérations sur les variables (l’algorithme en lui-même)
Sur Algobox on voit bien les 2 parties :
Il ne faut pas oublier 2 « sous-étapes » importantes : l’initialisation des variables, et la phase de sortie.
Initialiser les variables, ça veut dire leur donner une valeur.
Dans le premier exemple, tu vas déclarer ta variable « a » en disant que c’est un nombre. Mais il ne faut pas oublier de lui donner sa valeur initiale : 4.
Il faut faire cela avec toutes les variables pour ne pas avoir de surprise, car parfois les variables s’initialisent à n’importe quelle valeur, souvent 0 ou 1.
Ensuite la phase de sortie : si on fait un algorithme, c’est pour avoir un résultat !!
Dans les 2 exemples on veut afficher un nombre à la fin, il ne faut donc pas oublier d’afficher ce nombre… ici c’est évident mais parfois c’est plus délicat.
Passons au vif du sujet en parlant des différentes opérations que l’on va pouvoir faire
Les déclarations
On l’a vu, la toute première étape est de déclarer les variables. Si on veut déclarer la variable « a » comme étant un nombre, on dit juste :
a EST_DU_TYPE NOMBRE
On met en majuscule et avec des tirets car sous Algobox c’est comme ça, mais quand tu fais sur ta copie tu peux écrire « a est du type nombre » sans majuscule
Comme tu le vois ce n’est pas bien compliqué…
Evidemment il faut faire cela avec chaque variable^^
Avec Algobox, il suffit de cliquer sur « Déclarer une nouvelle variable », de donner le nom de la variable et de cliquer sur « Ok ».
Lire une variable
Une fois que l’on a déclaré une variable, il faut lui donner une valeur.
On verra juste après comment lui donner une valeur fixe. Mais il peut arriver que l’on veuille nous-même donner la valeur d’une variable à chaque fois !
Pour cela, on dit :
LIRE a
Ainsi l’algorithme va nous demander quelle valeur on veut donner à la variable à chaque fois que l’on lancera l’algorithme.
Dans Algobox c’est assez simple : on clique sur « Début Algorithme », puis « nouvelle ligne » et enfin « Ajouter Lire variable ».
Il n’y a plus qu’à sélectionner la variable avec le menu déroulant.
—
Bien penser à déclarer une variable avant de la lire !!
De toute façon si tu ne la déclares pas tu ne pourras pas la lire…
—
—
Note bien que dans Algobox, il faut cliquer sur « Nouvelle ligne » à droite de l’écran pour pouvoir faire une nouvelle opération.
—
Afficher une variable
Généralement un algorithme sert à calculer quelque chose, il faut donc afficher ce résultat.
Pour connaître la valeur de la variable a, on écrit tout simplement : AFFICHER a.
Pour Algobox on fait un peu comme pour LIRE, on clique sur « nouvelle ligne », « ajouter Afficher variable » puis on sélectionne le nom de la variable.
——————————————————————————————
Une remarque importante : quand on fait « nouvelle ligne », le logiciel insère la nouvelle ligne après là où on a cliqué sur l’algorithme.
Pense donc bien à l’endroit où tu veux insérer ta ligne avant de faire « nouvelle ligne »
——————————————————————————————
——————————————————————————————
Autre remarque TRES importante : si on affiche plusieurs variables, le logiciel les affichera toutes les unes à la suite des autres sans mettre d’espace ni sauter de ligne !!!
Ca risque d’être rapidement illisible…
Il faut bien penser à cliquer sur « Ajouter un retour à la ligne » à chaque fois que l’on affiche une variable !!!
——————————————————————————————
On a ainsi un algorithme très simple :
On déclare la variable a, puis on tape sur le clavier la valeur que l’on veut donner à cette variable, et on affiche la valeur.
Cet algorithme n’a pas beaucoup d’intérêt mais permet de te familiariser avec le logiciel
Tester l’algorithme
Maintenant que nous avons notre 1er algorithme (un peu simple mais c’est pour le principe), nous allons le tester !
Pour cela rien de plus simple, il suffit de cliquer sur « Tester l’algorithme » !
Une nouvelle fenêtre s’ouvre alors : il faut maintenant cliquer sur « Lancer l’algorithme » pour le démarrer.
Une fois l’algorithme lancé, une fenêtre de dialogue s’ouvre en demandant « entrer a »
Ceci est normal puisque dans l’algorithme on a écrit « LIRE a », donc c’est à nous de rentrer la valeur de a.
On peut mettre alors ce que l’on veut.
—
ATTENTION !! Pour les chiffres à virgule, on met un point et non pas une virgule !!!
Si on veut que a vaille 2,5 il faut donc écrire 2.5
—
Une fois que l’on a appuyé sur Ok, l’algorithme passe à l’étape suivante qui est AFFICHER a.
Le logiciel affiche donc la valeur de a (ici on a pris 467.2563), et dit que l’algorithme est terminé puisqu’il n’y a plus d’autre opération après.
Tu peux relancer plusieurs fois l’algorithme en mettant des valeurs de a différentes pour bien comprendre comment ça marche^^.
Afficher un message
En plus d’afficher une variable, on peut aussi afficher des messages.
Cela peut être utile notamment pour plus de clarté dans le résultat. En effet, dans l’exemple précédent, le logiciel affiche le résultat (467,2563) mais on ne sait pas à quoi correspond ce résultat.
Ici on sait très bien que ce nombre correspond à la variable a, mais quand on fera des algorithmes plus compliqués qui afficheront plein de variables, ce sera plus pratique^^
Pour afficher un message, il suffit de cliquer sur « nouvelle ligne » puis « Ajouter afficher message », et il n’y a plus qu’à écrire le message souhaité.
Ici on a mis comme message « a = » avant d’afficher la variable a.
Mais attention ! Ici il ne faut pas faire de retour à la ligne sinon la variable s’affichera en dessous de « a = », ce qui n’est pas ce que l’on veut…
On a donc l’algorithme suivant :
Et si on le teste voici ce que l’on obtient :
C’est quand même un peu mieux que tout à l’heure
Dans la suite on ne se cassera pas la tête à afficher cela à chaque fois car nous prendrons des exemples simples.
Les affectations
Les affections sont sûrement les opérations que l’on fait le plus souvent.
Une affectation, c’est changer la valeur d’une variable.
Pour cela on dit PREND_LA_VALEUR.
Supposons que l’on veuille donner à la variable « a » la valeur 4. Et bien on écrit :
a PREND_LA_VALEUR 4
Désormais a vaut 4.
Avec Algobox, il faut cliquer sur « nouvelle ligne », puis « affecteur valeur à variable ».
On sélectionne alors la variable et on met la valeur que l’on veut :
Jusque-là ce n’est pas trop dur.
Par contre, si on veut ajouter 6 à la variable a comme demandé dans le premier exemple, il faut écrire :
a PREND_LA_VALEUR a + 6
Qu’est-ce-que ça veut dire ?
a PREND_LA_VALEUR a + 6 signifie que la variable a va désormais valoir a (qui vaut 4 pour l’instant) + 6, donc 10.
Dans Algobox, à la place de 4 sur l’image précédente, on écrit a + 6.
Donc a vaut maintenant 10.
Reprenons l’exemple de tout à l’heure : on doit après diviser a par 2.
On écrit alors :
a PREND_LA_VALEUR a/2.
a vaut maintenant 10/2 = 5.
Puis on multiplie par 5 :
a PREND_LA_VALEUR a * 5
a vaut maintenant 5 × 5 = 25.
Enfin on enlève 3 :
a PREND_LA_VALEUR a – 3
Donc a vaut 25 – 3 = 22.
Il ne reste plus qu’à afficher le résultat : AFFICHER a
—
Petite remarque : pour faire une multiplication on écrit * (une étoile) et pour la division c’est / (un slash)
—
L’algorithme complet est le suivant :
Si tu lances l’algorithme tu devrais trouver…22 !!
Comme tu le vois, une affectation c’est changer la valeur d’une variable.
Si on avait une variable b, on pourrait écrire
b PREND_LA_VALEUR a + 5 par exemple.
Si à ce moment-là a vaut 10, alors b vaudra 15.
Mais le premier exemple est plus intéressant car on change la variable a à partir de lui-même (en écrivant a PREND_LA_VALEUR a + 6 par exemple).
Il y a 2 « a » dans l’instruction, mais celui de gauche est la nouvelle valeur de a, et celui de droite l’ancienne valeur de a.
Les conditions SI…ALORS
On peut faire certaines opérations que si certaines conditions sont vérifiées.
Prenons comme exemple 3 un autre algorithme :
« Prend un nombre donné par l’utilisateur
Si ce nombre est strcitement supérieur à 10, enlève lui 3
Affiche le nombre final »
Comme on le voit, on enlèvera 3 au nombre que s’il est supérieur à 10.
On fait alors ce qu’on appelle un SI…ALORS.
Avec Algobox : on fait « nouvelle ligne », puis on clique sur « Ajouter SI…ALORS ».
Une fenêtre s’ouvre, il suffit de mettre la condition, ici c’est a > 10
—
ATTENTION !! On voit qu’il y a une aide pour la syntaxe.
On remarque que pour tester une égalité, on écrit == et non un seul =
Si la condition avait été a = 4, on aurait écrit a==4
De plus, si la condition avait été a différent de 8, on aurait écrit a != 8
Pour supérieur ou égal et inférieur ou égal, on écrit >= et <= Comme tu le vois il y a une syntaxe particulière à respecter et qui peut être source d’erreurs… —
Une fois cliqué sur Ok, Algobox met automatiquement un DEBUT_SI et FIN_SI :
Entre ce DEBUT_SI et FIN_SI, on va mettre toutes les opérations qu’il faut faire si la condition est vérifiée.
Ainsi il est possible de faire plusieurs opérations dans le cas où la condition est vérifiée.
Pour rajouter des opérations on fait comme d’habitude on fait « nouvelle ligne » puis on met toutes les opérations que l’on veut.
Evidemment si la condition n’est pas vérifiée les opérations ne seront pas faites.
Prenons un petit exemple avec plusieurs opérations :
« Prend un nombre donné par l’utilisateur que l’on appelle a
Si ce nombre est supérieur OU EGAL à 10, enlève lui 3, puis multiplie le par 2 et ajoute lui 4
Affiche le nombre final »
Normalement tu devrais avoir ça :
——————————————————————————————
Cela est renforcé par ce qu’on appelle « l’indentation »
Indenter, ça veut dire en gros « décaler vers la droite ». Ici Algobox a décalé vers la droite les opérations effectuées si la condition est vérifiée : il le fait automatiquement.
Prend l’habitude d’indenter tes programmes de cette manière quand tu les écris, ce sera beaucoup plus lisible pour toi et pour les autres personnes qui vont lire ton algortihme sans le connaître.
——————————————————————————————
SI…ALORS…SINON
Bon c’est bien joli cette condition, si a > 10 on fait toutes les opérations.
Mais si a n’est pas strictement supérieur à 10, qu’est-ce-qu’on fait ??
C’est là qu’inteviennent les boucles SI…ALORS…SINON
Pour cela rien de plus simple : après avoir cliqué sur Ajouter SI…ALORS, il faut cocher la case Ajouter SINON :
Bien sûr il ne faut pas oublier de remplir la condition dans le cadre comme tout à l’heure.
On voit que le logiciel a rajouté SINON avec DEBUT_SINON et FIN_SINON :
Entre DEBUT_SINON et FIN_SINON, on va mettre toutes les opérations à faire si la condition n’est pas vérifiée, c’est-à-dire si a n’est pas strictement supérieur à 10.
Un petit exercice : écris avec Algobox l’algorithme suivant :
« Prend une variable a donnée par l’utilisateur
Si ce nombre est strictement supérieur à 10, ajoute lui 2 puis divise le par 7
Sinon multiplie le par 5, ajoute lui 4 et multiplie le par 2
Affiche le résultat »
Tu devrais avoir cela :
Suivant les algorithmes on utilisera juste SI…ALORS ou SI…ALORS..SINON, tout dépend de ce que doit faire l’algorithme.
Les boucles « TANT QUE »
Dans l’exemple 2, il y a « jusqu’à ce que le résultat soit strictement inférieur à 1 », qui peut être exprimé par « tant que le résultat est supérieur ou égal à 1 ».
(il faut faire attention ici que le strictement inférieur devient supérieur ou égal^^)
C’est pour cela qu’il existe ce que l’on apelle des « boucles tant que ».
« Boucle » signifie que l’on va répéter des opérations plusieurs fois.
Dans l’exemple 2 on a « divise par 2 tant que le résultat est supérieur ou égal à 1 ».
On va donc répéter plusieurs fois l’opération « diviser par 2 » TANT QUE le résulat est supérieur ou égal à 1.
Imaginons que l’on parte de a = 11.
L’algorithme peut s’écrire :
Ici on divise a par 2 tant que le résultat est supérieur ou égal à 1, ce qui est bien le fonctionnement recherché de l’algorithme.
Les boucles « tant que » servent quand on a des boucles mais qu’on ne sait pas combien de fois il faudra répéter les opérations.
Avec Algobox c’est un peu pareil que d’habitude, on fait « nouvelle ligne », puis « Ajouter Tant que », et on écrit la condition.
On remarque une fois de plus que le logiciel met automatiquement « Début TANT_QUE » et « Fin TANT_QUE ».
Les boucles « POUR…DE…A »
Mais parfois on sait combien de fois on doit passer dans la boucle !
On fait alors ce que l’on appelle une boucle « POUR…DE…A ».
Exemple 4 :
« a est un nombre
b est un nombre
Choisir un entier a
Choisir un entier b
Ajouter b à a 5 fois de suite
Afficher a »
C’est le « Ajouter b à a 5 fois de suite » qui nous intéresse ici.
En effet, on répète la même opération (ajouter b) 5 fois : c’est donc une boucle, et on sait qu’on passe 5 fois dans cette boucle, donc on va faire une boucle « POUR »
La syntaxe est ici un peu particulière :
Si on veut passer 5 fois dans la boucle, il faut d’abord déclarer une variable qui va permettre de dire combien de fois on passe dans la boucle. On va appeler cette variable i.
Il faut bien penser à déclarer cette variable au début
Ensuite comme d’habitude on clique sur « nouvelle ligne » puis « Ajouter Pour…de…A »
Dans la fenêtre qui s’ouvre, on choisit la variable i, et comme on veut passer 5 fois dans la boucle, on met que i va de 1 à 5 :
Au final on a ça :
POUR i ALLANT de 1 à 5 signifie que i vaudra d’abord 1, puis 2, puis 3, puis 4, puis 5 : on sera donc bien passé dans la boucle 5 fois !!
On remarque une fois encore la présence du DEBUT_POUR et FIN_POUR pour montrer toutes les opérations à effectuer quand on passe dans la boucle.
Concernant la variable i, on peut évidemment l’appeler comme on veut, mais il faut bien penser à la déclarer au départ !
Petite question simple : que fait cette algorithme ??
Réponse : l’algorithme fait tout simplement le calcul a + 5×b, puisqu’il ajoute 5 fois b à a^^
Le mode pas à pas
Le mode pas à pas est une option que l’on peut prendre quand on teste un algorithme.
Mais à quoi sert ce mode ?
Tu as dû remarquer que quand tu testes l’algorithme, le logiciel affiche les résultats presque instantanément.
Mais tu ne vois pas tous les calculs intermédiaires qu’il fait !!
Et bien justement le mode pas à pas te permet te voir tous les calculs effectués par le logiciel.
Tu dois te dire : « à quoi ça sert, vu qu’on ne veut que le résultat ?! »
Si ton algorithme marche, en effet il n’y a pas de souci, mais si l’algorithme que tu as écrit est faux ??
C’est qu’il doit y avoir une erreur à un moment ou à un autre, et le mode pas à pas te permet justement de détecter où est cette erreur.
Exercices
Bon maintenant tu dois être au top avec le logiciel et les algorithmes
Mais les exemples donnés dans le cours sont assez simples, alors que le plus intéressant, c’est quand c’est difficile !
Nous t’avons donc préparé quelques exercices afin que tu puisses t’entraîner : clique ici pour voir ces exercices !
Intérêt des algorithmes
Les algorithmes sont à la base de beaucoup de choses que tu utilises.
Les ordinateurs et autres téléphones portables notamment sont basés principalement sur des algorithmes. D’une manière générale, tout ce qui est automatique est plus ou moins basé sur des algorithmes.
Pour toi, le principale avantage des algorithmes est de t’apprendre à avoir un certain raisonnement logique, à développer ta logique.
En effet, tu auras remarqué qu’un algortihme est entièrement basé sur la logique, il fait ce que tu lui dis un point c’est tout !
Cela devrait grandement t’aider par la suite pour les matières scientifiques mais aussi les autres matières.
Si tu fais de l’informatique et de la programmation plus tard, tu feras principalement ce genre de raisonnement et d’exercices, donc entraîne-toi dès maintenant !
Soyez le premier à commenter