400 likes | 955 Views
Algorithmes en 2 nde. Claude Poulin Stage RETOUR DE L’ALGORITHMIQUE AU LYCEE Rémire Montjoly 2011. Algorithmique:. L’algorithmique est une branche complexe des mathématiques - comparaison de performances - convergence des algorithmes - preuves de programmes…
E N D
Algorithmes en 2nde Claude Poulin Stage RETOUR DE L’ALGORITHMIQUE AU LYCEE Rémire Montjoly 2011
Algorithmique: • L’algorithmique est une branche complexe des mathématiques- comparaison de performances- convergence des algorithmes- preuves de programmes… • En 2nde, on abordera seulement- l’initiation à la pensée algorithmique- l’analyse d’algorithmes existants- des modifications d’algorithmes - la réalisation d’algorithmes- quelques bases de programmation
Des algorithmes, quand? • En relation avec toutes les parties du programme: fonctions, statistiques, géométrie, logique et langue (si .. alors, et...). • Il ne s’agit pas seulement d’utiliser des algorithmes existants.
Des algorithmes, pourquoi? • La résolution de certains problèmes montre la nécessité d’organiser une suite de traitements, de calculs; de mettre au point des solutions algorithmiques.
Des algorithmes partout …. • La notion d’algorithme reste proche de « recette », « méthode systématique», « procédure »… • Des algorithmes plus ou moins complexes sont utilisés dans la vie courante (recherche d’informations -comment marche Google? -, traitement et compression des données, tris, codage, simulation, imagerie médicale, automate de banque…. ). pour un ambulancier..
Des algorithmes déjà rencontrés en mathématiques: • division à la main • résolution d’une équation du premier degré • Euclide • Eratosthène • constructions en géométrie
L’expression des algorithmes: • En langage ordinaire. • En pseudo langage, pas aussi formalisé que dans un programme. • Parfois sous forme de schéma: organigramme …
Un exemple… • "Faites prendre la moitié du nombre pair pensé, puis ajouter 1 et multiplier le résultat par 6; demandez le quotient par 3 du résultat obtenu. Ce quotient diminué de 2 est le nombre pensé." (Emile Fourrey, Récréations mathématiques, 1905) • Algorithme en plusieurs étapes, où l’on retrouve une entrée, un traitement de données et une sortie d’un résultat.
Et la programmation ? • C’est la réalisation de l’algorithme (la phase « intelligente ») qui a un réel intérêt. • Programmer, c’est finalement traduire un algorithme afin qu’il soit exécuté (ordinateur, machine outil, ..). • Cela reste un travail « subalterne », un simple codage dans un langage particulier.
Apprendre à programmer? • En 2nde ce n’est pas vraiment prévu. • Il s’agit simplement quand la nécessité se fait (ou l’envie, car il est assez stimulant de « voir tourner » un algorithme en espérant obtenir le résultat attendu) de traduire l’algorithme dans un langage adéquat (mais le langage n’est pas l’essentiel – vaut mieux avoir …. quelque chose à dire !).
Les supports de programmation. • Principalement les outils déjà communément utilisés (tableurs, calculatrices). • Il est possible de compléter avec des logiciels de programmation: Scratch, Python, Algobox, Visual Basic, Html&Javaou des logiciels de calculs scientifiques (Scilab, Derive…) • Et même des logiciels de calcul formel (Xcas, Mupad…).
Attention ! • Faire tourner un programme permet de montrer qu’il contient des erreurs, pas qu’il est juste. • Utiliser l’outil informatique pour émettre des conjectures, oui ; mais gare aux preuves « sommaires » apportées par l’exécution d’un programme.
Traitements de l’exemple. • A la main ou en effectuant les calculs sur une simple calculatrice. • Par exemple, si le partenaire a choisi 10 • 10/2= • +1= • X6= • /3= • -2= • et on annonce le résultat affiché. • S’il faut recommencer avec un autre nombre, cela devient vite fastidieux.
Il vaut mieux automatiser ce calcul à l’aide d’un tableur. On retrouve l’affectation en B1, les formules et la sortie en B6.
avec Scratch* * Scratch, logiciel libre et ludique, possède une tortue comme LOGO; il a le gros avantage de bien visualiser les structures; on peut exécuter plusieurs algorithmes en parallèle.
avec Scilab • x=10 • x = • 10. • r=((x/2)+1)*6/3-2 • r = • 10.
Avec un logiciel de calcul formel (Xcas) • Là il y a une différence de taille: on aura la preuve formelle, par simplification.
Comment aborder le sujet en seconde. • Une recette de cuisine. • Faire exécuter l’algorithme de construction de l’œuf . • Le rangement d’un cartable. • Jouer au robot (un élève écrit des consignes – calculs, figure – et un autre exécute). • Donner des petits algorithmes et deviner ce qu’ils doivent donner ; les modifier …
Et … • Essayer de faire le lien avec les collègues de français et la logique (si .. alors, ou, et, non …). • La notion de variable est une notion majeure utilisée avec un tableur (une cellule est avant tout une variable) • La notion de variable est très utilisée aussi sur la calculatrice (pour stocker temporairement une valeur). • « Rédiger » un problème de construction en géométrie consiste déjà à proposer un algorithme de construction. Les ordres dans ce cas sont usuellement des droites à tracer avec la règle ou des cercles avec le compas.
Y a-t-il des difficultés? • Un algorithme apporte une solution à un problème. • Il doit être juste par construction, jamais par essai. • Il doit être rédigé clairement, lisiblement dans un souci de communication (et de maintenance!) • Les étapes que l’on retrouve quasi systématiquement (préparation du traitement, traitement, édition des résultats) doivent être clairement identifiées. • Les éléments de base restent néanmoins limités…
Le calcul de la surface d’un rectangle quand on entrera les deux dimensions (Python*): Un exercice d’initiation, un exemple à commenter ou un exemple à modifier … * Python, logiciel libre possède un interpréteur et un compilateur, une tortue; mais peut présenter des inconvénients pour des débutants (pas de déclaration de variable; blocs par indentation; = pour affectation…)
Le test (structure alternative): ALGORITHME Equation VAR A, B, C, DELTA : REEL DEBUT LIRE ( A, B, C) Delta := B*B - 4*A*C SI Delta > 0 : Ecrire ( 'Première racine : ', (-B + Racine(Delta)) / (2* A) Ecrire ( 'Deuxième racine : ', (-B - Racine(Delta)) / (2 *A) SINON SI Delta = 0 Ecrire('Une racine double :', -B / ( 2*A) SINON Ecrire('Pas de racine réelle') FSI FSIFIN
Le test (structure alternative ; Algobox*): *Algobox, logiciel libre est un excellent outil de rédaction d’algorithme, avec des commandes prêtes à l’emploi et possibilité d’exécution immédiate.
Le test (structure alternative): • Ranger deux nombres (Scratch)
Et les boucles ? • Affectation, entrée, sortie ne doivent pas présenter de grandes difficultés. • La structure conditionnelle demandera plus de temps. • Élaborer une boucle reste la véritable difficulté en algorithmique.
En seconde – fonctions. • Calculer l’indice de masse corporelle I= masse/taille² Si I>25 afficher « en surpoids »… • Tableau de valeurs avec un tableur. • Maximiser le volume d’une boîte.
En seconde – expressions. • Résolution d’une équation du 1er degré. • Transformations formelles avec Xcas. • Méthode de Hörner. • Encadrement de solutions de f(x)=0 (dichotomie). • existence d’un triangle pour trois nombres donnés • sortir le plus grand de trois nombres
Algorithme permettant d'obtenir la valeur approchée de la solution positive de l'équation (ALGOBOX).
En seconde – statistiques, probas. • Fluctuation d’échantillonnage: simulations d’un lancer de deux dés. • Intervalles de confiance. • Déterminations de Q1, Me, Q3 (les valeurs obtenues à la machine ne sont pas satisfaisantes).
En seconde – géométrie. • Calcul des coordonnées d’un milieu. • Programme de construction dans le plan. • Vérifier la colinéarité de deux vecteurs. • Construction d’un cube avec Géospace.
Et après ? Il est évident que cette initiation aux algorithmes sera poursuivie par la suite… Des documents sont déjà à consulter sur: http://webtice.ac-guyane.fr/Maths (Tice, Ressources, Algorithmique) (prise en main des calculatrices programmables, de Xcas, de Maple, de Mupad…) Des stages de différents niveaux seront proposés.
L’algorithmique au service de problèmes. • Procédures de tris et comparaison de leurs performances. • recherche d’un maximum d’une fonction par trisection. • Approximation de • Approximation de Pi • Algorithme récursif d’Euclide • Algorithmes sur les graphes • Algorithmes sur le méthodes de calculs d’intégrales
Des algorithmes qui gagnent à être connus…. • Équations différentielles : méthode d’Euler, accélération de Runge … • Équations non linéaires : point fixe, méthode de la sécante, Newton, Delta d’Aitken, Steffesen et Romberg… • Systèmes linéaires : Gauss, Souriau.. • Algorithme CORDIC. Et quelques bases en analyse numérique et en calcul formel.