1Isabelle ABOU ALGORITHMIQUE STAGE LA REUNION. 2Isabelle ABOU PLAN DE LEXPOSE I. LALGORITHMIQUE II....

download 1Isabelle ABOU ALGORITHMIQUE STAGE LA REUNION. 2Isabelle ABOU PLAN DE LEXPOSE I. LALGORITHMIQUE II. LALGORITHMIQUE AU LYCEE III. LE LOGICIEL ALGOBOX IV.

If you can't read please download the document

Transcript of 1Isabelle ABOU ALGORITHMIQUE STAGE LA REUNION. 2Isabelle ABOU PLAN DE LEXPOSE I. LALGORITHMIQUE II....

  • Page 1
  • 1Isabelle ABOU ALGORITHMIQUE STAGE LA REUNION
  • Page 2
  • 2Isabelle ABOU PLAN DE LEXPOSE I. LALGORITHMIQUE II. LALGORITHMIQUE AU LYCEE III. LE LOGICIEL ALGOBOX IV. ACTIVITES ALGORITHMIQUES
  • Page 3
  • 3Isabelle ABOU PARTIE 4: ACTIVITES ALGORITHMIQUES
  • Page 4
  • 4Isabelle ABOU INTRODUCTION Dans cette partie sont prsents des exemples dactivits possibles en seconde qui intgrent des algorithmes dans leur rsolution. Les exemples traits ici sont issus des sources suivantes: - certains ont t imagins par lauteur de ce stage en suivant les instructions du nouveau programme officiel de Seconde, - dautres sont tirs de deux documents dits en juin et juillet 2009 par la Direction Gnrale de lEnseignement scolaire Ressources pour la classe de Seconde -Algorithmique-, et -Probabilits et statistiques-. - d'autres encore ont t tirs de sites Internet ou de manuels puis retravaills et remanis. Les programmes ont t crits avec AlgoBox, ceux tirs des documents ressources sont crits dans dautres langages. Ces exemples pourront videmment tre, discuts, critiqus, et ventuellement amliors.
  • Page 5
  • Isabelle ABOU5 PRESENTATION Pour introduire la notion dalgorithmique, on pourra sappuyer sur des situations relevant de la vie courante (recette de cuisine) et/ou de petits algorithmes opratoires sous forme de jeu (jeu du tour de magie). On traitera des algorithmes en relation avec les trois grandes parties de programme: - Fonctions - Gomtrie - Probabilits et statistiques. A intgrer ensuite dans les chapitres appropris. Le but ntant pas de donner une liste exhaustive dalgorithmes possibles, ce qui est de toute faon impossible, mais den donner un certain nombre, en relation avec des activits et rsolution de problmes, et qui paraissent appropris ltat desprit du nouveau programme.
  • Page 6
  • Isabelle ABOU6 EXEMPLE AVEC UNE RECETTE DE CUISINE Ingrdients de la pte crpes: 200g de farine 1 pince de sel sachet de levure 3 cuilleres soupe d'huile 15cl d'eau 15 cl de lait 4 oeufs 4 cuilleres soupe de rhum 2 cuilleres soupe de sucre + vanille Prparation de la pte dans le dsordre: ajouter le sucre + vanille si la pte est trop paisse, ajouter un peu de lait mlanger les ingrdients battre les ufs laisser reposer la pte casser les oeufs dlayer le tout avec l'eau + lait + rhum + huile ajouter la farine + levure + sel Exercice: Remettre dans l'ordre les instructions de la recette de la pte crpes. Identifier les tapes de la recette avec les tapes dun algorithme. ENTREE: Dclaration: Liste des ingrdients Initialisation: Dosage de chaque ingrdient TRAITEMENT: I1: casser les oeufs I2: battre les oeufs I3: ajouter le sucre + vanille I4: ajouter la farine + levure + sel I5: mlanger les ingrdients I6: dlayer le tout avec l'eau + lait + rhum + huile I7: si la pte est trop paisse, ajouter un peu de lait SORTIE: I8: laisser reposer la pte
  • Page 7
  • Isabelle ABOU7 ANALYSE PEDAGOGIQUE Ce premier exemple avec la recette de cuisine peut tre intressant car - il est trs simple pour commencer, - il permet de faire une petite recherche oprationnelle et dintroduire limportance de lordre des instructions, - il permet de mettre en vidence les trois tapes dun algorithme: entre, traitement, sortie, - il permet dintroduire une instruction conditionnelle.
  • Page 8
  • Isabelle ABOU8 JEU DU TOUR DE MAGIE Le professeur demande aux lves deffectuer mentalement les calculs suivants: - Prendre un nombre entier, - Lui ajouter 3, - Multiplier le rsultat obtenu par le nombre de dpart, - Retrancher ce nombre le carr du nombre de dpart. Le professeur prend un lve au hasard, et lui demande de lui donner le nombre quil a obtenu aprs calculs. Il annonce ensuite le nombre que cet lve avait choisi au dpart. Puis, le professeur pose la question aux lves: comment ai-je fait? On rcrit ensemble les tapes de la procdure de calcul, on la fait tourner pour plusieurs nombres, et on met en vidence la forme du rsultat obtenu. Cela peut tre le premier algorithme calculatoire introduire pour faire comprendre la dclaration, laffectation et la lecture/criture.
  • Page 9
  • Isabelle ABOU9 ALGORITHME TOUR DE MAGIE ENTREE n, p Entiers naturels Afficher donner une valeur n Lire n TRAITEMENT Affecter p la valeur n+3 Affecter p la valeur p*n Affecter p la valeur p-n SORTIE Afficher p
  • Page 10
  • Isabelle ABOU10 GEOMETRIE REPEREE
  • Page 11
  • Isabelle ABOU11 PISTES DU PROGRAMME Le plan est suppos muni dun repre orthonormal. Calculer les coordonnes du milieu dun segment; Calculer la distance entre deux points; Calculer des primtres, des aires, des volumes Calculer les coordonnes dun vecteur, de la somme de vecteurs; Rsolution de problmes: Dire si un triangle est quilatral, isocle, rectangle. Dire si un quadrilatre est un paralllogramme. Trouver le quatrime point dun quadrilatre pour obtenir un paralllogramme. Constructions gomtriques.
  • Page 12
  • Isabelle ABOU12 PREMIERS ALGORITHME ET PROGRAMME Lalgorithme qui nous parait tre le plus simple, et le premier faire chercher aux lves est lalgorithme calcul des coordonnes du milieu dun segment . Cet algorithme permet dintroduire les notions fondamentales de lecture/ criture, de mettre laccent sur la diffrence entre Afficher un message et Afficher la valeur dune variable , qui sont deux instructions diffrencies dans AlgoBox, ainsi que sur linstruction Lire la valeur dune variable . Dans un premier temps lalgorithme a t cherch sur papier, puis le programme crit sans le trac du graphique, et une autre sance, nous avons rajout le trac du graphique. La prise en main du logiciel avec ses diffrentes fonctionnalits a dur environ 1 heure, lcriture de lalgorithme, 1 heure, les rectifications ventuelles et pour certains lcriture dun autre algorithme, encore 1 heure.
  • Page 13
  • Isabelle ABOU13 MISE EN SITUATION Nous donnerons dabord lalgorithme et le programme corrects, puis des programmes comportant des erreurs commises par les lves de seconde de lanimatrice de ce stage. Ceux-ci sont intressants car ils permettent de mettre en vidence les difficults rencontres. On notera toutefois que certains lves ont eu le temps dcrire le programme correct sans le trac du graphique, certains avec le trac du graphique, et dautres dcrire galement lalgorithme calcul de la distance entre deux points . Ces sances pourrons donner loccasion de faire de la pdagogie diffrencie, puisque les lves nen ont pas t au mme stade dapprentissage ni de comprhension.
  • Page 14
  • Isabelle ABOU14 ALGORITHME: COORDONNEES MILIEU DUN SEGMENT ENTREE: Dclaration: xA, yA, xB, yB, xI, yI, nombres entiers (ou rels) Affectation: Afficher "Entrer l'abscisse du point A" Lire xA Afficher "Entrer l'ordonne du point A" Lire yA Afficher "Entrer l'abscisse du point B" Lire xB Afficher "Entrer l'ordonne du point B" Lire xB TRAITEMENT Donner xI la valeur (xA+xB)/2 Donner yI la valeur (yA+yB)/2 SORTIE Afficher "L'abscisse du milieu I de [AB] est:", xI Afficher "L'ordonne du milieu I de [AB] est:", yI
  • Page 15 (xB,yB) 27 FIN_ALGORITHME">
  • Isabelle ABOU15 PROGRAMME ALGOBOX COORDONNEES DU MILIEU 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "Donner une valeur xA" 10 LIRE xA 11 AFFICHER "Donner une valeur yA" 12 LIRE yA 13 AFFICHER "Donner une valeur xB" 14 LIRE xB 15 AFFICHER "Donner une valeur yB" 16 LIRE yB 17 xI PREND_LA_VALEUR (xA+xB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 19 AFFICHER "L'abscisse du milieu I de [AB] est xI=" 20 AFFICHER xI 21 AFFICHER "L'ordonne du milieu I de [AB] est yI=" 22 AFFICHER yI 23 TRACER_POINT (xA,yA) 24 TRACER_POINT (xB,yB) 25 TRACER_POINT (xI,yI) 26 TRACER_SEGMENT (xA,yA)->(xB,yB) 27 FIN_ALGORITHME
  • Page 16
  • Isabelle ABOU16 2 PROGRAMMES DELEVES AVEC DES ERREURS 1 VARIABLES 2 xa EST_DU_TYPE NOMBRE 3 ya EST_DU_TYPE NOMBRE 4 xb EST_DU_TYPE NOMBRE 5 yb EST_DU_TYPE NOMBRE 6 xi EST_DU_TYPE NOMBRE 7 yi EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur xa" 10 AFFICHER "donner une ya" 11 AFFICHER "donner une valeur xb" 12 AFFICHER "donner une valeur yb" 13 AFFICHER "donner une valeur xi" 14 AFFICHER "donner une valeur yi" 15 FIN_ALGORITHME 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 LIRE xA 10 LIRE yA 11 LIRE xB 12 LIRE yB 13 LIRE xI 14 LIRE yI 15 FIN_ALGORITHME
  • Page 17
  • Isabelle ABOU17 2 PROGRAMMES DELEVES AVEC DES ERREURS 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 xB EST_DU_TYPE NOMBRE 4 yA EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur xA" 10 LIRE xA 11 AFFICHER "donner une valeur yA" 12 LIRE yA 13 AFFICHER "donner une une valeur xB" 14 LIRE xB 15 AFFICHER "donner la valeur yB" 16 LIRE yB 17 xI PREND_LA_VALEUR (xA+xB)/2 18 xA PREND_LA_VALEUR (yA+yB)/2 19 FIN_ALGORITHME 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur xA" 10 AFFICHER "LIRE xA" 11 AFFICHER "donner une valeur yA" 12 AFFICHER "LIRE yA" 13 AFFICHER "donner une valeur xB" 14 AFFICHER "LIRE xB" 15 AFFICHER "donner une valeur yB" 16 AFFICHER "LIRE yB" 17 xI PREND_LA_VALEUR (xA+xB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 19 AFFICHER "l'abscisse du milileu I de [AB] est:xI=" 20 AFFICHER "LIRE xI" 21 AFFICHER "l'ordonne du milieu I de[AB] est: yI=" 22 AFFICHER "LIRE yI" 23 FIN_ALGORITHME
  • Page 18
  • Isabelle ABOU18 EXEMPLE DENONCE Considrons les points A(-1;1), B(1;2) et C(3;-2). Utiliser un logiciel de gomtrie pour faire le graphique. 1/ Placer ces points dans un repre orthonorm. 2/ Dessiner le triangle ABC. 3/ Que peut-on conjecturer sur ce triangle? 4/ Calculer les mesures des longueurs des cts [AB], [BC], et [AC]. 5/ - Le triangle ABC est-il quilatral? - Le triangle ABC est-il isocle? - Le triangle ABC est-il rectangle? 6/ En dduire la position du centre I du cercle circonscrit au triangle ABC. 7/ Calculer les coordonnes de I, et donner la valeur du rayon de ce cercle. Tracer ce cercle. 8/ Soit E(3;1). Montrer que E est un point de ce cercle.
  • Page 19
  • Isabelle ABOU19 COMMENTAIRES PEDAGOGIQUES Cet nonc permet de montrer la ncessit de lalgorithme de calcul de la distance entre deux points qui intervient plusieurs fois. On introduit les algorithmes permettant de tester si un triangle est quilatral, isocle, rectangle. Il y a une progressivit dans la difficult de ces algorithmes car les tests logiques sont de difficults croissantes. Le test du triangle quilatral utilise le connecteur logique ET avec deux conditions, dans une structure SI...ALORSSINON. Le test du triangle isocle utilise le connecteur logique OU avec trois conditions, dans une structure SIALORSSINON. Le test du triangle rectangle utilise plusieurs tests imbriqus SIALORSSINON. On peut rinvestir tous ces algorithmes dans dautres exercices.
  • Page 20 (xB,yB) 20 D PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 21 dist PREND_LA_VALEUR sqrt(D) 22 AFFICHER "la distance AB^2 vaut " 23 AFFICHER D 24 AFFICHER "La distance AB vaut " 25 AFFICHER dist 26 FIN_ALGORITHME">
  • Isabelle ABOU20 PROGRAMME ALGOBOX DISTANCE ENTRE 2 POINTS 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 D EST_DU_TYPE NOMBRE 7 dist EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur xA" 10 LIRE xA 11 AFFICHER "donner une valeur yA" 12 LIRE yA 13 AFFICHER "donner une valeur xB" 14 LIRE xB 15 AFFICHER "donner une valeur yB" 16 LIRE yB 17 TRACER_POINT (xA,yA) 18 TRACER_POINT (xB,yB) 19 TRACER_SEGMENT (xA,yA)->(xB,yB) 20 D PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 21 dist PREND_LA_VALEUR sqrt(D) 22 AFFICHER "la distance AB^2 vaut " 23 AFFICHER D 24 AFFICHER "La distance AB vaut " 25 AFFICHER dist 26 FIN_ALGORITHME
  • Page 21 (xB,yB) 28 TRACER_SEGMENT (xA,yA)->(xC,yC) 29 TRACER_SEGMENT (xB,yB)->(xC,yC) 30 D1 PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 31 D2 PREND_LA_VALEUR pow((xC-xA),2)+pow((yC-yA),2) 32 D3 PREND_LA_VALEUR pow((xC-xB),2)+pow((yC-yB),2) 33 AFFICHER "la distance AB^2 vaut " 34 AFFICHER D1 35 AFFICHER "la distance AC^2 vaut " 36 AFFICHER D2 37 AFFICHER "la distance BC^2 vaut " 38 AFFICHER D3 39 SI ((D1==D2) ET (D2==D3) ) ALORS 40 DEBUT_SI 41 AFFICHER "le triangle est quilatral" 42 FIN_SI 43 SINON 44 DEBUT_SINON 45 AFFICHER "le triangle n'est pas quilatral" 46 FIN_SINON 47 FIN_ALGORITHME">
  • Isabelle ABOU21 PROGRAMME ALGOBOX TRIANGLE EQUILATERAL 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xC EST_DU_TYPE NOMBRE 7 yC EST_DU_TYPE NOMBRE 8 D1 EST_DU_TYPE NOMBRE 9 D2 EST_DU_TYPE NOMBRE 10 D3 EST_DU_TYPE NOMBRE 11 DEBUT_ALGORITHME 12 AFFICHER "donner une valeur xA" 13 LIRE xA 14 AFFICHER "donner une valeur yA" 15 LIRE yA 16 AFFICHER "donner une valeur xB" 17 LIRE xB 18 AFFICHER "donner une valeur yB" 19 LIRE yB 20 AFFICHER "donner une valeur xC" 21 LIRE xC 22 AFFICHER "donner une valeur yC" 23 LIRE yC 24 TRACER_POINT (xA,yA) 25 TRACER_POINT (xB,yB) 26 TRACER_POINT (xC,yC) 27 TRACER_SEGMENT (xA,yA)->(xB,yB) 28 TRACER_SEGMENT (xA,yA)->(xC,yC) 29 TRACER_SEGMENT (xB,yB)->(xC,yC) 30 D1 PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 31 D2 PREND_LA_VALEUR pow((xC-xA),2)+pow((yC-yA),2) 32 D3 PREND_LA_VALEUR pow((xC-xB),2)+pow((yC-yB),2) 33 AFFICHER "la distance AB^2 vaut " 34 AFFICHER D1 35 AFFICHER "la distance AC^2 vaut " 36 AFFICHER D2 37 AFFICHER "la distance BC^2 vaut " 38 AFFICHER D3 39 SI ((D1==D2) ET (D2==D3) ) ALORS 40 DEBUT_SI 41 AFFICHER "le triangle est quilatral" 42 FIN_SI 43 SINON 44 DEBUT_SINON 45 AFFICHER "le triangle n'est pas quilatral" 46 FIN_SINON 47 FIN_ALGORITHME
  • Page 22
  • Isabelle ABOU22 PROGRAMME ALGOBOX TRIANGLE ISOCELE Tout le dbut de lalgorithme jusqu la ligne 38, est identique lalgorithme triangle quilatral . Ils ne diffrent qu partir des tests (ligne 39). 39 SI ((D1==D2) OU (D2==D3) OU (D1==D3)) ALORS 40 DEBUT_SI 41 AFFICHER "le triangle est isocle" 42 FIN_SI 43 SINON 44 DEBUT_SINON 45 AFFICHER "le triangle n'est pas isocle" 46 FIN_SINON 47 FIN_ALGORITHME
  • Page 23
  • Isabelle ABOU23 PROGRAMME ALGOBOX TRIANGLE RECTANGLE Tout le dbut de lalgorithme jusqu la ligne 38, est identique lalgorithme triangle quilatral ou triangle isocle . Ils ne diffrent qu partir des tests (ligne 39). Nous avons fait le choix de ne pas introduire de tri, jug ici trop difficile pour commencer. 39 SI (D3==D1+D2) ALORS 40 DEBUT_SI 41 AFFICHER "le triangle est rectangle en A" 42 FIN_SI 43 SINON 44 DEBUT_SINON 45 SI (D2==D1+D3) ALORS 46 DEBUT_SI 47 AFFICHER "Le triangle est rectangle en B" 48 FIN_SI 49 SINON 50 DEBUT_SINON 51 SI (D1==D2+D3) ALORS 52 DEBUT_SI 53 AFFICHER "Le triangle est rectangle en C" 54 FIN_SI 55 SINON 56 DEBUT_SINON 57 AFFICHER "Le triangle n'est pas rectangle" 58 FIN_SINON 59 FIN_SINON 60 FIN_SINON 61 FIN_ALGORITHME
  • Page 24
  • Isabelle ABOU24 EXECUTION PAS A PAS AVEC UN TRIANGLE QUELCONQUE #1 Nombres/chaines (ligne 13) -> xA:1 | yA:0 | xB:0 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #2 Nombres/chaines (ligne 15) -> xA:1 | yA:2 | xB:0 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #3 Nombres/chaines (ligne 17) -> xA:1 | yA:2 | xB:3 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #4 Nombres/chaines (ligne 19) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #5 Nombres/chaines (ligne 21) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:8 | yC:0 | D1:0 | D2:0 | D3:0 #6 Nombres/chaines (ligne 23) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:8 | yC:5 | D1:0 | D2:0 | D3:0 #7 Nombres/chaines (ligne 24) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:8 | yC:5 | D1:8 | D2:0 | D3:0 #8 Nombres/chaines (ligne 25) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:8 | yC:5 | D1:8 | D2:58 | D3:0 #9 Nombres/chaines (ligne 26) -> xA:1 | yA:2 | xB:3 | yB:4 | xC:8 | yC:5 | D1:8 | D2:58 | D3:26 Trac du point (1,2) (ligne 33) Trac du point (3,4) (ligne 34) Trac du point (8,5) (ligne 35) Trac du segment (1,2,3,4) (ligne 36) Trac du segment (1,2,8,5) (ligne 37) Trac du segment (3,4,8,5) (ligne 38) La condition n'est pas vrifie (ligne 39) Entre dans le bloc DEBUT_SINON/FIN_SINON (ligne 44) La condition n'est pas vrifie (ligne 45) Entre dans le bloc DEBUT_SINON/FIN_SINON (ligne 50) La condition n'est pas vrifie (ligne 51) Entre dans le bloc DEBUT_SINON/FIN_SINON (ligne 56) Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 58) Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 59) Sortie du bloc DEBUT_SINON/FIN_SINON (ligne 60) ***Algorithme lanc en mode pas pas*** donner une valeur xA donner une valeur yA donner une valeur xB donner une valeur yB donner une valeur xC donner une valeur yC la distance AB^2 vaut 8 la distance AC^2 vaut 58 la distance BC^2 vaut 26 Le triangle n'est pas rectangle ***Algorithme termin***
  • Page 25
  • Isabelle ABOU25 EXECUTION PAS A PAS AVEC UN TRIANGLE RECTANGLE #1 Nombres/chaines (ligne 13) -> xA:1 | yA:0 | xB:0 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #2 Nombres/chaines (ligne 15) -> xA:1 | yA:1 | xB:0 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #3 Nombres/chaines (ligne 17) -> xA:1 | yA:1 | xB:1 | yB:0 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #4 Nombres/chaines (ligne 19) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:0 | yC:0 | D1:0 | D2:0 | D3:0 #5 Nombres/chaines (ligne 21) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:6 | yC:0 | D1:0 | D2:0 | D3:0 #6 Nombres/chaines (ligne 23) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:6 | yC:1 | D1:0 | D2:0 | D3:0 #7 Nombres/chaines (ligne 24) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:6 | yC:1 | D1:9 | D2:0 | D3:0 #8 Nombres/chaines (ligne 25) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:6 | yC:1 | D1:9 | D2:25 | D3:0 #9 Nombres/chaines (ligne 26) -> xA:1 | yA:1 | xB:1 | yB:4 | xC:6 | yC:1 | D1:9 | D2:25 | D3:34 Trac du point (1,1) (ligne 33) Trac du point (1,4) (ligne 34) Trac du point (6,1) (ligne 35) Trac du segment (1,1,1,4) (ligne 36) Trac du segment (1,1,6,1) (ligne 37) Trac du segment (1,4,6,1) (ligne 38) La condition est vrifie (ligne 39) Entre dans le bloc DEBUT_SI/FIN_SI (ligne 40) Sortie du bloc DEBUT_SI/FIN_SI (ligne 42) ***Algorithme lanc en mode pas pas*** donner une valeur xA donner une valeur yA donner une valeur xB donner une valeur yB donner une valeur xC donner une valeur yC la distance AB^2 vaut 9 la distance AC^2 vaut 25 la distance BC^2 vaut 34 le triangle est rectangle en A ***Algorithme termin***
  • Page 26
  • Isabelle ABOU26 ALGORITHMES ET PROGRAMMES POUR Dire si deux vecteurs sont colinaires, deux droites parallles, des points aligns. Trouver lquation dune droite partir des coordonnes de deux points. Tracer dune droite comme fonction affine. Dire si deux droites sont scantes, et calculer les coordonnes de leur point dintersection ventuel.
  • Page 27
  • Isabelle ABOU27 VECTEURS On pourrait procder de la manire suivante: - Commencer par lalgorithme calcul des coordonnes dun vecteur partir des coordonnes de deux points , car cest un algorithme calculatoire trs simple, - Continuer avec lalgorithme vecteurs colinaires , - Finir, pour les lves qui en sont capables, par lalgorithme quatrime point dun paralllogramme . Cela peut tre intgr dans un nonc dexercice comme le suivant, qui peut tre fait sur logiciel de gomtrie.
  • Page 28
  • Isabelle ABOU28 ENONCE Soit A(-3;1), B(2;-2), et C(1;6), H(6;3). 1/ Les points A, B, C sont-ils aligns? 2/ Dmontrer que le quadrilatre ABHC est un paralllogramme. 3/ Trouver les coordonnes du point D tel que le quadrilatre ABCD soit un paralllogramme. 4/ Que reprsente le point C pour le segment [HD]? Le dmontrer. 5/ Trouver les coordonnes du point F symtrique de B par rapport A.
  • Page 29
  • Isabelle ABOU29 ALGORITHME COORDONNEES DUN VECTEUR Dclaration Variable xA, xB, yA, yB, e, f en Numrique Entre Ecrire Entrer labscisse de A Lire xA Ecrire Entrer lordonne de A Lire yA Ecrire Entrer labscisse de B Lire xB Ecrire Entrer lordonne de B Lire yB Traitement Affecter e la valeur de xB-xA Affecter f la valeur de yB-yA Sortie Afficher Labscisse du vect(AB) est:, e Afficher Lordonne du vect(AB) est:, f
  • Page 30 (xB,yB) 46 TRACER_SEGMENT (xB,yB)->(xC,yC) 47 TRACER_SEGMENT (xC,yC)->(xD,yD) 48 TRACER_SEGMENT (xD,yD)->(xA,yA) 49 FIN_ALGORITHME">
  • Isabelle ABOU30 PROGRAMME ALGOBOX 4 ime POINT DUN PARALLELOGRAMME 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xC EST_DU_TYPE NOMBRE 7 yC EST_DU_TYPE NOMBRE 8 xD EST_DU_TYPE NOMBRE 9 yD EST_DU_TYPE NOMBRE 10 DEBUT_ALGORITHME 11 AFFICHER "Donner une valeur xA" 12 LIRE xA 13 AFFICHER "xA=" 14 AFFICHER xA 15 AFFICHER "Donner une valeur yA" 16 LIRE yA 17 AFFICHER "yA=" 18 AFFICHER yA 19 AFFICHER "Donner une valeur xB" 20 LIRE xB 21 AFFICHER "xB=" 22 AFFICHER xB 23 AFFICHER "Donner une valeur yB" 24 LIRE yB 25 AFFICHER "yB=" 26 AFFICHER yB 27 AFFICHER "Donner une valeur xC" 28 LIRE xC 29 AFFICHER "xC=" 30 AFFICHER xC 31 AFFICHER "Donner une valeur yC" 32 LIRE yC 33 AFFICHER "yC=" 34 AFFICHER yC 35 xD PREND_LA_VALEUR xC-(xB-xA) 36 yD PREND_LA_VALEUR yC-(yB-yA) 37 AFFICHER "L'abscisse de D tel que ABCD paralllogramme est xD=" 38 AFFICHER xD 39 AFFICHER "L'ordonne de D tel que ABCD paralllogramme est yD=" 40 AFFICHER yD 41 TRACER_POINT (xA,yA) 42 TRACER_POINT (xB,yB) 43 TRACER_POINT (xC,yC) 44 TRACER_POINT (xD,yD) 45 TRACER_SEGMENT (xA,yA)->(xB,yB) 46 TRACER_SEGMENT (xB,yB)->(xC,yC) 47 TRACER_SEGMENT (xC,yC)->(xD,yD) 48 TRACER_SEGMENT (xD,yD)->(xA,yA) 49 FIN_ALGORITHME
  • Page 31
  • Isabelle ABOU31 EXECUTION AVEC LES VALEURS DE LEXERCICE ***Algorithme lanc*** Donner une valeur xA xA=-3 Donner une valeur yA yA=1 Donner une valeur xB xB=2 Donner une valeur yB yB=-2 Donner une valeur xC xC=1 Donner une valeur yC yC=6 L'abscisse de D tel que ABCD paralllogramme est xD=-4 L'ordonne de D tel que ABCD paralllogramme est yD=9 ***Algorithme termin***
  • Page 32
  • Isabelle ABOU32 DROITES - Pour commencer algorithme quation dune droite partir des coordonnes de deux points ; - Puis, rsolution dun systme 2X2, les quations rduites des droites tant donnes. A intgrer dans des noncs dexercices.
  • Page 33
  • Isabelle ABOU33 ALGORITHME EQUATION DUNE DROITE Dclaration Variable xA, xB, yA, yB, a, b en Numrique Entre Ecrire Entrer labscisse de A Lire xA Ecrire Entrer lordonne de A Lire yA Ecrire Entrer labscisse de B Lire xB Ecrire Entrer lordonne de B Lire yB Traitement Affecter a la valeur de (yB-yA)/(xB-xA) Affecter b la valeur de yA-a*xA Sortie Afficher Le coefficient directeur est :, a Afficher Lordonne lorigine est :, b Afficher Lquation de la droite est : y =, a, x+, b
  • Page 34
  • Isabelle ABOU34 PROBLEME: RESOLUTION DUN SYSTEME LINEAIRE 2X2 crire un algorithme qui indique si deux droites, dont les quations ont t crites sous forme rduite (y=m*x+p), sont parallles. Lalgorithme donnera ensuite les coordonnes du point dintersection ventuel.
  • Page 35
  • Isabelle ABOU35 ALGORITHME RESOLUTION DUN SYSTEME 2X2 Dclaration Variable m, n, p, q, xT, yT en Numrique Entre Entrer le coefficient directeur de la droite (D) Lire m Entrer lordonne lorigine de la droite (D) Lire p Entrer le coefficient directeur de la droite (D) Lire n Entrer lordonne lorigine de la droite (D) Lire q Traitement et Sortie Si (m=n) Alors Si (pq) Alors crire Les deux droites sont strictement parallles Sinon crire Les deux droites sont confondues Sinon Affecter xT la valeur (p-q)/(n-m) Affecter yT la valeur m*xT+p Ecrire Les deux droites sont scantes, et ont pour point dintersection le point T de coordonnes: (, xT, ;, yT, )
  • Page 36
  • Isabelle ABOU36 PROGRAMME ALGOBOX RESOLUTION SYSTEME 2X2 1 VARIABLES 2 m EST_DU_TYPE NOMBRE 3 p EST_DU_TYPE NOMBRE 4 n EST_DU_TYPE NOMBRE 5 q EST_DU_TYPE NOMBRE 6 xT EST_DU_TYPE NOMBRE 7 yT EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 9 AFFICHER "Entrer le coefficient directeur de la premire droite" 10 LIRE m 11 AFFICHER "m=" 12 AFFICHER m 13 AFFICHER "Entrer l'ordonne l'origine de la premire droite " 14 LIRE p 15 AFFICHER "p=" 16 AFFICHER p 17 AFFICHER "Entrer le coefficient directeur de la deuxime droite" 18 LIRE n 19 AFFICHER "n=" 20 AFFICHER n 21 AFFICHER "Entrer l'ordonne l'origine dela deuxime droite" 22 LIRE q 23 AFFICHER "q=" 24 AFFICHER q 25 SI (m==n) ALORS 26 DEBUT_SI 27 SI (p==q) ALORS 28 DEBUT_SI 29 AFFICHER "Les deux droites sont confondues" 30 FIN_SI 31 SINON 32 DEBUT_SINON 33 AFFICHER "Les deux droites sont strictement parallles" 34 FIN_SINON 35 FIN_SI 36 SINON 37 DEBUT_SINON 38 xT PREND_LA_VALEUR (p-q)/(n-m) 39 yT PREND_LA_VALEUR m*xT+p 40 AFFICHER "Les deux droites sont scantes et ont pour point d'intersection T" 41 AFFICHER "xT=" 42 AFFICHER xT 43 AFFICHER "yT=" 44 AFFICHER yT 45 FIN_SINON 46 FIN_ALGORITHME
  • Page 37
  • Isabelle ABOU37 EXECUTION DROITES SECANTES ***Algorithme lanc*** Entrer le coefficient directeur de la premire droite m=1 Entrer l'ordonne l'origine de la premire droite p=2 Entrer le coefficient directeur de la deuxime droite n=6 Entrer l'ordonne l'origine de la deuxime droite q=7 Les deux droites sont scantes et ont pour point d'intersection T xT=-1 yT=1 ***Algorithme termin***
  • Page 38
  • Isabelle ABOU38 EXECUTION DROITES PARALLELES ***Algorithme lanc*** Entrer le coefficient directeur de la premire droite m=-3 Entrer l'ordonne l'origine de la premire droite p=5 Entrer le coefficient directeur de la deuxime droite n=-3 Entrer l'ordonne l'origine de la deuxime droite q=6 Les deux droites sont strictement parallles ***Algorithme termin***
  • Page 39
  • Isabelle ABOU39 UTILISATION DES RESSOURCES Le document daccompagnement Ressources pour la classe de seconde Algorithmique- fournit 10 algorithmes en gomtrie. 1/ Points, segments et distances Algorithme 1: Milieu dun segment Algorithme 2: Quatrime sommet dun paralllogramme Algorithme 3: Trac dun segment dans une fentre adapte Algorithme 4: Trac dun polygone dans une fentre adapte Algorithme 5: Tracs de segments points par points Algorithme 6: Distance de deux points Algorithme 7: Triangle isocle en A 2/ Algorithmes divers Algorithme 8: Fentre orthonormale automatique sur calculatrice Algorithme 9: Trac dun cercle dans une fentre orthonormale Algorithme 10: Jeu de Marelle (ou Marelle de Bresenham). Nous en exposerons certains.
  • Page 40
  • Isabelle ABOU40 TRACE DUN SEGMENT DANS UNE FENETRE ADAPTEE Saisir les coordonnes des extrmits du segment. Dterminer la fentre daffichage : Rcuprer les abscisses et ordonnes minimales et maximales des deux points ; Diminuer un peu les valeurs minimales et augmenter un peu les valeurs maximales (pour ce faire, on choisit dlargir de chaque ct dun cinquime de lcart entre le maximum et le minimum pour chacune des coordonnes).
  • Page 41
  • Isabelle ABOU41 ALGORITHME Variables xA, yA, xB, yB xmin, xmax, ymin, ymax // Bornes de la fentre deltax, deltay // largissement de la fentre Entres Saisir xA, yA, xB, yB Traitement Si xA
  • Isabelle ABOU51 PROGRAMME ALGOBOX COURBE DUNE FONCTION 1 VARIABLES 2 x EST_DU_TYPE NOMBRE 3 y EST_DU_TYPE NOMBRE 4 a EST_DU_TYPE NOMBRE 5 b EST_DU_TYPE NOMBRE 6 DEBUT_ALGORITHME 7 AFFICHER "Entrer la borne infrieure de l'intervalle" 8 LIRE a 9 x PREND_LA_VALEUR a 10 AFFICHER "Entrer la borne suprieure de l'intervalle" 11 LIRE b 12 TANT_QUE ((x>=a) ET (x
  • Isabelle ABOU56 PROGRAMME ALGOBOX SALAIRE DUN EMPLOYE PROGRAMME ALGOBOX SALAIRE DUN EMPLOYE 1 VARIABLES 2 sh EST_DU_TYPE NOMBRE 3 nh EST_DU_TYPE NOMBRE 4 S EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 6 AFFICHER "Entrer le salaire horaire de l'employ" 7 LIRE sh 8 AFFICHER "Le salaire horaire vaut: " 9 AFFICHER sh 10 AFFICHER "Entrer le nombre d'heures effectues" 11 LIRE nh 12 AFFICHER "Le nombre d'heures effectues est:" 13 AFFICHER nh 14 SI ((nh 240)) ALORS 15 DEBUT_SI 16 AFFICHER "Le nombre d'heures est incorrect" 17 FIN_SI 18 SINON 19 DEBUT_SINON 20 SI ((nh>=0) ET (nh=160) ET (nh=200) ET (nhmax alors max prend la valeur y Si yX Y1 -> C Y1 -> D (B-A)/NP For(K,1,N) X">
  • Isabelle ABOU63 TRADUCTION SUR CALCULATRICES Calculatrice TI :Calculatrice CASIO : Input A Input B Input N A ->X Y1 -> C Y1 -> D (B-A)/NP For(K,1,N) X+P -> X If Y1>D Then Y1 -> D End If Y1 C End Disp C,D A -> Xmin B -> Xmax C -> Ymin D -> Ymax DispGraph ? -> A ? -> B ? -> N A -> X Y1 -> C Y1 -> D (B-A)/N -> P For K -> 1 To N X+P -> X If Y1>D Then Y1 -> D Ifend If Y1 C Ifend Next C D A -> Xmin B -> Xmax C -> Ymin D -> Ymax DrawGraph
  • Page 64
  • Isabelle ABOU64 REMARQUES Dans le cadre de la rsolution de problme, il convient de bien faire remarquer que, dans presque tous les cas, les rponses fournies par le programme ne sont que des valeurs approches des extremums, et que dans certains cas, certes loigns des fonctions que les lves rencontrent, les valeurs sorties par le logiciel peuvent tre fort loignes des rponses exactes. Un exemple : pour f (x )= 1/ (x + 0,001) sur [0,95 ;0,95] avec un pas de 0,1 on trouve avec lalgorithme une valeur maximale denviron 285 alors que le maximum de f est exactement 1000. Lorsque la fonction f est strictement croissante puis strictement dcroissante sur [a ;b ], il est possible dtre plus prcis : si on a trouv une valeur maximale pour x=a + k.pas, on sait que le maximum de f sera atteint dans lintervalle [a + (k1). pas ; a + (k+1). pas ] ; on peut donc prendre a + k.pas comme valeur approche de labscisse du maximum avec une erreur infrieure ou gale pas.
  • Page 65
  • Isabelle ABOU65 FENTRAGE HORIZONTAL On se donne une fonction f dfinie sur R. Quel est son comportement lorsque la variable prend des valeurs trs grandes ? On change ici de point de vue, on ntudie plus la fonction sur un intervalle ferm mais un intervalle ouvert de R. Algorithme : exploration de grandes valeurs de la variable Lobjet de cet algorithme est de rechercher des informations sur le maximum de la fonction (sil existe !). Explorer efficacement un intervalle trs grand ne peut se faire en aveugle comme le fait une calculatrice, cest--dire par le biais dune progression arithmtique de la variable. On envisage alors des progressions plus rapides. La mise en forme propose ci-dessous explore les images par f des carrs des entiers.
  • Page 66
  • Isabelle ABOU66 ALGORITHME Initialisation f, la fonction tudier p, la progression de la variable, exemple : p(k) = k N, le nombre ditrations max prend la valeur f (0) x prend la valeur 0, ce sera lantcdent de max. Traitement Pour k variant de 1 N Si f ( p(k) )>max alors x prend la valeur p(k) max prend la valeur f (x) Sortie Affiche x et max.
  • Page 67
  • Isabelle ABOU67 TRADUCTION SUR CALCULATRICES Calculatrice TI :Calculatrice Casio : Input N 0 ->X 0 -> C Y1 -> D For(K,1,N) K^2 -> X If Y1>D Then Y1 -> D X -> C End Disp C,D ? -> N 0 -> X 0 -> C Y1 -> C Y1 -> D For 1 -> K To N K^2 -> X If Y1>D Then Y1 -> D X -> C Ifend Next C D
  • Page 68
  • Isabelle ABOU68 REMARQUES Cet algorithme peut ensuite tre dclin pour tester la monotonie, ou pour explorer de grandes valeurs ngatives, ou de petites valeurs proches de 0 et dans tous les cas on fera prendre conscience du caractre empirique de la rponse obtenue. La tabulation de la fonction selon ce principe permet dapprhender le comportement asymptotique (et dintroduire de faon empirique la notion de limite dans le cadre dune rsolution de problme o cette question est porteuse de sens). Pour une exploration plus efficace, le choix dune croissance plus marque peut se faire sentir. Dans ce cas, une progression gomtrique de la variable est une stratgie judicieuse.
  • Page 69
  • Isabelle ABOU69 PROBABILITES ET STATISTIQUES
  • Page 70
  • Isabelle ABOU70 PISTES DU PROGRAMME STATISTIQUES : Calcul des paramtres dune srie statistique (moyenne, frquences). chantillonnage Un chantillon est-il reprsentatif (ou conforme), au risque de 5%? Mise en place dune simulation avec utilisation des fonctions logiques dun tableur ou dune calculatrice PROBABILITES: Rptition dexpriences alatoires, simulation cest--dire approche frquentielle des probabilits. Algorithmes pour des marches alatoires.
  • Page 71
  • Isabelle ABOU71 EXEMPLE DACTIVITE ECHANTILLON CONFORME On considre un caractre, il peut sagir dun caractre gntique (lappartenance au groupe sanguin O par exemple) pour une population humaine. On considre la proportion p de personnes dans la population qui appartiennent ce groupe. On donne un chantillon de taille n et on calcule la frquence f de personnes de lchantillon appartenant ce groupe. Il sagit de savoir si cet chantillon est reprsentatif de la population totale au seuil 95%.
  • Page 72
  • Isabelle ABOU72 INTERVALLE DE FLUCTUATION Lintervalle de fluctuation au seuil 95%, pour une proportion p cest- -dire correspondant une variable alatoire suivant une loi de Bernoulli (approche par une loi normale quand n est grand) est [p- 1/rac(n); p+1/rac(n)]. Cest--dire que lchantillon est reprsentatif ou conforme si f appartient cet intervalle. Lalgorithme qui suit, indique si lchantillon est conforme partir de lentre de la frquence f comme donne, il comporte un contrle de saisie. On peut galement crire un algorithme o on entrerait le nombre de personnes qui ont le caractre tudi, et qui calculerait galement f grce lalgorithme.
  • Page 73
  • Isabelle ABOU73 ALGORITHME ECHANTILLON CONFORME Dclaration Variable p, f en Numrique Variable n en Entier Entre Afficher Entrer la valeur de la proportion du caractre dans la population totale ; Lire p Afficher Entrer la taille de lchantillon ; Lire n TantQue n
  • Page 74
  • Isabelle ABOU74 PROGRAMME ALGOBOX ECHANTILLON CONFORME 1 VARIABLES 2 p EST_DU_TYPE NOMBRE 3 f EST_DU_TYPE NOMBRE 4 n EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 6 AFFICHER "Entrer la proportion du caractre, en valeur dcimale, dans la population totale" 7 LIRE p 8 AFFICHER "Entrer la taille de l'chantillon" 9 LIRE n 10 TANT_QUE (n
  • Isabelle ABOU93 PROGRAMME ALGOBOX MOYENNE DUN TRAJET 1 VARIABLES 2 H EST_DU_TYPE NOMBRE 3 V EST_DU_TYPE NOMBRE 4 K EST_DU_TYPE NOMBRE 5 N EST_DU_TYPE NOMBRE 6 H1 EST_DU_TYPE NOMBRE 7 V1 EST_DU_TYPE NOMBRE 8 I EST_DU_TYPE NOMBRE 9 S EST_DU_TYPE NOMBRE 10 Moyenne EST_DU_TYPE NOMBRE 11 DEBUT_ALGORITHME 12 S PREND_LA_VALEUR 0 13 POUR I ALLANT_DE 1 A 1000 14 DEBUT_POUR 15 H PREND_LA_VALEUR 0 16 V PREND_LA_VALEUR 0 17 N PREND_LA_VALEUR 0 18 K PREND_LA_VALEUR floor(2*random( )) 19 SI (K==0) ALORS 20 DEBUT_SI 21 V PREND_LA_VALEUR V+1 22 FIN_SI 23 SINON 24 DEBUT_SINON 25 H PREND_LA_VALEUR H+1 26 FIN_SINON 27 H1 PREND_LA_VALEUR H-2*floor(H/2) 28 V1 PREND_LA_VALEUR V-2*floor(V/2) 29 TANT_QUE (V1>0 OU H1>0) FAIRE 30 DEBUT_TANT_QUE 31 K PREND_LA_VALEUR floor(2*random( )) 32 SI (K==0) ALORS 33 DEBUT_SI 34 V PREND_LA_VALEUR V+1 35 FIN_SI 36 SINON 37 DEBUT_SINON 38 H PREND_LA_VALEUR H+1 39 FIN_SINON 40 H1 PREND_LA_VALEUR H-2*floor(H/2) 41 V1 PREND_LA_VALEUR V-2*floor(V/2) 42 FIN_TANT_QUE 43 N PREND_LA_VALEUR V+H 44 S PREND_LA_VALEUR S+N 45 FIN_POUR 46 Moyenne PREND_LA_VALEUR S/1000 47 AFFICHER "La valeur moyenne du trajet est : " 48 AFFICHER Moyenne 49 FIN_ALGORITHME
  • Page 94
  • Isabelle ABOU94 CONCLUSION 1ire simulation La moyenne des trajets est: 3.95 2ime simulation La moyenne des trajets est: 3.874 3ime simulation La moyenne des trajets est: 3.702 4ime simulation La moyenne des trajets est: 3.904 5ime simulation La moyenne des trajets est: 3.894 6ime simulation La moyenne des trajets est: 4.022 Aprs plusieurs simulations de 1000 trajets, on constate que la valeur de la dure moyenne d'un trajet tend vers 4 qui est la valeur thorique.
  • Page 95
  • Isabelle ABOU95 UTILISATION DES RESSOURCES Le document daccompagnement Ressources pour la classe de seconde Algorithmique- fournit 4 algorithmes sur les probabilits. - Le jeu du livre et de la tortue (3 algorithmes) Algorithme 1: simulation dune partie sans boucle Algorithme 2: cumuler un grand nombre dexpriences Algorithme 3: avec une structure itrative conditionnelle - Concidence des dates danniversaire dans une classe: Algorithme 4. Le document daccompagnement Ressources pour la classe de seconde Probabilits et Statistiques- fournit 6 algorithmes sur les probabilits. - Concidence des dates danniversaire pour 12 personnes en utilisant un arbre. 2 algorithmes proposs, analyser - Marche alatoire et temps moyen Sauts de puce: 3 algorithmes proposs, analyser - Nombre de lancers pour sortir tous les numros dun d cubique. L aussi, nous avons choisi de nexposer quun certain nombre de ces algorithmes puisquils sont disposition dans ces documents.
  • Page 96
  • Isabelle ABOU96 LE JEU DU LIEVRE ET DE LA TORTUE Rgle du jeu. chaque tour, on lance un d. Si le 6 sort, alors le livre gagne la partie, sinon la tortue avance dune case. La tortue gagne quand elle a avanc 6 fois. Question : le jeu est-il lavantage du livre ou de la tortue ? Algorithme 1 : Simulation dune partie sans boucle La partie se finit en au plus six lancs. Il est donc possible de simuler une partie sans avoir recours une boucle.
  • Page 97
  • Isabelle ABOU97 ALGORITHME 1 Variables d : la face du d tire au hasard tour : compte le nombre de tours que dure la partie Initialisation d prend une valeur entire alatoire entre 1 et 6 compris tour prend la valeur 1 Traitement Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris tour augmente de 1 Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris tour augmente de 1 Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris tour augmente de 1 Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris tour augmente de 1 Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris tour augmente de 1 Sortie Si d = 6 alors Affiche Le livre gagne sinon Affiche La tortue gagne Affiche tour
  • Page 98
  • Isabelle ABOU98 REMARQUES Si le support de programmation sur lequel est transpos lalgorithme ne dispose pas des fonctionnalits de recopie de texte, la mise en place dune boucle peut se justifier. Il est possible de modifier un peu la modlisation du jeu, afin de simplifier sa mise en uvre, en particulier sur tableur ; en effet, la partie est quivalente aux lancers de six ds. Le livre gagne sil existe au moins un six parmi les rsultats. De cette faon un seul test peut suffire, condition de disposer de linstruction approprie (comme linstruction NB.SI du tableur). Cependant, larithmtique boolenne peut aussi se modliser avec des sommes ou des produits dentiers. Par exemple, le produit des six nombres (6 d) vaut 0 si et seulement il y a au moins un six.
  • Page 99
  • Isabelle ABOU99 ALGORITHME 2 Algorithme 2: Cumuler un grand nombre dexpriences Il suffit damnager le programme afin dinsrer la simulation dune partie dans une boucle et de compter le nombre de parties gagnes par le livre ou la tortue. Lintrt dun langage de programmation devient vident: litration est trs rapide aussi bien crire, modifier qu excuter (ce qui nest pas le cas avec le tableur). On pourra noter, cette occasion, que certains langages sont beaucoup plus rapides que dautres.
  • Page 100
  • Isabelle ABOU100 ALGORITHME 2 Variables d : la face du d tire au hasard N : le nombre de parties simuler k : le compteur de boucle tortue : le nombre de parties gagnes par la tortue Initialisation tortue prend une valeur 0 Traitement Pour k de 1 N d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors d prend une valeur entire alatoire entre 1 et 6 compris Si d < 6 alors tortue prend la valeur tortue + 1 Sortie Affiche tortue.
  • Page 101
  • Isabelle ABOU101 ALGORITHME 3 Algorithme 3 : Avec une structure itrative conditionnelle. videmment, plutt que de rpter 6 fois les mmes instructions, il est possible de simuler une partie laide dune boucle. De cette faon, il sera facile dexprimenter de nouveaux jeux en modifiant le nombre de cases que doit parcourir la tortue. Variables d : la face du d tire au hasard case : le numro de la case sur laquelle se trouve la tortue N : le nombre de cases que doit parcourir la tortue pour gagner. Initialisation N prend la valeur 6 case prend la valeur 0. Traitement Rpte d prend une valeur entire alatoire entre 1 et 6 inclus. Si d < 6 alors case prend la valeur case + 1 jusqu [ d = 6 ou case = N ] Sortie Si case = N alors Affiche La tortue gagne Sinon Affiche Le livre gagne
  • Page 102
  • Isabelle ABOU102 PROGRAMME SCILAB fourni par le document ressource N=6; Ncase=0; de=0; while (de
  • Isabelle ABOU125 EXECUTIONS ***Algorithme lanc*** 0 -> 51 1 -> 154 2 -> 77 3 -> 232 4 -> 116 5 -> 58 6 -> 29 7 -> 88 8 -> 44 9 -> 22 10 -> 11 11 -> 34 12 -> 17 13 -> 52 14 -> 26 15 -> 13 16 -> 40 17 -> 20 18 -> 10 19 -> 5 20 -> 16 21 -> 8 22 -> 4 23 -> 2 24 -> 1 25 -> 4 26 -> 2 27 -> 1 28 -> 4 29 -> 2 30 -> 1 97 -> 4 98 -> 2 99 -> 1 100 -> 4 Quelque soit la valeur de u(0), au bout dun certain nombre de termes on aboutit la valeur 1, et ensuite on retrouve toujours les valeurs 4, 2, 1 linfini.
  • Page 126
  • Isabelle ABOU126 FRACTALES Les objets fractals peuvent se dfinir comme des structures obtenues par litration dun algorithme gomtrique sur une figure. Pour construire des objets fractals, nous dbutons avec un objet graphique quelconque (ligne, triangle, carr, cube, etc). Par la suite, nous dfinissons une opration, ou une srie doprations, qui ajouteront un lment de complexit lobjet initial. Nous appliquons linfini, les transformations choisies lobjet de dpart.
  • Page 127
  • Isabelle ABOU127 CONSTRUCTION DU FLOCON DE VON KOCH ALGORITHME: Tracer un triangle quilatral. Remplacer le tiers central de chaque ct par un point dont la longueur de chaque ct est gale aussi au tiers du ct. Recommencer cette construction sur chaque ct des triangles ainsi forms.
  • Page 128
  • Isabelle ABOU128 POIDS DUN ICEBERG Objectif : Un iceberg de 25 tonnes drive vers le sud. Chaque jour, il perd 10% de sa masse. Combien de jours, faut-il, pour qu'il reste moins d'un kilogramme de glace ? on utilise lalgorithme suivant, on peut galement faire afficher le poids de liceberg par jour, par mois, etc. fonte d'un iceberg
  • Page 129
  • Isabelle ABOU129 APPROXIMATION DE PI PAR LA METHODE DE MONTE CARLO Cet exercice a pour but de calculer une approximation de la valeur de en utilisant la mthode de Monte-Carlo et de la comparer avec une approximation connue de la valeur de . Le principe de la mthode de Monte-Carlo est de tirer au hasard des coordonnes x et y, chacune dans lintervalle [0;1[. Si x + y < 1 alors le point P de coordonnes (x,y) appartient au quart de disque D de centre (0,0) et de rayon 1. La probabilit que P appartienne D est /4 (rapport de laire de D et du carr lenglobant). Donc, si on tire au hasard n points, et si p dentre eux appartiennent D, on sattend avoir : p/n /4. On en tire une approximation de gal 4p/n.
  • Page 130
  • Isabelle ABOU130 RESOLUTION On peut faire cette activit sur tableur ou crire un programme pour trouver lapproximation de PI partir de simulations.
  • Page 131
  • Isabelle ABOU131 PROGRAMME ALGOBOX fourni dans le fichier exemples 1 VARIABLES 2 x EST_DU_TYPE NOMBRE 3 y EST_DU_TYPE NOMBRE 4 i EST_DU_TYPE NOMBRE 5 approxpi EST_DU_TYPE NOMBRE 6 somme EST_DU_TYPE NOMBRE 7 DEBUT_ALGORITHME 8 somme PREND_LA_VALEUR 0 9 POUR i ALLANT_DE 1 A 200000 10 DEBUT_POUR 11 x PREND_LA_VALEUR random() 12 y PREND_LA_VALEUR random() 13 SI (x*x+y*y
  • Isabelle ABOU136 PROCEDURE Cet algorithme conduit la procdure suivante : procedure TourdeHanoi(n :entier ; a,b :entier) ; dbut Si n > 0 alors dbut TourdeHanoi(n-1, a, 6-a-b) ; Ecrire(a,->,6-a-b) ; TourdeHanoi(n-1, 6-a-b, b) ; fin ; Fin ; Lien pour une animation : Tours de HanoTours de Hano
  • Page 137
  • Isabelle ABOU137 BIBLIOGRAPHIE EduSCOL Site : eduscol.education.fr * Programme de mathmatiques pour la classe de seconde gnrale et technologique. * Ressources pour la classe de seconde -Algorithmique-. * Ressources pour la classe de seconde -Probabilits et statistiques-. * Ressources pour la classe de seconde -Fonctions-. * Ressources pour la classe de seconde -Notations et raisonnement mathmatiques-. Activit du groupe statistique et citoyennet de lIREM de Paris Nord sur le site de lAcadmie de Grenoble dans les documents ressources de seconde. Mathmatiques Informatique. 1 ire L. Ed Delagrave Site: histoiredechiffres.free.fr Poids dun iceberg Approximation de PI par la mthode de Monte Carlo. Eric Gillon Tours de Hano et nombre de dplacements. Eric Gillon Cours algorithmique DEUG MIAS. Pierre Liardet Site de mathmatiques de lAcadmie de la Runion. Lien avec Icosaweb. Programmation. Alain Busser.