Académique Documents
Professionnel Documents
Culture Documents
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 :
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".
--Bien penser dclarer une variable avant de la lire !! De toute faon si tu ne la dclares pas tu ne pourras pas la lire... ---
--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 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 :
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) ---
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.
--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.
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".
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^^
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 !
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