You are on page 1of 24

Introduction

Depuis quelques temps, la grande nouveaut au lyce c'est l'algorithme. On apprend ce qu'est un algorithme et comment en faire un. Nous allons voir que c'est plutt simple tout simplement parce que tout est logique !! C'est un des intrts de cette discipline, ca exerce la logique et a aide donc par la suite en maths (et rciproquement !).

Qu'est-ce-qu'un algorithme ?
Pour faire simple, un algorithme est une suite d'oprations que l'on appelle instructions. Ces instructions sont souvent des oprations mathmatiques comme des galits, ingalits... 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 : Exemple 1 "Prend le chiffre 4 Ajoute 6 Divise par 2 Multiplie par 5 Enlve 3 Et affiche le rsultat final" (normalement tu devrais trouver 22 ) Et bien voil, a c'est un algorithme ! Evidemment on ne l'crit pas de cette manire l, il y a une syntaxe particulire, mais c'est l'ide. On peut videmment faire des choses bien plus compliques : Exemple 2 "Prend le chiffre que l'utilisateur tape au clavier Divise par 2 jusqu' ce que le rsultat soit strictement plus petit que 1 Affiche le nombre de fois que tu as divis par 2" Les possibilits d'algorithmes sont infinies ! L'intrt des algorithmes est de pouvoir tre programm par ordinateur : c'est lui qui fera tous les calculs ! Nous on a juste a lui dire quels calculs faire (il peut en faire des milliers presque instantanment^^)

Pour cela il faut un logiciel spcial, nous utiliserons ALGOBOX, que tu dois utiliser au lyce et que nous te conseillons fortement de tlcharger pour t'entraner Voici le lien pour tlcharger Algobox Le logiciel se prsente ainsi :

Nous verrons au fur et mesure comment marche ce logiciel.

Les diffrents lments


Haut de page 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 gnral, un algortihme a des variables d'entre et des variables de sortie. Ces variables sont souvent des nombres. Dans le 1er exemple, la variable d'entr tait le 4 (ce qu'on avait au dbut), et la variable de sortie tait le rsulat final (qui dans ce cas valait 22). Dans le 2me exemple, la variable d'entre 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 dpart "dclarer" 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 : - dclarer les variables - faire des oprations sur les variables (l'algorithme en lui-mme) 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 dclarer 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 rsultat !! 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 dlicat. Passons au vif du sujet en parlant des diffrentes oprations que l'on va pouvoir faire

Les dclarations
Haut de page On l'a vu, la toute premire tape est de dclarer les variables. Si on veut dclarer 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 "Dclarer une nouvelle variable", de donner le nom de la variable et de cliquer sur "Ok".

Lire une variable


Haut de page Une fois que l'on a dclar une variable, il faut lui donner une valeur. On verra juste aprs comment lui donner une valeur fixe. Mais il peut arriver que l'on veuille nous-mme 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 a chaque fois que l'on lancera l'algorithme. Dans Algoboxc'est assez simple : on clique sur "Dbut Algorithme", puis "nouvelle ligne" et enfin "Ajouter Lire variable". Il n'y a plus qu' slectionner la variable avec le menu droulant.

--Bien penser dclarer une variable avant de la lire !! De toute faon si tu ne la dclares pas tu ne pourras pas la lire... ---

Afficher une variable


Haut de page Gnralement un algorithme sert calculer quelque chose, il faut donc afficher ce rsultat. Pour connatre 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 slectionne le nom de la variable.

--Une remarque importante : quand on fait "nouvelle ligne", le logiciel insre la nouvelle ligne aprs l o on a cliqu sur l'algorithme. Pense donc bien l'endroit o tu veux insrer 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 trs simple :

On dclare 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'intrt mais permet de te familiariser avec le logiciel

Tester l'algorithme
Haut de page 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 fentre s'ouvre alors : il faut maintenant cliquer sur "Lancer l'algorithme" pour le dmarrer.

Une fois l'algorithme lanc, une fentre 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 opration aprs.

Afficher un message
Haut de page En plus d'afficher une variable, on peut aussi afficher des messages. Cela peut tre utile notamment pour plus de clart dans le rsultat. En effet, dans l'exemple prcdent, le logiciel affiche le rsultat (467,2563) mais on ne sait pas quoi correspond ce rsultat.

Ici on sait trs bien que ce nombre correspond la variable a, mais quand on fera des algorithmes plus compliqus 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 mme un peu mieux que tout l'heure Dans la suite on ne se cassera pas la tte afficher cela chaque fois car nous prendrons des exemples simples.

Les affectations
Haut de page Les affections sont srement les oprations que l'on fait le plus souvent. Une affectation, c'est changer la valeur d'une valeur. 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 Dsormais a vaut 4. Avec Algobox, il faut cliquer sur "nouvelle ligne", puis "affecteur valeur variable". On slectionne 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 dsormais valoir a (qui vaut 4 pour l'instant) + 6, donc 10. Dans Algobox, la place de 4 sur l'image prcdente, on crit a + 6. Donc a vaut maintenant 10. Reprenons l'exemple de tout l'heure : on doit aprs 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 enlve 3 : a PREND_LA_VALEUR a - 3 Donc a vaut 25 - 3 = 22. Il ne reste plus qu' afficher le rsultat : 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 intressant car on change la variable a partir de lui-mme (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


Haut de page On peut faire certaines oprations que si certaines conditions sont vrifies. Prenons comme exemple 3 un autre algorithme : "Prend un nombre donn par l'utilisateur Si ce nombre est strcitement suprieur 10, enlve lui 3 Affiche le nombre final" Comme on le voit, on enlvera 3 au nombre que s'il est suprieur 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 fentre 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 diffrent de 8, on aurait crit a != 8 Pour suprieur ou gal et infrieur ou gal, on crit >= et <= Comme tu le vois il y a une syntaxe particulire 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 oprations qu'il faut faire si la condition est vrifie. Ainsi il est possible de faire plusieurs oprations dans le cas o la condition est vrifie. Pour rajouter des oprations on fait comme d'habitude on fait "nouvelle ligne" puis on met toutes les oprations que l'on veut. Evidemment si la condition n'est pas vrifie les oprations ne seront pas faites. Prenons un petit exemple avec plusieurs oprations : "Prend un nombre donn par l'utilisateur que l'on appelle a Si ce nombre est suprieur OU EGAL 10, enlve 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 "dcaler vers la droite". Ici Algobox a dcal vers la droite les oprations effectues si la condition est vrifie : il le fait automatiquement. Prend l'habitude d'indenter tes programmes de cette manire quand tu les cris, ce sera beaucoup plus lisible pour toi et pour les autres personnes qui vont lire ton algortihme sans le connatre. ---

SI...ALORS...SINON
Haut de page Bon c'est bien joli cette condition, si a > 10 on fait toutes les oprations. Mais si a n'est pas strictement infrieur 10, qu'est-ce-qu'on fait ?? C'est l qu'inteviennent les boucles SI...ALORS...SINON Pour cela rien de plus simple : aprs avoir cliqu sur Ajouter SI...ALORS, il faut cocher la case Ajouter SINON :

Bien sr 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 oprations faire si la condition n'est pas vrifie, c'est--dire si a n'est pas strictement infrieur 10. Un petit exercice : cris avec Algobox l'algorithme suivant : "Prend une variable a

donne par l'utilisateur Si ce nombre est strictement suprieur 10, ajoute lui 2 puis divise le par 7 Sinon multiplie le par 5, ajoute lui 4 et multiplie le par 2 Affiche le rsultat" Tu devrais avoir cela :

Suivant les algorithmes on utilisera juste SI...ALORS ou SI...ALORS..SINON, tout dpend de ce que doit faire l'algorithme.

Les boucles "TANT QUE"


Haut de page Dans l'exemple 2, il y a "jusqu' ce que le rsultat soit strictement infrieur 1", qui peut tre exprim par "tant que le rsultat est suprieur ou gal 1". (il faut faire attention ici que le strictement infrieur devieny suprieur ou gal^^) C'est pour cela qu'il existe ce que l'on apelle des "boucles tant que". "Boucle" signifie que l'on va rpter des oprations plusieurs fois. Dans l'exemple 2 on a "divise par 2 jusqu' ce que le rsultat tant que le rsultat est suprieur ou gal 1". On va donc rpter plusieurs fois l'opration "diviser par 2" TANT QUE le rsulat est plus suprieur 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 rsultat est suprieur 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 rpter les oprations. 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 "Dbut TANT_QUE" et "Fin TANT_QUE".

Les boucles "POUR...DE...A"


Haut de page 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 a b 5 fois de suite Afficher a" C'est le "Ajouter a b 5 fois de suite" qui nous intresse ici. En effet, on rpte la mme opration (ajouter a) 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 particulire : Si on veut passer 5 fois dans la boucle, il faut d'abord dclarer 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 dclarer cette variable au dbut Ensuite comme d'habitude on clique sur "nouvelle ligne" puis "Ajouter Pour...de...A" Dans la fentre 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 prsence du DEBUT_POUR et FIN_POUR pour

montrer toutes les oprations 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 dclarer au dpart ! Petite question simple : que fait cette algorithme ?? Rponse : l'algorithme fait tout simplement le calcul a + 5b, puisqu'il ajoute 5 fois b a^^

Le mode pas pas


Haut de page Le mode pas pas est une option que l'on peut prendre que on teste l'algorithme. Mais quoi sert ce mode ?

Tu as d remarquer que quand tu testes l'algorithme, le logiciel affiche les rsultats immdiatement, le rsultat aprs presque instantanment. Mais tu ne vois pas tous les calculs intermdiaires qu'il fait !! Et bien justement le mode pas pas te permet te voir tous les calculs effectus par le logiciel. Tu dois te dire : " quoi a sert, vu qu'on ne veut que le rsultat ?!"

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 dtecter o est cette erreur.

Exercices
Haut de page Bon maintenant tu dois tre au top avec le logiciel et les algorithmes Mais les exemples donns dans le cours sont assez simples, alors que le plus intressant, c'est quand c'est difficile ! Nous t'avons donc prpar quelques exercices afin que tu puisses t'entraner : clique ici pour voir ces exercices !

Intrt des algorithmes


Les algorithmes sont la base de beaucoup de choses que tu utilises. Les ordinateurs et autres tlphones portables notamment sont bass principalement sur des algorithmes. D'une manire gnrale, 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, dvelopper ta logique. En effet, tu auras remarqu qu'un algortihme est entirement bas sur la logique, il faut ce que tu lui dis un point c'est tout ! Cela devrait grandement t'aider par la suite pour les matires scientifiques mais aussi les autres matires. Si tu fais de l'informatique et de la programmation plus tard, tu feras principalement ce genre de raisonnement et d'exercices, donc entrane-toi ds maintenant ! Retour au sommaire des cours Remonter en haut de la page

Rechercher

Recherche personnalise

"Copyright Mthode Maths by Pierre Kempf 2011-2013, tous droits rservs. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Pierre Kempf"
Men

You might also like