Algorithmique en classe de première avec AlgoBox - Xm1 Math
Algorithmique en classe de première avec AlgoBox - Xm1 Math
Algorithmique en classe de première avec AlgoBox - Xm1 Math
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Cette œuvre est mise à disposition selon les termes <strong>de</strong> la Lic<strong>en</strong>ce Creative CommonsAttribution - Pas d’utilisation Commerciale - Partage à l’id<strong>en</strong>tique 3.0 non transposé.© 2012 Pascal BrachetVous êtes libre <strong>de</strong> reproduire, distribuer, communiquer et adapter l’œuvre selon lesconditions suivantes :– Vous n’avez pas le droit d’utiliser cette œuvre à <strong>de</strong>s fins commerciales.– Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit <strong>de</strong>distribuer votre création que sous une lic<strong>en</strong>ce id<strong>en</strong>tique ou similaire à celle-ci.Cette brochure a été réalisée <strong>avec</strong> le système <strong>de</strong> composition LATEX et l’éditeur TEXMAKER .http://www.xm1math.net/doculatex/in<strong>de</strong>x.html– i –
SOMMAIREB.3.4 Boucle POUR...DE...A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42B.3.5 Structure TANT QUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42B.3.6 Utilisation <strong>de</strong> l’onglet « Utiliser une fonction numérique » . . . . . . . . 43B.3.7 Utilisation <strong>de</strong> l’onglet « Dessiner dans un repère » . . . . . . . . . . . . . 43B.3.8 Utilisation <strong>de</strong> l’onglet « Fonction avancée » . . . . . . . . . . . . . . . . . 44B.3.9 Récupération facile d’un co<strong>de</strong> <strong>AlgoBox</strong> dans un traitem<strong>en</strong>t <strong>de</strong> texte . . . 44B.4 Quelques techniques classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45B.4.1 Diviseur ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45B.4.2 Entier pair ou impair ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45B.4.3 Entier pseudo-aléatoire compris <strong>en</strong>tre 1 et N . . . . . . . . . . . . . . . . 45B.4.4 « Balayage » d’un intervalle . . . . . . . . . . . . . . . . . . . . . . . . . . 45B.4.5 Suites numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46B.4.6 Échanger le cont<strong>en</strong>u <strong>de</strong> <strong>de</strong>ux variables . . . . . . . . . . . . . . . . . . . . 47B.4.7 Afficher un message cont<strong>en</strong>ant du texte et <strong>de</strong>s nombres . . . . . . . . . . 47C Algorithmes supplém<strong>en</strong>taires 48C.1 Second <strong>de</strong>gré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48C.2 Paramètres d’une série statistique . . . . . . . . . . . . . . . . . . . . . . . . . . . 49C.3 Tabulation loi binomiale - Intervalle <strong>de</strong> fluctuation à 95% . . . . . . . . . . . . . 50– iii –
Avant-proposRappel <strong>de</strong>s instructions officielles concernant l’algorithmique dansles programmes <strong>de</strong> mathématiques :1. Instructions élém<strong>en</strong>taires (affectation, calcul, <strong>en</strong>trée, sortie).Les élèves, dans le cadre d’une résolution <strong>de</strong> problèmes, doiv<strong>en</strong>t être capables :– d’écrire une formule permettant un calcul ;– d’écrire un programme calculant et donnant la valeur d’une fonction ;– ainsi que les instructions d’<strong>en</strong>trées et sorties nécessaires au traitem<strong>en</strong>t.2. Boucle et itérateur, instruction conditionnelle.Les élèves, dans le cadre d’une résolution <strong>de</strong> problèmes, doiv<strong>en</strong>t être capables <strong>de</strong> :– programmer un calcul itératif, le nombre d’itérations étant donné ;– programmer une instruction conditionnelle, un calcul itératif, <strong>avec</strong> une fin <strong>de</strong> boucle conditionnelle.3. Dans le cadre <strong>de</strong> cette activité algorithmique, les élèves sont <strong>en</strong>traînés à :– décrire certains algorithmes <strong>en</strong> langage naturel ou dans un langage symbolique ;– <strong>en</strong> réaliser quelques-uns à l’ai<strong>de</strong> d’un tableur ou d’un programme sur calculatrice ou <strong>avec</strong> unlogiciel adapté ;– interpréter <strong>de</strong>s algorithmes plus complexes.Cont<strong>en</strong>u <strong>de</strong> cette brochure :– Des activités « élèves » strictem<strong>en</strong>t conformes aux programmes <strong>en</strong> vigueur.– Des annexes comportant :– Des activités d’appr<strong>en</strong>tissage <strong>de</strong>s techniques <strong>de</strong> base <strong>en</strong> algorithmique <strong>avec</strong> Algobox ;– Un mém<strong>en</strong>to sur les fonctions d’<strong>AlgoBox</strong> ;– Des algorithmes supplém<strong>en</strong>taires <strong>en</strong> rapport <strong>avec</strong> le cont<strong>en</strong>u mathématique <strong>de</strong>s programmes<strong>de</strong> <strong>première</strong>.À propos <strong>de</strong>s activités « élèves » :Les fiches « professeurs » et « élèves » sont sur <strong>de</strong>s pages différ<strong>en</strong>tes afin <strong>de</strong> faciliter les photocopies.Les activités sont prés<strong>en</strong>tées ici sous forme d’énoncés « à trou ». Il est bi<strong>en</strong> sur possible <strong>de</strong> lesadapter selon sa conv<strong>en</strong>ance.Adaptations possibles :– donner l’algorithme complet et <strong>de</strong>man<strong>de</strong>r <strong>de</strong> décrire ce qu’il fait ;– <strong>de</strong>man<strong>de</strong>r la réalisation complète <strong>de</strong> l’algorithme à partir <strong>de</strong> zéro.Les fichiers <strong>AlgoBox</strong> <strong>de</strong>s algorithmes <strong>de</strong> la partie « Activités élèves » et <strong>de</strong> l’annexe C sontdisponibles <strong>en</strong> ligne à l’adresse suivante : http://www.xm1math.net/algobox/algobook.html
Première partieActivités « élèves »– 1 –
1. POURCENTAGES1Pourc<strong>en</strong>tagesFiche professeur 1A– Fiche élève correspondante : page 3– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_1A.alg– Contexte (1ES/1STMG) : Application directe du cours sur les hausses <strong>en</strong> pourc<strong>en</strong>tageFiche professeur 1B– Fiche élève correspondante : page 3– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_1B.alg– Contexte (1ES/1STMG) : Recherche du nombre <strong>de</strong> hausses nécessaires pour doubler la valeurd’une gran<strong>de</strong>ur (algorithmique « utile » - résolution mathématique directe impossible <strong>en</strong><strong>première</strong>) - Utilisation d’une boucle TANT_QUE– 2 –
1. POURCENTAGESFiche élève 1ACompléter la ligne 8 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous soit correct :1: VARIABLES2: prixHT EST_DU_TYPE NOMBRE3: prixTTC EST_DU_TYPE NOMBRE4: TVA EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: LIRE prixHT7: LIRE TVA8: prixTTC PREND_LA_VALEUR prixHT*(..............)9: AFFICHER "Le prix TTC est égal à "10: AFFICHER prixTTC11: FIN_ALGORITHMEFiche élève 1BLe PIB d’un pays émerg<strong>en</strong>t est <strong>de</strong> 700 milliards d’euros <strong>en</strong> 2010. Selon un modèle <strong>de</strong> prévision,il <strong>de</strong>vrait augm<strong>en</strong>ter <strong>de</strong> 10% par an dans les années futures.On cherche à créer un algorithme <strong>AlgoBox</strong> qui permette <strong>de</strong> déterminer <strong>en</strong> quelle année le PIBaura doublé par rapport à 2010.Compléter les lignes 7 et 9 ci-<strong>de</strong>ssous pour que l’algorithme proposé répon<strong>de</strong> à la question.1: VARIABLES2: annee EST_DU_TYPE NOMBRE3: PIB EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: PIB PREND_LA_VALEUR 7006: annee PREND_LA_VALEUR 20107: TANT_QUE (PIB............) FAIRE8: DEBUT_TANT_QUE9: PIB PREND_LA_VALEUR PIB*...........10: annee PREND_LA_VALEUR annee+111: FIN_TANT_QUE12: AFFICHER "Le PIB aura doublé <strong>en</strong> "13: AFFICHER annee14: FIN_ALGORITHME– 3 –
2. SECOND DEGRÉ2Second <strong>de</strong>gréFiche professeur 2A– Fiche élève correspondante : page 5– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_2A.alg– Contexte (1S/1ES/1STL/1STMG) : Recherche et codage <strong>de</strong>s conditions pour que les valeursd’un trinôme soi<strong>en</strong>t toujours strictem<strong>en</strong>t positives.– 4 –
2. SECOND DEGRÉFiche élève 2AOn considère la fonction f définie sur R par f (x) = ax 2 + bx + c <strong>avec</strong> a 0.Compléter la ligne 11 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous soit correct :1: VARIABLES2: a EST_DU_TYPE NOMBRE3: b EST_DU_TYPE NOMBRE4: c EST_DU_TYPE NOMBRE5: <strong>de</strong>lta EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: LIRE a8: LIRE b9: LIRE c10: <strong>de</strong>lta PREND_LA_VALEUR b*b-4*a*c11: SI (.......................) ALORS12: DEBUT_SI13: AFFICHER "f(x) est toujours strictem<strong>en</strong>t positif"14: FIN_SI15: SINON16: DEBUT_SINON17: AFFICHER "f(x) n’est pas toujours strictem<strong>en</strong>t positif"18: FIN_SINON19: FIN_ALGORITHME– 5 –
3. FONCTIONS3FonctionsFiche professeur 3A– Fiche élève correspondante : page 7– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_3A.alg– Contexte (1S/1ES/1STL/1STMG) : Création d’un tableau <strong>de</strong> valeurs <strong>avec</strong> un TANT_QUE– Prolongem<strong>en</strong>t possible : Faire tracer les points correspondants dans un repère (il suffit d’utiliserl’onglet Dessiner dans un repère et d’ajouter l’instruction TRACER_POINT (x,y) aprèsAFFICHER y).Att<strong>en</strong>tion : pour tracer une courbe <strong>en</strong> joignant les points par un segm<strong>en</strong>t, il faut un algorithmeplus complet (il faut les coordonnées <strong>de</strong>s <strong>de</strong>ux points à joindre - un exemple estfourni <strong>avec</strong> <strong>AlgoBox</strong> : m<strong>en</strong>u "Fichier" -> "Ouvrir un exemple")Fiche professeur 3B– Fiche élève correspondante : page 8– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_3B.alg– Contexte (1S) : Recherche d’une valeur approchée <strong>de</strong> l’équation x 2√ x = 2 par dichotomiesur [0;2] .– Prolongem<strong>en</strong>ts possibles :– Remplacer la boucle POUR numero_etape ALLANT_DE 1 A 4 par un TANT_QUE portant surla précision souhaitée.– Étudier un autre cas où la fonction est strictem<strong>en</strong>t décroissante– Établir un algorithme qui fonctionne dans tous les cas (fonction strictem<strong>en</strong>t croissante oustrictem<strong>en</strong>t décroissante)Fiche professeur 3C– Fiche élève correspondante : page 10– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_3C.alg– Contexte (1S) : Recherche par « balayage » du premier point d’une courbe dont le coeffici<strong>en</strong>tdirecteur <strong>de</strong> la tang<strong>en</strong>te dépasse une certaine valeur .– Prolongem<strong>en</strong>t possible : Introduire une variable correspondante au pas et adapter l’algorithme<strong>en</strong> conséqu<strong>en</strong>ce.– 6 –
3. FONCTIONSFiche élève 3ASoit f la fonction définie sur [0; +∞[ par f (x) = x + √ x.On cherche à créer un algorithme qui permette <strong>de</strong> compléter automatiquem<strong>en</strong>t le tableau <strong>de</strong>valeurs suivant :x 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5y = f (x)Pour cela, on utilise le principe suivant : pour chaque valeur <strong>de</strong> x, on calcule la valeur correspondante<strong>de</strong> y et on augm<strong>en</strong>te la valeur <strong>de</strong> x <strong>de</strong> 0,5 tant que la fin du tableau n’est pasatteinte.Compléter les lignes 6, 8 et 13 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous répon<strong>de</strong> au problème:1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: x PREND_LA_VALEUR 06: TANT_QUE (x.....) FAIRE7: DEBUT_TANT_QUE8: y PREND_LA_VALEUR ............9: AFFICHER "Si x vaut "10: AFFICHER x11: AFFICHER " alors y vaut "12: AFFICHER y13: x PREND_LA_VALEUR ............14: FIN_TANT_QUE15: FIN_ALGORITHME– 7 –
••••••••••3. FONCTIONSFiche élève 3BOn considère la fonction f définie sur [0; 2] par f (x) = x 2√ x dont la courbe est donnée ci<strong>de</strong>ssous:¿Ý Ü ¾Ô ÜOn cherche à déterminer une valeur approchée du réel x 0 tel quef (x 0 ) = 2.On admet que f est strictem<strong>en</strong>t croissante sur [0;2] et que sa courb<strong>en</strong>e conti<strong>en</strong>t pas <strong>de</strong> « trous » .Comme f (0) = 0 et f (2) = 4 √ 2 > 2, on sait que x 0 ∈ [0; 2].¾½¼Çßܼ¾Pour déterminer une valeur approchée <strong>de</strong> x 0 , on utilise la métho<strong>de</strong> dite <strong>de</strong> la « dichotomie »dont le principe consiste à couper l’intervalle <strong>en</strong> <strong>de</strong>ux et à regar<strong>de</strong>r <strong>de</strong> quel côté se situe lasolution par rapport au milieu <strong>de</strong> l’intervalle.1. Étant donné un intervalle [a;b] <strong>de</strong> milieu m et cont<strong>en</strong>ant x 0 (<strong>avec</strong> a 0 et b 2).• Si f (m) < 2, dans quel intervalle se situe x 0 ?¾ ´ÑµÑ Ü ¼• Si f (m) > 2, dans quel intervalle se situe x 0 ? ´Ñµ¾Ü ¼Ñ2. Compléter le tableau suivant :Étape Intervalle <strong>de</strong> départ [a;b] milieu m f (m) < 2 ? Nouvel intervalle [a;b]1 a = 0 ; b = 2 m = 1 OUI a = ; b =2 a = ; b = m = a = ; b =3 a = ; b = m = a = ; b =4 a = ; b = m = a = ; b =– 8 –
3. FONCTIONS3. On cherche à automatiser les calculs grâce à un algorithme. Compléter les lignes 14 et 18pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous répon<strong>de</strong> au problème.1: VARIABLES2: a EST_DU_TYPE NOMBRE3: b EST_DU_TYPE NOMBRE4: m EST_DU_TYPE NOMBRE5: numero_etape EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: a PREND_LA_VALEUR 08: b PREND_LA_VALEUR 29: POUR numero_etape ALLANT_DE 1 A 410: DEBUT_POUR11: m PREND_LA_VALEUR (a+b)/212: SI (m*m*sqrt(m)
3. FONCTIONSFiche élève 3CSoit f la fonction définie sur [0; 3] par f (x) = 10x 2√ x et C f sa courbe représ<strong>en</strong>tative dans unrepère.1. Dériver f et montrer que pour x ∈ ]0; 3], on a f ′ (x) = 25x √ x.2. Calculer le coeffici<strong>en</strong>t directeur <strong>de</strong> la tang<strong>en</strong>te à C f au point d’abscisse 1.3. Calculer le coeffici<strong>en</strong>t directeur <strong>de</strong> la tang<strong>en</strong>te à C f au point d’abscisse 2.4. On cherche à déterminer à l’ai<strong>de</strong> d’un algorithme une valeur approchée à 0,01 près dupremier nombre a tel que le coeffici<strong>en</strong>t directeur <strong>de</strong> la tang<strong>en</strong>te au point d’abscisse a soitsupérieur ou égal à 50.On sait d’après les <strong>première</strong>s questions que a est compris <strong>en</strong>tre 1 et 2. On part donc <strong>de</strong> a = 1et on augm<strong>en</strong>te a <strong>de</strong> 0,01 tant que le coeffici<strong>en</strong>t directeur ne dépasse pas 50.Compléter les lignes 5 et 7 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous répon<strong>de</strong> au problème.1: VARIABLES2: a EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: a PREND_LA_VALEUR 15: TANT_QUE (.....................) FAIRE6: DEBUT_TANT_QUE7: a PREND_LA_VALEUR ..............8: FIN_TANT_QUE9: AFFICHER a10: FIN_ALGORITHME– 10 –
4. STATISTIQUES/PROBABILITÉS4Statistiques/ProbabilitésFiche professeur 4A– Fiche élève correspondante : page 12– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_4A.alg– Contexte (1S/1ES) : Simulation <strong>de</strong> 100000 lancers <strong>de</strong> <strong>de</strong>ux dés - Calcul du gain moy<strong>en</strong> associé- Espérance d’une variable aléatoire– Prolongem<strong>en</strong>t possible : Au lieu d’une simulation <strong>de</strong> 100000 lancers, on peut effectuer <strong>de</strong>sc<strong>en</strong>taines <strong>de</strong> simulation <strong>de</strong> 1000 lancers.Fiche professeur 4B– Fiche élève correspondante : page 13– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_4B.alg– Contexte (1S/1ES/1STL/1STMG) : Simulation d’un QCM - Calcul <strong>de</strong> la moy<strong>en</strong>ne <strong>de</strong>s notesobt<strong>en</strong>ues– Prolongem<strong>en</strong>t possible : Effectuer le calcul <strong>de</strong> la moy<strong>en</strong>ne <strong>de</strong>s notes au sein <strong>de</strong> l’algorithme.Fiche professeur 4C– Fiche élève correspondante : page 14– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_4C.alg– Contexte (1S/1ES/1STL/1STMG) : Simulation <strong>de</strong> naissances - Loi binomialeFiche professeur 4D– Fiche élève correspondante : page 15– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_4D.alg– Contexte (1S/1ES/1STL/1STMG) : Fluctuation loi binomiale - Détermination <strong>avec</strong> un algorithme<strong>de</strong>s <strong>en</strong>tiers a et b.– Prolongem<strong>en</strong>t possible : Détermination <strong>de</strong> l’intervalle <strong>de</strong> fluctuation <strong>en</strong> divisant a et b par lataille <strong>de</strong> l’échantillon.– 11 –
4. STATISTIQUES/PROBABILITÉSFiche élève 4AUn jeu consiste à lancer <strong>de</strong>ux dés, un rouge et un noir. Pour pouvoir jouer il faut payer 1 euro.On gagne 3 euros si la somme <strong>de</strong>s points est supérieure ou égale à 9, 1 euro si la somme <strong>de</strong>spoints est inférieure ou égale à 4 et ri<strong>en</strong> dans les autres cas.On cherche à savoir combi<strong>en</strong> peut-on espérer gagner <strong>en</strong> moy<strong>en</strong>ne si on joue un grand nombre<strong>de</strong> fois à ce jeu. Pour cela, on appelle « gain effectif », la différ<strong>en</strong>ce <strong>en</strong>tre la somme gagnée et lasomme miséePartie A : simulation à l’ai<strong>de</strong> d’un algorithmeOn cherche à établir un algorithme simulant 100000 participations à ce jeu et donnant le gaineffectif moy<strong>en</strong> obt<strong>en</strong>u.1. Compléter les lignes 13 et 17 dans l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> auproblème :1: VARIABLES2: numero_tirage EST_DU_TYPE NOMBRE3: gain_moy<strong>en</strong> EST_DU_TYPE NOMBRE4: resultat EST_DU_TYPE NOMBRE5: somme_gains_effectifs EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: somme_gains_effectifs PREND_LA_VALEUR 08: POUR numero_tirage ALLANT_DE 1 A 1000009: DEBUT_POUR10: resultat PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,6)+ALGOBOX_ALEA_ENT(1,6)11: SI (resultat>=9) ALORS12: DEBUT_SI13: somme_gains_effectifs PREND_LA_VALEUR somme_gains_effectifs+..........14: FIN_SI15: SI (resultat>=5 ET resultat
4. STATISTIQUES/PROBABILITÉSFiche élève 4BUn QCM comporte cinq questions et, pour chaque question, trois réponses sont proposéesdont une seule est exacte. Une bonne réponse rapporte un point, une mauvaise réponse 0.Question 1 : □ Réponse 1 □ Réponse 2 □ Réponse 3Question 2 : □ Réponse 1 □ Réponse 2 □ Réponse 3Question 3 : □ Réponse 1 □ Réponse 2 □ Réponse 3Question 4 : □ Réponse 1 □ Réponse 2 □ Réponse 3Question 5 : □ Réponse 1 □ Réponse 2 □ Réponse 31. Quelles sont les notes minimale et maximale que l’on peut obt<strong>en</strong>ir à ce QCM ?2. On déci<strong>de</strong> <strong>de</strong> simuler 1000 fois le fait <strong>de</strong> répondre au hasard à ce QCM à l’ai<strong>de</strong> <strong>de</strong> l’algorithme<strong>AlgoBox</strong> ci-<strong>de</strong>ssous (pour la simulation, on considère que la bonne réponse à chaquequestion est la <strong>première</strong>) :1: VARIABLES2: note EST_DU_TYPE NOMBRE3: question EST_DU_TYPE NOMBRE4: simulation EST_DU_TYPE NOMBRE5: effectif EST_DU_TYPE LISTE6: reponse_au_hasard EST_DU_TYPE NOMBRE7: DEBUT_ALGORITHME8: POUR note ALLANT_DE ... A ...9: DEBUT_POUR10: effectif[note] PREND_LA_VALEUR 011: FIN_POUR12: POUR simulation ALLANT_DE 1 A 100013: DEBUT_POUR14: note PREND_LA_VALEUR 015: POUR question ALLANT_DE 1 A 516: DEBUT_POUR17: reponse_au_hasard PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,3)18: SI (reponse_au_hasard==1) ALORS19: DEBUT_SI20: note PREND_LA_VALEUR note+121: FIN_SI22: FIN_POUR23: effectif[note] PREND_LA_VALEUR effectif[note]+124: FIN_POUR25: POUR note ALLANT_DE ... A ...26: DEBUT_POUR27: AFFICHER "On a obt<strong>en</strong>u "28: AFFICHER effectif[note]29: AFFICHER " fois la note "30: AFFICHER note31: FIN_POUR32: FIN_ALGORITHMEa) Compléter les lignes 8 et 25 <strong>de</strong> l’algorithme.b) Obti<strong>en</strong>t-on toujours les mêmes résultats <strong>en</strong> exécutant l’algorithme ?3. Une exécution <strong>de</strong> l’algorithme a donné les résultats suivants :***Algorithme lancé***On a obt<strong>en</strong>u 126 fois la note 0On a obt<strong>en</strong>u 324 fois la note 1On a obt<strong>en</strong>u 343 fois la note 2On a obt<strong>en</strong>u 166 fois la note 3On a obt<strong>en</strong>u 37 fois la note 4On a obt<strong>en</strong>u 4 fois la note 5***Algorithme terminé***a) Quelle est la moy<strong>en</strong>ne <strong>de</strong>s notes obt<strong>en</strong>ues lors <strong>de</strong> cette simulation ?b) Le calcul <strong>de</strong> l’écart-type donne σ ≈ 1,036. Parmi les 1000 notes obt<strong>en</strong>ues lors <strong>de</strong> cettesimulation, quelle est la proportion <strong>de</strong> celles comprises dans l’intervalle [ ¯x − σ ; ¯x + σ] ?– 13 –
4. STATISTIQUES/PROBABILITÉSFiche élève 4COn s’intéresse au nombre d’<strong>en</strong>fants d’une famille. On suppose qu’il n’y a pas <strong>de</strong> naissancesmultiples et qu’il y a équiprobabilité pour la naissance d’un garçon ou d’une fille.Partie AOn suppose que la famille a eu 4 <strong>en</strong>fants et on note X le nombre <strong>de</strong> filles.1. Justifier que X suit une loi binomiale dont on donnera les paramètres.2. Calculer la probabilité que la famille ait eu au moins une fille.Partie BOn cherche à déterminer le nombre minimum d’<strong>en</strong>fants que la famille <strong>de</strong>vrait avoir pour quela probabilité d’avoir au moins une fille soit supérieure à 0.999 .1. On note n le nombre d’<strong>en</strong>fants. Déterminer, <strong>en</strong> fonction <strong>de</strong> n, la probabilité d’avoir au moinsune fille.2. Montrer que répondre au problème posé revi<strong>en</strong>t à déterminer le premier <strong>en</strong>tier n tel que0.5 n 0.001.3. Compléter la ligne pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous permette <strong>de</strong> déterminer cet<strong>en</strong>tier. (rappel : pow(0.5,n) permet <strong>de</strong> calculer 0.5 n )1: VARIABLES2: n EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: n PREND_LA_VALEUR 15: TANT_QUE (pow(0.5,n)...........) FAIRE6: DEBUT_TANT_QUE7: n PREND_LA_VALEUR n+18: FIN_TANT_QUE9: AFFICHER n10: FIN_ALGORITHME– 14 –
4. STATISTIQUES/PROBABILITÉSFiche élève 4DOn prélève un échantillon dans une population au sein <strong>de</strong> laquelle on suppose que la proportiond’un certain caractère est p.Le prélèvem<strong>en</strong>t <strong>de</strong> l’échantillon étant assimilé à un tirage <strong>avec</strong> remise, le nombre X d’individus<strong>de</strong> l’échantillon ayant le caractère <strong>en</strong> question suit alors la loi binomiale <strong>de</strong> paramètres n et p,où n est égal à la taille <strong>de</strong> l’échantillon.Conformém<strong>en</strong>t au programme, on note :– a, le plus petit <strong>en</strong>tier tel que p(X a) > 0,025 ;– b, le plus petit <strong>en</strong>tier tel que p(X b) 0,975 ;On cherche à déterminer les valeurs <strong>de</strong> a et b à l’ai<strong>de</strong> <strong>de</strong> l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous quiutilise :– la comman<strong>de</strong> ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) permettant <strong>de</strong> calculerp(X = k) ;– une variable somme qui, au fur et à mesure que k est augm<strong>en</strong>té <strong>de</strong> 1, conti<strong>en</strong>t p(X k).Compléter la ligne 21 <strong>de</strong> l’algorithme afin que celui-ci permette <strong>de</strong> déterminer la valeur <strong>de</strong> b.1: VARIABLES2: taille_echantillon EST_DU_TYPE NOMBRE3: p EST_DU_TYPE NOMBRE4: somme EST_DU_TYPE NOMBRE5: k EST_DU_TYPE NOMBRE6: a EST_DU_TYPE NOMBRE7: b EST_DU_TYPE NOMBRE8: DEBUT_ALGORITHME9: LIRE taille_echantillon10: LIRE p11: k PREND_LA_VALEUR 012: somme PREND_LA_VALEUR ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k)13: TANT_QUE (somme
5. SUITES NUMÉRIQUES5Suites numériquesRemarque préalable :Les algorithmes proposés dans les sujets du baccalauréat ne semblant pas faire appel aux structures<strong>de</strong> données du type liste, le choix a été fait aussi <strong>de</strong> ne pas les utiliser dans ce chapitre.Il est néanmoins possible d’adapter les algorithmes proposés ici <strong>en</strong> utilisant <strong>de</strong>s listes<strong>AlgoBox</strong> dont la syntaxe est très proche du formalisme utilisé <strong>en</strong> mathématiques pour lessuites numériques.Fiche professeur 5A– Fiche élève correspondante : page 18– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5A.alg– Contexte (1S/1ES/1STL/1STMG) : Calcul du terme <strong>de</strong> rang n d’une suite explicite.– Prolongem<strong>en</strong>t possible : Faire afficher tous les termes jusqu’au rang n à l’ai<strong>de</strong> d’une boucle.Fiche professeur 5B– Fiche élève correspondante : page 18– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5B.alg– Contexte (1S/1ES/1STL/1STMG) : Reconnaitre une suite explicite à partir d’un algorithme.Fiche professeur 5C– Fiche élève correspondante : page 18– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5C.alg– Contexte (1S/1ES) : Calcul du terme <strong>de</strong> rang n d’une suite récurr<strong>en</strong>te.– Prolongem<strong>en</strong>t possible : Faire afficher tous les termes jusqu’au rang n.Fiche professeur 5D– Fiche élève correspondante : page 19– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5D.alg– Contexte (1S/1ES/1STL/1STMG) : Reconnaitre une suite récurr<strong>en</strong>te à partir d’un algorithme.– 16 –
5. SUITES NUMÉRIQUESFiche professeur 5E– Fiche élève correspondante : page 19– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5E.alg– Contexte (1S/1ES/1STMG) : Détermination du premier rang n tel que U n 20 à l’ai<strong>de</strong> d’uneboucle TANT_QUE.Fiche professeur 5F– Fiche élève correspondante : page 20– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5F.alg– Contexte (1S/1ES/1STMG) : Détermination du premier rang n tel que U n 50 à l’ai<strong>de</strong> d’uneboucle TANT_QUE.Fiche professeur 5G– Fiche élève correspondante : page 21– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5G.alg– Contexte (1S/1ES/1STMG) : Utilisation d’un algorithme pour comparer l’évolution <strong>de</strong>s termesd’une suite arithmétique <strong>avec</strong> ceux d’une suite géométrique.– Prolongem<strong>en</strong>t possible : Modifier l’algorithme afin <strong>de</strong> déterminer directem<strong>en</strong>t à l’ai<strong>de</strong> d’unTANT_QUE l’année à partir <strong>de</strong> laquelle la proposition 2 <strong>de</strong>vi<strong>en</strong>t la meilleure.Fiche professeur 5H– Fiche élève correspondante : page 22– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_5H.alg– Contexte (1S/1ES/1STL/1STMG) : Analyser le fonctionnem<strong>en</strong>t d’un algorithme - compr<strong>en</strong>drecomm<strong>en</strong>t modéliser <strong>de</strong> façon algorithmique le calcul d’une somme.– 17 –
5. SUITES NUMÉRIQUESFiche élève 5ASoit (U n ) la suite définie par U n =1. Calculer U 0 , U 3 et U n+1 .2nn + 3 .2. Compléter la ligne 6 <strong>de</strong> l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous pour qu’il permette <strong>de</strong> calculer U naprès avoir <strong>en</strong>tré n.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE n6: U PREND_LA_VALEUR ................7: AFFICHER U8: FIN_ALGORITHMEFiche élève 5BL’algorithme ci-<strong>de</strong>ssous permet <strong>de</strong> calculer le terme <strong>de</strong> rang n d’une suite (U n ) définie <strong>de</strong> façonexplicite.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE n6: U PREND_LA_VALEUR n/(n+1)7: AFFICHER U8: FIN_ALGORITHME1. Déterminer U n <strong>en</strong> fonction <strong>de</strong> n.2. Calculer U 9 et U n+1 .Fiche élève 5CSoit (U n ) la suite définie par U n+1 = 5 − 3U n et U 0 = 1 .1. Calculer U 0 , U 1 et U 2 .2. Compléter la ligne 10 <strong>de</strong> l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous pour qu’il permette <strong>de</strong> calculerU n après avoir <strong>en</strong>tré n.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: i EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: U PREND_LA_VALEUR 17: LIRE n8: POUR i ALLANT_DE 1 A n9: DEBUT_POUR10: U PREND_LA_VALEUR ...............11: FIN_POUR12: AFFICHER U13: FIN_ALGORITHME– 18 –
5. SUITES NUMÉRIQUESFiche élève 5DL’algorithme ci-<strong>de</strong>ssous permet <strong>de</strong> calculer le terme <strong>de</strong> rang n d’une suite (U n ) définie <strong>de</strong> façonrécurr<strong>en</strong>te. (U 0 étant le premier terme <strong>de</strong> la suite)1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: i EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: U PREND_LA_VALEUR 27: LIRE n8: POUR i ALLANT_DE 1 A n9: DEBUT_POUR10: U PREND_LA_VALEUR 4*U-311: FIN_POUR12: AFFICHER U13: FIN_ALGORITHME1. Déduire <strong>de</strong> l’algorithme la valeur <strong>de</strong> U 0 et l’expression <strong>de</strong> U n+1 <strong>en</strong> fonction <strong>de</strong> U n .2. Calculer U 1 et U 2 .Fiche élève 5EUn produit coûte actuellem<strong>en</strong>t 10 euros. Il est prévu que son prix augm<strong>en</strong>te <strong>de</strong> 8 % par an.On pose U 0 = 10 et on note U n le prix prévu du produit au bout <strong>de</strong> n années.1. Comm<strong>en</strong>t passe-t-on du prix d’une année au prix <strong>de</strong> l’année suivante ?2. La suite (U n ) est-elle arithmétique ou géométrique ?3. On cherche à déterminer au bout <strong>de</strong> combi<strong>en</strong> d’années le prix du produit aura doublé àl’ai<strong>de</strong> <strong>de</strong> l’algorithme ci-<strong>de</strong>ssous :1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: n PREND_LA_VALEUR 06: U PREND_LA_VALEUR 107: TANT_QUE (U.........) FAIRE8: DEBUT_TANT_QUE9: U PREND_LA_VALEUR U*1.0810: n PREND_LA_VALEUR n+111: FIN_TANT_QUE12: AFFICHER n13: FIN_ALGORITHMECompléter la ligne 7 pour que l’algorithme répon<strong>de</strong> à la question.– 19 –
5. SUITES NUMÉRIQUESFiche élève 5FLa valeur d’une action est actuellem<strong>en</strong>t <strong>de</strong> 100 euros. Il est prévu que cette valeur baisse<strong>de</strong> 10 % par mois.On pose U 0 = 100 et on note U n la valeur <strong>de</strong> l’action au bout <strong>de</strong> n mois. On cherche à déterminerau bout <strong>de</strong> combi<strong>en</strong> <strong>de</strong> mois le cours <strong>de</strong> l’action aura diminué <strong>de</strong> moitié à l’ai<strong>de</strong> <strong>de</strong>l’algorithme ci-<strong>de</strong>ssous :1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: n PREND_LA_VALEUR 06: U PREND_LA_VALEUR 1007: TANT_QUE (U.............) FAIRE8: DEBUT_TANT_QUE9: U PREND_LA_VALEUR U*...........10: n PREND_LA_VALEUR n+111: FIN_TANT_QUE12: AFFICHER n13: FIN_ALGORITHMECompléter les lignes 7 et 9 pour que l’algorithme répon<strong>de</strong> à la question.– 20 –
5. SUITES NUMÉRIQUESFiche élève 5GUn salarié a reçu <strong>de</strong>ux propositions <strong>de</strong> salaire.1. Proposition 1 : La <strong>première</strong> année, un salaire annuel <strong>de</strong> 20000 euros puis chaque année uneaugm<strong>en</strong>tation fixe <strong>de</strong> 450 euros.On pose U 0 = 20000, U 1 le salaire au bout d’un an, ..., U n le salaire au bout <strong>de</strong> n années.a) Calculer U 1 et U 2 .b) Préciser si (U n ) est arithmétique ou géométrique et exprimer U n <strong>en</strong> fonction <strong>de</strong> n.2. Proposition 2 : La <strong>première</strong> année, un salaire annuel <strong>de</strong> 19900 euros puis chaque année uneaugm<strong>en</strong>tation <strong>de</strong> 2%.On pose V 0 = 19900, V 1 le salaire au bout d’un an, ..., V n le salaire au bout <strong>de</strong> n années.a) Calculer V 1 et V 2 .b) Préciser si (V n ) est arithmétique ou géométrique et exprimer V n <strong>en</strong> fonction <strong>de</strong> n.3. Au début la proposition 1 semble meilleure que la proposition 2 pour le salarié. Afin <strong>de</strong>déterminer si cela reste le cas dans la durée, on cherche à construire un algorithme quiprécise la proposition donnant le meilleur salaire annuel pour les 20 prochaines années.Compléter les lignes 10, 11 et 15 ci-<strong>de</strong>ssous pour que l’algorithme <strong>AlgoBox</strong> proposé répon<strong>de</strong>à la question.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: U EST_DU_TYPE NOMBRE4: V EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: U PREND_LA_VALEUR 200007: V PREND_LA_VALEUR 199008: POUR n ALLANT_DE 1 A 209: DEBUT_POUR10: U PREND_LA_VALEUR U+..........11: V PREND_LA_VALEUR V*..........12: AFFICHER "Au bout <strong>de</strong> la "13: AFFICHER n14: AFFICHER " ième année, "15: SI (..........) ALORS16: DEBUT_SI17: AFFICHER "la proposition 1 est la meilleure"18: FIN_SI19: SINON20: DEBUT_SINON21: AFFICHER "la proposition 2 est la meilleure"22: FIN_SINON23: FIN_POUR24: FIN_ALGORITHME– 21 –
5. SUITES NUMÉRIQUESFiche élève 5HOn considère l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous :1: VARIABLES2: somme EST_DU_TYPE NOMBRE3: n EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: somme PREND_LA_VALEUR 06: POUR n ALLANT_DE 1 A 1007: DEBUT_POUR8: somme PREND_LA_VALEUR somme+sqrt(n)9: FIN_POUR10: AFFICHER somme11: FIN_ALGORITHME1. Compléter les phrases ci-<strong>de</strong>ssous :– Quand n vaut 1 et que la ligne 8 est exécutée, la variable somme a pour nouvelle valeur– Quand n vaut 2 et que la ligne 8 est exécutée, la variable somme a pour nouvelle valeur– Quand n vaut 3 et que la ligne 8 est exécutée, la variable somme a pour nouvelle valeur2. Que permet <strong>de</strong> calculer cet algorithme ?– 22 –
6. GÉOMÉTRIE6GéométrieFiche professeur 6A– Fiche élève correspondante : page 24– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_6A.alg– Contexte (1S/1STL) : Algorithme <strong>de</strong> « balayage » <strong>de</strong> la distance <strong>en</strong>tre un point fixe et un pointvariable sur un segm<strong>en</strong>t <strong>de</strong> droite. Le but, d’un point <strong>de</strong> vue algorithmique, est d’habituerles élèves aux algorithmes <strong>de</strong> « balayage » (qui figur<strong>en</strong>t déjà au programme à propos <strong>de</strong>sfonctions) et <strong>de</strong> s’intéresser aussi à leur fiabilité. D’un point <strong>de</strong> vue mathématique, l’activitépropose une initiation à la notion <strong>de</strong> distance d’un point à une droite.– Prolongem<strong>en</strong>t possible : Modifier l’algorithme pour qu’il détermine la valeur minimale <strong>de</strong>toutes les distances calculées. On peut alors créer un algorithme classique <strong>de</strong> recherche d’unminimum.Fiche professeur 6B– Fiche élève correspondante : page 25– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_6B.alg– Contexte (1S) : Détermination <strong>de</strong>s points à coordonnées <strong>en</strong>tières sur un segm<strong>en</strong>t.– Prolongem<strong>en</strong>t possible : Proposer un <strong>de</strong>uxième algorithme basé sur un double balayage <strong>en</strong> xet <strong>en</strong> y et comparer le coût <strong>en</strong> opérations <strong>de</strong>s <strong>de</strong>ux algorithmes.– 23 –
6. GÉOMÉTRIEFicheÝélève¾Ü·6A¾Ñ·Ç ÑDans un repère orthonormé, on considère la droite D d’équation y = −2x + 5 et pour tout réelm compris <strong>en</strong>tre 0 et 2.5, on note M le point <strong>de</strong> la droite D d’abscisse m.•Å ÑUn élève prét<strong>en</strong>d que la distance OM ne peut jamais être inférieure à √ 5 et on cherche à vérifiercette affirmation.Partie A : approche expérim<strong>en</strong>taleOn cherche à établir un algorithme qui vérifie expérim<strong>en</strong>talem<strong>en</strong>t l’affirmation <strong>de</strong> l’élève. Pourcela, on utilise la métho<strong>de</strong> dite du « balayage » :Pour chaque valeur <strong>de</strong> m (<strong>en</strong> partant <strong>de</strong> 0) on calcule la distance OM correspondante et onaugm<strong>en</strong>te la valeur <strong>de</strong> m <strong>de</strong> 0.01 tant que m n’a pas atteint 2.5.1. Montrer que, pour tout m, la distance OM est égale à √ 5m 2 − 20m + 25.2. Compléter les lignes 6, 8 et 13 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous permette <strong>de</strong> détecters’il existe un point M pour lequel la distance OM est inférieure à √ 5.1: VARIABLES2: m EST_DU_TYPE NOMBRE3: distance EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: m PREND_LA_VALEUR 06: TANT_QUE (m
6. GÉOMÉTRIEFiche élève 6BDurant une année un individu a acheté n DVD valant 15 euros pièce et p livres valant 22 eurospièce pour un montant total <strong>de</strong> 362 euros. On cherche à déterminer les valeurs possibles <strong>de</strong> net p.Première analyse du problème :1. Quelle relation lie n et p ?2. Justifier que n est nécessairem<strong>en</strong>t inférieur à 25.Approche graphique :1. Dans le plan muni d’un repère, on considère les points d’abscisse n et d’ordonnée p pouvantrépondre au problème. Justifier que ces points sont situés sur une droite D dont on donneraune équation.2. La droite D est représ<strong>en</strong>tée ci-<strong>de</strong>ssous :15105⃗jO⃗ı5 10 15 20 25D’après le graphique, il semble que que l’on puisse avoir n = 5 et p = 13.Est-ce réellem<strong>en</strong>t le cas ?Approche algorithmique :Pour déterminer, <strong>de</strong> façon plus rigoureuse, les valeurs possibles <strong>de</strong> n et p, on cherche à utiliserun algorithme basé sur le principe suivant : Pour toutes les abscisses <strong>en</strong>tières x possibles surla droite D, on calcule l’ordonnée y du point <strong>de</strong> la droite d’abscisse x et, si y est un <strong>en</strong>tier, on affiche x.Compléter les lignes 5, 7 et 8 <strong>de</strong> l’algorithme <strong>AlgoBox</strong> ci-contre pour qu’il répon<strong>de</strong> au problème.(Note technique : pour déterminer si un nombre est un <strong>en</strong>tier, on peut utiliser la fonctionpartie <strong>en</strong>tière dont la syntaxe est floor() dans <strong>AlgoBox</strong>.)1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: POUR x ALLANT_DE ... A ....6: DEBUT_POUR7: y PREND_LA_VALEUR ............................8: SI (..................) ALORS9: DEBUT_SI10: AFFICHER x11: FIN_SI12: FIN_POUR13: FIN_ALGORITHME– 25 –
7. TRIGONOMÉTRIE7TrigonométrieFiche professeur 7A– Fiche élève correspondante : page 27– Fichier <strong>AlgoBox</strong> associé (algorithme complet) : algo_7A.alg– Contexte (1S/1STL) : Détermination <strong>de</strong> la mesure principale d’une mesure <strong>de</strong> la forme nπ d<strong>avec</strong> n > 0 et d > 0 - Utilisation d’un TANT QUE.– Prolongem<strong>en</strong>t possible : Déterminer le même g<strong>en</strong>re d’algorithme <strong>avec</strong> n < 0 et d > 0 ou concevoirun algorithme qui fonctionne dans tous les cas. On peut aussi créer un algorithme quipermette <strong>de</strong> trouver le résultat directem<strong>en</strong>t sans boucle (plus difficile).– 26 –
7. TRIGONOMÉTRIEFiche élève 7AOn cherche à déterminer la mesure principale d’un angle dont une mesure est <strong>de</strong> la forme nπ d(<strong>avec</strong> n > 0 et d > 0) <strong>en</strong> <strong>en</strong>levant 2π tant que cela est nécessaire.1. Compléter le calcul suivant : nπ ( )π− 2π = .d d2. Compléter les lignes 14 et 16 pour que l’algorithme <strong>AlgoBox</strong> ci-<strong>de</strong>ssous répon<strong>de</strong> à la question.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: d EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE n6: LIRE d7: SI (n>0 ET d>0 ) ALORS8: DEBUT_SI9: AFFICHER "mesure principale <strong>de</strong> "10: AFFICHER n11: AFFICHER "*pi/"12: AFFICHER d13: AFFICHER " : "14: TANT_QUE (............) FAIRE15: DEBUT_TANT_QUE16: n PREND_LA_VALEUR ......................17: FIN_TANT_QUE18: AFFICHER n19: AFFICHER "*pi/"20: AFFICHER d21: FIN_SI22: FIN_ALGORITHME– 27 –
Deuxième partieAnnexes– 28 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXAStructures algorithmiques <strong>de</strong> base<strong>avec</strong> <strong>AlgoBox</strong>Les activités proposées dans cette annexe permett<strong>en</strong>t <strong>de</strong> s’initier aux structures algorithmiques<strong>de</strong> base prévues au programme quelque soit la filière (aucun pré-requis mathématique spécifiqu<strong>en</strong>’est nécessaire).– 29 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXA.1 Variables et affectationsLes variables <strong>en</strong> algorithmique– Les variables algorithmiques peuv<strong>en</strong>t servir à stocker <strong>de</strong>s données <strong>de</strong> différ<strong>en</strong>ts types,mais nous nous cont<strong>en</strong>terons ici d’utiliser <strong>de</strong>s variables du type NOMBRE.– La valeur d’une variable peut changer au fil <strong>de</strong>s instructions <strong>de</strong> l’algorithme.– Les opérations sur les variables s’effectu<strong>en</strong>t ligne après ligne et les unes après les autres.– Quand l’ordinateur exécute une ligne du type mavariable PREND_LA_VALEUR un calcul,il effectue d’abord le calcul et stocke <strong>en</strong>suite le résultat dans mavariable.◮ Activité n°1On considère l’algorithme suivant :1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: z EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: x PREND_LA_VALEUR 27: y PREND_LA_VALEUR 38: z PREND_LA_VALEUR x+y9: FIN_ALGORITHMEAprès exécution <strong>de</strong> l’algorithme :– La variable x conti<strong>en</strong>t la valeur :– La variable y conti<strong>en</strong>t la valeur :– La variable z conti<strong>en</strong>t la valeur :◮ Activité n°2On considère l’algorithme suivant :1: VARIABLES2: x EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: x PREND_LA_VALEUR 25: x PREND_LA_VALEUR x+16: FIN_ALGORITHMEAprès exécution <strong>de</strong> l’algorithme :– La variable x conti<strong>en</strong>t la valeur :◮ Activité n°3Ajoutons la ligne « x PREND_LA_VALEUR 4*x » à la fin du co<strong>de</strong> précéd<strong>en</strong>t. Ce qui donne :1: VARIABLES2: x EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: x PREND_LA_VALEUR 25: x PREND_LA_VALEUR x+16: x PREND_LA_VALEUR 4*x7: FIN_ALGORITHMEAprès exécution <strong>de</strong> l’algorithme :– La variable x conti<strong>en</strong>t la valeur :– 30 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX◮ Activité n°4On considère l’algorithme suivant :1: VARIABLES2: A EST_DU_TYPE NOMBRE3: B EST_DU_TYPE NOMBRE4: C EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: A PREND_LA_VALEUR 57: B PREND_LA_VALEUR 38: C PREND_LA_VALEUR A+B9: B PREND_LA_VALEUR B+A10: A PREND_LA_VALEUR C11: FIN_ALGORITHMEAprès exécution <strong>de</strong> l’algorithme :– La variable A conti<strong>en</strong>t la valeur :– La variable B conti<strong>en</strong>t la valeur :– La variable C conti<strong>en</strong>t la valeur :◮ Activité n°5On considère l’algorithme suivant :1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: z EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: LIRE x7: y PREND_LA_VALEUR x-28: z PREND_LA_VALEUR -3*y-49: AFFICHER z10: FIN_ALGORITHMEOn cherche maint<strong>en</strong>ant à obt<strong>en</strong>ir un algorithme équival<strong>en</strong>t sans utiliser la variable y. Compléterla ligne 6 dans l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème.1: VARIABLES2: x EST_DU_TYPE NOMBRE3: z EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE x6: z PREND_LA_VALEUR ....................7: AFFICHER z8: FIN_ALGORITHME– 31 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXA.2 Instructions conditionnellesSI...ALORS...SINONComme nous l’avons vu ci-<strong>de</strong>ssus, un algorithme permet d’exécuter une liste d’instructionsles unes à la suite <strong>de</strong>s autres. Mais on peut aussi "dire" à un algorithme <strong>de</strong> n’exécuter <strong>de</strong>sinstructions que si une certaine condition est remplie. Cela se fait grâce à la comman<strong>de</strong>SI...ALORS :SI...ALORSDEBUT_SI...FIN_SIIl est aussi possible d’indiquer <strong>en</strong> plus à l’algorithme <strong>de</strong> traiter le cas où la condition n’estpas vérifiée. On obti<strong>en</strong>t alors la structure suivante :SI...ALORSDEBUT_SI...FIN_SISINONDEBUT_SINON...FIN_SINON◮ Activité n°6On cherche à créer un algorithme qui <strong>de</strong>man<strong>de</strong> un nombre à l’utilisateur et qui affiche la racinecarrée <strong>de</strong> ce nombre s’il est positif. Compléter la ligne 6 dans l’algorithme ci-<strong>de</strong>ssous pour qu’ilrépon<strong>de</strong> au problème.1: VARIABLES2: x EST_DU_TYPE NOMBRE3: racine EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE x6: SI (.........) ALORS7: DEBUT_SI8: racine PREND_LA_VALEUR sqrt(x)9: AFFICHER racine10: FIN_SI11: FIN_ALGORITHME◮ Activité n°7On cherche à créer un algorithme qui <strong>de</strong>man<strong>de</strong> à l’utilisateur d’<strong>en</strong>trer <strong>de</strong>ux nombres (stockésdans les variables x et y) et qui affiche le plus grand <strong>de</strong>s <strong>de</strong>ux. Compléter les ligne 9 et 13 dansl’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème.1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE x6: LIRE y7: SI (x>y) ALORS8: DEBUT_SI9: AFFICHER .......10: FIN_SI11: SINON12: DEBUT_SINON13: AFFICHER ......14: FIN_SINON15: FIN_ALGORITHME– 32 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX◮ Activité n°8On considère l’algorithme suivant :1: VARIABLES2: A EST_DU_TYPE NOMBRE3: B EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: A PREND_LA_VALEUR 16: B PREND_LA_VALEUR 37: SI (A>0) ALORS8: DEBUT_SI9: A PREND_LA_VALEUR A+110: FIN_SI11: SI (B>4) ALORS12: DEBUT_SI13: B PREND_LA_VALEUR B-114: FIN_SI15: FIN_ALGORITHMEAprès exécution <strong>de</strong> l’algorithme :– La variable A conti<strong>en</strong>t la valeur :– La variable B conti<strong>en</strong>t la valeur :◮ Activité n°9On cherche à concevoir un algorithme correspondant au problème suivant :– on <strong>de</strong>man<strong>de</strong> à l’utilisateur d’<strong>en</strong>trer un nombre (qui sera représ<strong>en</strong>té par la variable x)– si le nombre <strong>en</strong>tré est différ<strong>en</strong>t <strong>de</strong> 1, l’algorithme doit stocker dans une variable y la valeur<strong>de</strong> 1/(x-1) et afficher la valeur <strong>de</strong> y (note : la condition x différ<strong>en</strong>t <strong>de</strong> 1 s’exprime <strong>avec</strong> leco<strong>de</strong> x!=1). On ne <strong>de</strong>man<strong>de</strong> pas <strong>de</strong> traiter le cas contraire.Compléter l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème.1: VARIABLES2: x EST_DU_TYPE NOMBRE3: y EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: LIRE ......6: SI (........) ALORS7: DEBUT_SI8: ....... PREND_LA_VALEUR .......9: AFFICHER .......10: FIN_SI11: FIN_ALGORITHME– 33 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXA.3 BouclesBoucles POUR...DE...A– Les boucles permett<strong>en</strong>t <strong>de</strong> répéter <strong>de</strong>s instructions autant <strong>de</strong> fois que l’on souhaite.– Lorsqu’on connait par avance le nombre <strong>de</strong> fois que l’on veut répéter les instructions, onutilise une boucle du type POUR...DE...A dont la structure est la suivante :POUR...ALLANT_DE...A...DEBUT_POUR...FIN_POUR– Exemple : l’algorithme ci-<strong>de</strong>ssous permet d’afficher la racine carrée <strong>de</strong> tous les <strong>en</strong>tiers <strong>de</strong>1 jusqu’à 50.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: racine EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: POUR n ALLANT_DE 1 A 506: DEBUT_POUR7: racine PREND_LA_VALEUR sqrt(n)8: AFFICHER racine9: FIN_POUR10: FIN_ALGORITHMELa variable n est appelée « compteur <strong>de</strong> la boucle ».– Remarques :– La variable servant <strong>de</strong> compteur pour la boucle doit être du type NOMBRE et doit être déclarée préalablem<strong>en</strong>t (commetoutes les variables).– Dans <strong>AlgoBox</strong>, cette variable est automatiquem<strong>en</strong>t augm<strong>en</strong>tée <strong>de</strong> 1 à chaque fois.– On peut utiliser la valeur du compteur pour faire <strong>de</strong>s calculs à l’intérieur <strong>de</strong> la boucle, mais les instructions comprises<strong>en</strong>tre DEBUT_POUR et FIN_POUR ne doiv<strong>en</strong>t <strong>en</strong> aucun cas modifier la valeur <strong>de</strong> la variable qui sert <strong>de</strong> compteur.◮ Activité n°10On cherche à concevoir un algorithme qui affiche, grâce à une boucle POUR...DE...A, les résultats<strong>de</strong>s calculs suivants : 8*1 ; 8*2 ; 8*3 ; 8*4 ; ... jusqu’à 8*10 .La variable n sert <strong>de</strong> compteur à la boucle et la variable produit sert à stocker et afficherles résultats. Compléter les lignes 5 et 7 dans l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> auproblème :1: VARIABLES2: n EST_DU_TYPE NOMBRE3: produit EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: POUR n ALLANT_DE .... A .....6: DEBUT_POUR7: produit PREND_LA_VALEUR .......8: AFFICHER produit9: FIN_POUR10: FIN_ALGORITHME◮ Activité n°11On considère l’algorithme suivant :1: VARIABLES2: n EST_DU_TYPE NOMBRE3: somme EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: somme PREND_LA_VALEUR 06: POUR n ALLANT_DE 1 A 1007: DEBUT_POUR8: somme PREND_LA_VALEUR somme+n9: FIN_POUR10: AFFICHER somme11: FIN_ALGORITHME– 34 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXCompléter les phrases suivantes :– Après exécution <strong>de</strong> la ligne 5, La variable somme conti<strong>en</strong>t la valeur :– Lorsque le compteur n <strong>de</strong> la boucle vaut 1 et après exécution du calcul ligne 8, la variablesomme vaut :– Lorsque le compteur n <strong>de</strong> la boucle vaut 2 et après exécution du calcul ligne 8, la variablesomme vaut :– Lorsque le compteur n <strong>de</strong> la boucle vaut 3 et après exécution du calcul ligne 8, la variablesomme vaut :Que permet <strong>de</strong> calculer cet algorithme ?◮ Activité n°12Compléter les lignes 6 et 8 <strong>de</strong> l’algorithme ci-<strong>de</strong>ssous pour qu’il permette <strong>de</strong> calculer la somme5 2 + 6 2 + 7 2 + ··· + 24 2 + 25 2 .1: VARIABLES2: n EST_DU_TYPE NOMBRE3: somme EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: somme PREND_LA_VALEUR 06: POUR n ALLANT_DE .... A ......7: DEBUT_POUR8: somme PREND_LA_VALEUR somme+......9: FIN_POUR10: AFFICHER somme11: FIN_ALGORITHME– 35 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOXBoucles TANT QUE...– Il n’est pas toujours possible <strong>de</strong> connaitre par avance le nombre <strong>de</strong> répétitions nécessairesà un calcul. Dans ce cas là, il est possible d’avoir recours à la structure TANT QUE... quise prés<strong>en</strong>te <strong>de</strong> la façon suivante :TANT_QUE...FAIREDEBUT_TANT_QUE...FIN_TANT_QUECette structure <strong>de</strong> boucle permet <strong>de</strong> répéter une série d’instructions (comprises <strong>en</strong>tre DE-BUT_TANT_QUE et FIN_TANT_QUE) tant qu’une certaine condition est vérifiée.– Exemple : Comm<strong>en</strong>t savoir ce qu’il reste si on <strong>en</strong>lève 25 autant <strong>de</strong> fois que l’on peut aunombre 583 ? Pour cela on utilise une variable n, qui conti<strong>en</strong>t 583 au début, à laquelle on<strong>en</strong>lève 25 tant que c’est possible, c’est à dire tant que n est supérieur ou égal à 25.1: VARIABLES2: n EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: n PREND_LA_VALEUR 5835: TANT_QUE (n>=25) FAIRE6: DEBUT_TANT_QUE7: n PREND_LA_VALEUR n-258: FIN_TANT_QUE9: AFFICHER n10: FIN_ALGORITHME– Remarques :– Si la condition du TANT QUE... est fausse dès le début, les instructions <strong>en</strong>tre DEBUT_TANT_QUE et FIN_TANT_QUE ne sontjamais exécutées (la structure TANT QUE ne sert alors strictem<strong>en</strong>t à ri<strong>en</strong>).– Il est indisp<strong>en</strong>sable <strong>de</strong> s’assurer que la condition du TANT QUE... finisse par être vérifiée (le co<strong>de</strong> <strong>en</strong>tre DEBUT_TANT_QUEet FIN_TANT_QUE doit r<strong>en</strong>dre vraie la condition tôt ou tard), sans quoi l’algorithme ne pourra pas fonctionner.◮ Activité n°13Un individu a emprunté à un ami une somme <strong>de</strong> 2500 euros (prêt sans intérêts). Pour rembourserson ami, il prévoit <strong>de</strong> lui remettre 110 euros par mois. Mais comme cela ne correspondpas à un nombre pile <strong>de</strong> mois, il se <strong>de</strong>man<strong>de</strong> quel sera le montant à rembourser le <strong>de</strong>rniermois.Compléter la ligne 5 dans l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème :1: VARIABLES2: montant EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: montant PREND_LA_VALEUR 25005: TANT_QUE (............) FAIRE6: DEBUT_TANT_QUE7: montant PREND_LA_VALEUR montant-1108: FIN_TANT_QUE9: AFFICHER montant10: FIN_ALGORITHME◮ Activité n°14On cherche à connaître le plus petit <strong>en</strong>tier N tel que 2 N soit supérieur ou égal à 10000. Pourrésoudre ce problème <strong>de</strong> façon algorithmique :– On utilise une variable N à laquelle on donne au début la valeur 1.– On augm<strong>en</strong>te <strong>de</strong> 1 la valeur <strong>de</strong> N tant que 2 N n’est pas supérieur ou égal à 10000.Une structure TANT QUE est particulièrem<strong>en</strong>t adaptée à ce g<strong>en</strong>re <strong>de</strong> problème car on ne saitpas a priori combi<strong>en</strong> <strong>de</strong> calculs seront nécessaires.Compléter les lignes 5 et 7 <strong>de</strong> l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème :(remarque : pow(2,N) est le co<strong>de</strong> <strong>AlgoBox</strong> pour calculer 2 N )– 36 –
ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX1: VARIABLES2: N EST_DU_TYPE NOMBRE3: DEBUT_ALGORITHME4: N PREND_LA_VALEUR 15: TANT_QUE (pow(2,N).......) FAIRE6: DEBUT_TANT_QUE7: N PREND_LA_VALEUR .......8: FIN_TANT_QUE9: AFFICHER N10: FIN_ALGORITHME◮ Activité n°15On considère le problème suivant :– On lance une balle d’une hauteur initiale <strong>de</strong> 300 cm.– On suppose qu’à chaque rebond, la balle perd 10% <strong>de</strong> sa hauteur (la hauteur est donc multipliéepar 0.9 à chaque rebond).– On cherche à savoir le nombre <strong>de</strong> rebonds nécessaire pour que la hauteur <strong>de</strong> la balle soitinférieure ou égale à 10 cm.Compléter les lignes 7 et 10 <strong>de</strong> l’algorithme ci-<strong>de</strong>ssous pour qu’il répon<strong>de</strong> au problème.1: VARIABLES2: nombre_rebonds EST_DU_TYPE NOMBRE3: hauteur EST_DU_TYPE NOMBRE4: DEBUT_ALGORITHME5: nombre_rebonds PREND_LA_VALEUR 06: hauteur PREND_LA_VALEUR 3007: TANT_QUE (hauteur......) FAIRE8: DEBUT_TANT_QUE9: nombre_rebonds PREND_LA_VALEUR nombre_rebonds+110: hauteur PREND_LA_VALEUR ...........11: FIN_TANT_QUE12: AFFICHER nombre_rebonds13: FIN_ALGORITHME– 37 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXBMém<strong>en</strong>to sur l’utilisation d’<strong>AlgoBox</strong>B.1 Équival<strong>en</strong>ce <strong>en</strong>tre « pseudo-co<strong>de</strong>s »Résumé <strong>de</strong>s différ<strong>en</strong>ces <strong>en</strong>tre le pseudo-co<strong>de</strong> utilisé par <strong>AlgoBox</strong> et celui que l’on peut r<strong>en</strong>contrerdans les manuels.B.1.1 Entrée <strong>de</strong>s donnéesPseudo-co<strong>de</strong> <strong>AlgoBox</strong>LIRE...VariantesSaisir...Entrer...B.1.2Affichage <strong>de</strong>s donnéesPseudo-co<strong>de</strong> <strong>AlgoBox</strong>VariantesAFFICHER...Écrire...B.1.3 Affecter une valeur à une variablePseudo-co<strong>de</strong> <strong>AlgoBox</strong>VariantesA PREND_LA_VALEUR 3Affecter 3 à AA:=3A←3– 38 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXB.1.4Structure SI ALORSPseudo-co<strong>de</strong> <strong>AlgoBox</strong>SI...ALORSDEBUT_SI...FIN_SIVariantesSi...alors...FinSiSi...Alors...FinSiPseudo-co<strong>de</strong> <strong>AlgoBox</strong>SI...ALORSDEBUT_SI...FIN_SISINONDEBUT_SINON...FIN_SINONVariantesSi...alors...sinon...FinSiSi...Alors...Sinon...FinSiB.1.5Boucle POUR...Pseudo-co<strong>de</strong> <strong>AlgoBox</strong>POUR...ALLANT_DE...A...DEBUT_POUR...FIN_POURVariantesPour...<strong>de</strong>...jusqu’à......FinPourPour...variant <strong>de</strong>...à......FinPourB.1.6Structure TANT QUE...Pseudo-co<strong>de</strong> <strong>AlgoBox</strong>TANT_QUE...FAIREDEBUT_TANT_QUE...FIN_TANT_QUEVariantesTant que......FinTantQue– 39 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXB.2 Les problèmes <strong>de</strong> syntaxeB.2.1Les erreurs <strong>de</strong> syntaxe les plus courantes– Erreur classique n°1 : utiliser la virgule au lieu du point comme séparateur décimal– Erreur classique n°2 : utiliser la syntaxe "SI x=y" au lieu <strong>de</strong> "SI x==y" pour vérifier une égalitédans une condition– Erreur classique n°3 : utiliser la syntaxe xˆy au lieu <strong>de</strong> pow(x,y) pour les puissances.B.2.2Syntaxe <strong>de</strong>s opérations mathématiquesOpération mathématique√ xx ycos(x) (x <strong>en</strong> radians)sin(x) (x <strong>en</strong> radians)tan(x) (x <strong>en</strong> radians)e xlnx|x|Partie <strong>en</strong>tière <strong>de</strong> xNombre pseudo-aléatoire compris <strong>en</strong>tre 0 et 1Reste <strong>de</strong> la division euclidi<strong>en</strong>ne <strong>de</strong> n par pπarccos(x)arcsin(x)arctan(x)Valeur approchée <strong>de</strong> x à 10 −n prèssyntaxe <strong>AlgoBox</strong>sqrt(x)pow(x,y)cos(x)sin(x)tan(x)exp(x)log(x)abs(x)floor(x)random()n%p<strong>Math</strong>.PIacos(x)asin(x)atan(x)ALGOBOX_ARRONDIR(x,n)B.2.3Syntaxe pour les conditionsCondition logiquex = yx yx < yx yx > yx ycondition1 ou condition2condition1 et condition2syntaxe <strong>AlgoBox</strong>x==yx!=yx=ycondition1 OU condition2condition1 ET condition2Remarque : il est possible d’inclure <strong>de</strong>s opérations mathématiques dans les conditions.(exemple : pow(2,n)
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXB.2.4Syntaxe pour les fonctions statistiques et les opérations sur les listesSomme <strong>de</strong>s termes d’une listeMoy<strong>en</strong>neVarianceÉcart-typeMédianeQ1 (version calculatrice)Q3 (version calculatrice)Q1 (version « officielle »)Q3 (version « officielle »)Minimum d’une listeMaximum d’une listeRang du minimumRang du maximumALGOBOX_SOMME(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_MOYENNE(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_VARIANCE(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_ECART_TYPE(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_MEDIANE(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_QUARTILE1(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_QUARTILE3(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_QUARTILE1_BIS(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_QUARTILE3_BIS(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_MINIMUM(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_MAXIMUM(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_POS_MINIMUM(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)ALGOBOX_POS_MAXIMUM(nom_liste,rang_premier_terme,rang_<strong>de</strong>rnier_terme)B.2.5Fonctions concernant les probabilités<strong>en</strong>tier pseudo-aléatoire <strong>en</strong>tre p et nALGOBOX_ALEA_ENT(p,n)( np ) (n 100) ALGOBOX_COEFF_BINOMIAL(n,p)p(X = k) pour la loi binomiale (n 100)ALGOBOX_LOI_BINOMIALE(n,p,k)p(X < x) pour la loi normale c<strong>en</strong>trée réduiteALGOBOX_LOI_NORMALE_CR(x)p(X < x) pour la loi normaleALGOBOX_LOI_NORMALE(esp,ecart,x)x tel p(X < x) = p pour la loi normale c<strong>en</strong>trée réduite ALGOBOX_INVERSE_LOI_NORMALE_CR(p)x tel p(X < x) = p pour la loi normaleALGOBOX_INVERSE_LOI_NORMALE(esp,ecart,p)n! (n 69) ALGOBOX_FACTORIELLE(n)B.2.6Fonctions concernant les chaines <strong>de</strong> caractèresRemarque : le cont<strong>en</strong>u d’une chaîne doit être <strong>en</strong>cadré par <strong>de</strong>s guillemets.(exemple : machaine pr<strong>en</strong>d la valeur "bonjour" )concaténation <strong>de</strong> <strong>de</strong>ux chaines A et Bsous-chaine <strong>de</strong> n caractères à partir <strong>de</strong> la position ptransformation d’un nombre n <strong>en</strong> chainetransformation d’une chaine <strong>en</strong> <strong>en</strong>tiertransformation d’une chaine <strong>en</strong> réellongueur d’une chaineco<strong>de</strong> ASCII du caractère situé à la position pchaine <strong>de</strong> co<strong>de</strong> ASCII pA+Bmachaine.substr(p,n)n.toString()parseInt(machaine)parseFloat(machaine)machaine.l<strong>en</strong>gthmachaine.charCo<strong>de</strong>At(p)String.fromCharCo<strong>de</strong>(p)B.3 Fonctionnem<strong>en</strong>t d’<strong>AlgoBox</strong>B.3.1Les <strong>de</strong>ux règles fondam<strong>en</strong>tales1. Toute variable doit d’abord être déclarée avant <strong>de</strong> pouvoir être utilisée. La <strong>première</strong> choseà faire avant <strong>de</strong> concevoir un algorithme est d’ailleurs <strong>de</strong> lister toutes les variables quiseront nécessaires.2. Une nouvelle instruction ne peut s’insérer que sur une ligne vierge.– 41 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXB.3.2Les variablesAtt<strong>en</strong>tionLe nom <strong>de</strong>s variables ne doit pas cont<strong>en</strong>ir d’espaces (que l’on peut remplacer par le caractère_), ni d’acc<strong>en</strong>ts, ni <strong>de</strong> caractères spéciaux. On ne peut pas non plus utiliser certainstermes réservés : par exemple, une variable ne peut pas être appelée NOMBRE. Il est parcontre conseillé d’utiliser <strong>de</strong>s noms <strong>de</strong> variables explicites (mêmes longs) pour r<strong>en</strong>dre lesalgorithmes plus clairs.B.3.3Les listes <strong>de</strong> nombresIl est possible d’<strong>en</strong>trer directem<strong>en</strong>t les termes d’une liste. Pour cela, il suffit d’utiliser l’instructionLIRE maliste[1] (1 représ<strong>en</strong>tant le premier rang <strong>de</strong>s termes <strong>de</strong> la liste que l’on veut<strong>en</strong>trer). Lors <strong>de</strong> l’exécution <strong>de</strong> l’algorithme, il suffira alors d’<strong>en</strong>trer toutes les valeurs souhaitées(dans l’ordre) <strong>en</strong> les séparant par : .B.3.4Boucle POUR...DE...A– On n’utilise ce g<strong>en</strong>re <strong>de</strong> boucles que si on connaît à l’avance le nombre <strong>de</strong> répétitions àeffectuer.– La variable servant <strong>de</strong> compteur pour la boucle doit être du type NOMBRE et doit êtredéclarée préalablem<strong>en</strong>t (comme toutes les variables).– Dans <strong>AlgoBox</strong>, cette variable est automatiquem<strong>en</strong>t augm<strong>en</strong>tée <strong>de</strong> 1 à chaque fois.Att<strong>en</strong>tion– On peut utiliser la valeur du compteur pour faire <strong>de</strong>s calculs à l’intérieur <strong>de</strong> la boucle,mais les instructions comprises <strong>en</strong>tre DEBUT_POUR et FIN_POUR ne doiv<strong>en</strong>t <strong>en</strong> aucun casmodifier la valeur <strong>de</strong> la variable qui sert <strong>de</strong> compteur.– Le nombre d’itérations sur <strong>AlgoBox</strong> est limité à 500000. En cas <strong>de</strong> dépassem<strong>en</strong>t, l’algorithmes’arrête et le message « ***Algorithme interrompu suite à une erreur*** » est affiché.– Si les instructions à répéter comport<strong>en</strong>t l’affichage d’une variable ou un tracé graphique,il faut limiter le nombre d’itérations à moins d’un millier (ou guère plus) : sans quoi,l’exécution du programme risque <strong>de</strong> pr<strong>en</strong>dre beaucoup trop <strong>de</strong> temps. Par contre, s’il n’yque <strong>de</strong>s calculs à répéter on peut pousser le nombre d’itérations plus loin.B.3.5Structure TANT QUE– Cette structure sert à répéter <strong>de</strong>s instructions que l’on connaisse ou non par avance l<strong>en</strong>ombre d’itérations à effectuer.– Si la condition du TANT QUE... est fausse dès le début, les instructions <strong>en</strong>tre DEBUT_TANT_QUEet FIN_TANT_QUE ne sont jamais exécutées (la structure TANT QUE ne sert alors strictem<strong>en</strong>tà ri<strong>en</strong>).– 42 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXAtt<strong>en</strong>tion– Il est indisp<strong>en</strong>sable <strong>de</strong> s’assurer que la condition du TANT QUE... finisse par être vérifiée(le co<strong>de</strong> <strong>en</strong>tre DEBUT_TANT_QUE et FIN_TANT_QUE doit r<strong>en</strong>dre vraie la condition tôt ou tard),sans quoi l’algorithme va se lancer dans une « boucle infinie ».– Afin d’éviter les boucles infinies, le nombre d’itérations est là aussi limité à 500000. Encas <strong>de</strong> dépassem<strong>en</strong>t, l’algorithme s’arrête et le message « ***Algorithme interrompu suiteà une erreur*** » est affiché.– Si les instructions à répéter comport<strong>en</strong>t l’affichage d’une variable ou un tracé graphique,il faut limiter le nombre d’itérations à moins d’un millier (ou guère plus) : sans quoi,l’exécution du programme risque <strong>de</strong> pr<strong>en</strong>dre beaucoup trop <strong>de</strong> temps. Par contre, s’il n’yque <strong>de</strong>s calculs à répéter on peut pousser le nombre d’itérations plus loin.B.3.6 Utilisation <strong>de</strong> l’onglet « Utiliser une fonction numérique »En activant l’option "Utiliser une fonction" dans l’onglet "Utiliser une fonction numérique", onpeut utiliser l’image <strong>de</strong> n’importe quel nombre (ou variable <strong>de</strong> type nombre) par la fonctionnotée F1 dans le co<strong>de</strong> <strong>de</strong> l’algorithme. Il suffit pour cela d’<strong>en</strong>trer l’expression <strong>de</strong> F1(x) <strong>en</strong> fonction<strong>de</strong> x dans le champ prévu pour cela. Pour utiliser l’image d’un nombre nb par la fonctionF1 dans l’algorithme, il suffit d’utiliser le co<strong>de</strong> : F1(nb) (cela peut se faire dans une affectationou dans une expression conditionnelle). Cette option est particulièrem<strong>en</strong>t utile quand un algorithm<strong>en</strong>écessite le calcul <strong>de</strong> plusieurs images par une même fonction.Un exemple classique est celui <strong>de</strong> la dichotomie :1: VARIABLES2: precision EST_DU_TYPE NOMBRE3: a EST_DU_TYPE NOMBRE4: b EST_DU_TYPE NOMBRE5: m EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: a PREND_LA_VALEUR ...8: b PREND_LA_VALEUR ...9: LIRE precision10: TANT_QUE (b-a>precision) FAIRE11: DEBUT_TANT_QUE12: m PREND_LA_VALEUR (a+b)/213: SI (F1(m)*F1(b)>0) ALORS14: DEBUT_SI15: b PREND_LA_VALEUR m16: FIN_SI17: SINON18: DEBUT_SINON19: a PREND_LA_VALEUR m20: FIN_SINON21: AFFICHER a22: AFFICHER " < solution < "23: AFFICHER b24: FIN_TANT_QUE25: FIN_ALGORITHMEB.3.7 Utilisation <strong>de</strong> l’onglet « Dessiner dans un repère »En activant l’option "Utiliser un repère" dans l’onglet "Dessiner dans un repère", un repère graphiqueest automatiquem<strong>en</strong>t ajouté dans la f<strong>en</strong>être <strong>de</strong> test <strong>de</strong> l’algorithme. Il est alors possibled’inclure dans le co<strong>de</strong> <strong>de</strong> l’algorithme <strong>de</strong>s instructions pour tracer <strong>de</strong>s points et <strong>de</strong>s segm<strong>en</strong>tsdans ce repère <strong>en</strong> utilisant les boutons "Ajouter TRACER POINT" et "Ajouter TRACER SEG-MENT".Att<strong>en</strong>tionLa « f<strong>en</strong>être » du repère est définie lors <strong>de</strong> la <strong>première</strong> utilisation <strong>de</strong>s instructions TRA-CER_POINT et TRACER_SEGMENT. Si la f<strong>en</strong>être doit dép<strong>en</strong>dre <strong>de</strong> la valeur <strong>de</strong> certaines variables,il faut s’assurer que celles-ci sont bi<strong>en</strong> définies avant le premier tracé.– 43 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXExemple : représ<strong>en</strong>tation graphique d’une fluctuation d’échantillonnage (100 simulations <strong>de</strong>1000 lancers d’une pièce)1: VARIABLES2: simulation EST_DU_TYPE NOMBRE3: lancer EST_DU_TYPE NOMBRE4: nb_<strong>de</strong>_piles EST_DU_TYPE NOMBRE5: frequ<strong>en</strong>ce EST_DU_TYPE LISTE6: moy EST_DU_TYPE NOMBRE7: ecart_type EST_DU_TYPE NOMBRE8: DEBUT_ALGORITHME9: POUR simulation ALLANT_DE 1 A 10010: DEBUT_POUR11: nb_<strong>de</strong>_piles PREND_LA_VALEUR 012: POUR lancer ALLANT_DE 1 A 100013: DEBUT_POUR14: SI (random()(100,moy)24: ecart_type PREND_LA_VALEUR ALGOBOX_ECART_TYPE(frequ<strong>en</strong>ce,1,100)25: TRACER_SEGMENT (1,moy+2*ecart_type)->(100,moy+2*ecart_type)26: TRACER_SEGMENT (1,moy-2*ecart_type)->(100,moy-2*ecart_type)27: FIN_ALGORITHMEXmin: 1 ; Xmax: 100 ; Ymin: 0.4 ; Ymax: 0.6 ; GradX: 10 ; GradY: 0.01B.3.8 Utilisation <strong>de</strong> l’onglet « Fonction avancée »En activant l’option "Utiliser la fonction F2..." dans l’onglet "Fonction avancée", on peut définir :– une fonction définie par « morceaux » ;– une fonction dép<strong>en</strong>dant <strong>de</strong> plusieurs paramètres (contrairem<strong>en</strong>t à la fonction F1 qui ne doitdép<strong>en</strong>dre que <strong>de</strong> x) ;– une fonction définie <strong>de</strong> façon récursive.Pour cela, il faut :– préciser les paramètres dont dép<strong>en</strong>d la fonction ;– ajouter une à une les conditions permettant <strong>de</strong> définir la fonction ;– indiquer ce que doit retourner la fonction quand aucune <strong>de</strong>s conditions n’est remplie.Exemple <strong>avec</strong> le calcul du pgcd <strong>de</strong> <strong>de</strong>ux <strong>en</strong>tiers (métho<strong>de</strong> récursive) :1: VARIABLES2: p EST_DU_TYPE NOMBRE3: q EST_DU_TYPE NOMBRE4: pgcd EST_DU_TYPE NOMBRE5: DEBUT_ALGORITHME6: LIRE p7: LIRE q8: pgcd PREND_LA_VALEUR F2(p,q)9: AFFICHER pgcd10: FIN_ALGORITHMEfonction F2(p,q):SI (p==0) RENVOYER qSI (q==0) RENVOYER pSI (q
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOX– lancer la f<strong>en</strong>être <strong>de</strong> test <strong>de</strong> l’algorithme ;– sélectionner le co<strong>de</strong> à copier dans la page web <strong>de</strong> test (la partie supérieure <strong>de</strong> la f<strong>en</strong>être) ;– faire « glisser » le co<strong>de</strong> sélectionné vers son traitem<strong>en</strong>t <strong>de</strong> texte.B.4 Quelques techniques classiquesB.4.1 Diviseur ?– Condition pour vérifier si un <strong>en</strong>tier P est un diviseur d’un <strong>en</strong>tier N : N%P==0B.4.2 Entier pair ou impair ?– Condition pour vérifier si un <strong>en</strong>tier N est pair : N%2==0– Condition pour vérifier si un <strong>en</strong>tier N est impair : N%2!=0 (autre condition possible : N%2==1)B.4.3Entier pseudo-aléatoire compris <strong>en</strong>tre 1 et N– Pour obt<strong>en</strong>ir un <strong>en</strong>tier pseudo-aléatoire compris <strong>en</strong>tre 1 et N :... PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,N) ou ... PREND_LA_VALEUR floor(N*random()+1)– Exemple pour la face d’un dé : ... PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,6)B.4.4« Balayage » d’un intervalleDeux métho<strong>de</strong>s peuv<strong>en</strong>t être utilisées pour « balayer » un intervalle [a; b] (a et b faisant partiedu traitem<strong>en</strong>t).Première métho<strong>de</strong> <strong>en</strong> <strong>en</strong>trant le nombre <strong>de</strong> subdivisions et <strong>en</strong> utilisant une boucle POUR... :1: VARIABLES2: i EST_DU_TYPE NOMBRE3: nbsubdivisions EST_DU_TYPE NOMBRE4: pas EST_DU_TYPE NOMBRE5: x EST_DU_TYPE NOMBRE6: a EST_DU_TYPE NOMBRE7: b EST_DU_TYPE NOMBRE8: DEBUT_ALGORITHME9: LIRE a10: LIRE b11: LIRE nbsubdivisions12: pas PREND_LA_VALEUR (b-a)/nbsubdivisions13: POUR i ALLANT_DE 0 A nbsubdivisions14: DEBUT_POUR15: x PREND_LA_VALEUR a+i*pas16: traitem<strong>en</strong>t....17: FIN_POUR18: FIN_ALGORITHME– 45 –
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXDeuxième métho<strong>de</strong> <strong>en</strong> <strong>en</strong>trant directem<strong>en</strong>t le pas et <strong>en</strong> utilisant une structure TANT QUE... :1: VARIABLES2: pas EST_DU_TYPE NOMBRE3: x EST_DU_TYPE NOMBRE4: a EST_DU_TYPE NOMBRE5: b EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: LIRE a8: LIRE b9: LIRE pas10: x PREND_LA_VALEUR a11: TANT_QUE (x
ANNEXE B. MÉMENTO SUR L’UTILISATION D’ALGOBOXB.4.6Échanger le cont<strong>en</strong>u <strong>de</strong> <strong>de</strong>ux variablesPour échanger le cont<strong>en</strong>u <strong>de</strong> <strong>de</strong>ux variables A et B, il suffit d’utiliser une troisième variabletemp :temp PREND_LA_VALEUR AA PREND_LA_VALEUR BB PREND_LA_VALEUR tempExemple : tri d’une liste <strong>de</strong> valeurs par échange du minimum1: VARIABLES2: list<strong>en</strong>ombre EST_DU_TYPE LISTE3: temp EST_DU_TYPE NOMBRE4: i EST_DU_TYPE NOMBRE5: min EST_DU_TYPE NOMBRE6: nbtermes EST_DU_TYPE NOMBRE7: DEBUT_ALGORITHME8: LIRE nbtermes9: //Entrer les "nbtermes" valeurs sous la forme valeur1:valeur2:etc...10: LIRE list<strong>en</strong>ombre[1]11: POUR i ALLANT_DE 1 A nbtermes-112: DEBUT_POUR13: min PREND_LA_VALEUR ALGOBOX_POS_MINIMUM(list<strong>en</strong>ombre,i+1,nbtermes)14: SI (list<strong>en</strong>ombre[i]>list<strong>en</strong>ombre[min]) ALORS15: DEBUT_SI16: temp PREND_LA_VALEUR list<strong>en</strong>ombre[min]17: list<strong>en</strong>ombre[min] PREND_LA_VALEUR list<strong>en</strong>ombre[i]18: list<strong>en</strong>ombre[i] PREND_LA_VALEUR temp19: FIN_SI20: FIN_POUR21: POUR i ALLANT_DE 1 A nbtermes22: DEBUT_POUR23: AFFICHER list<strong>en</strong>ombre[i]24: AFFICHER " "25: FIN_POUR26: FIN_ALGORITHMEB.4.7Afficher un message cont<strong>en</strong>ant du texte et <strong>de</strong>s nombresIl suffit pour cela d’utiliser une variable du type CHAINE.Exemple :1: VARIABLES2: a EST_DU_TYPE NOMBRE3: b EST_DU_TYPE NOMBRE4: message EST_DU_TYPE CHAINE5: somme EST_DU_TYPE NOMBRE6: DEBUT_ALGORITHME7: LIRE a8: LIRE b9: somme PREND_LA_VALEUR a+b10: message PREND_LA_VALEUR a.toString()+" + "+b.toString()+" est égal à "+somme.toString()11: AFFICHER message12: FIN_ALGORITHMERésultat :***Algorithme lancé***Entrer a : 4Entrer b : 74 + 7 est égal à 11***Algorithme terminé***– 47 –
ANNEXE C. ALGORITHMES SUPPLÉMENTAIRESC.1 Second <strong>de</strong>gréCAlgorithmes supplém<strong>en</strong>tairesSolutions <strong>de</strong> l’équation du second <strong>de</strong>gré ax 2 + bx + c = 0.1: VARIABLES2: a EST_DU_TYPE NOMBRE3: b EST_DU_TYPE NOMBRE4: c EST_DU_TYPE NOMBRE5: <strong>de</strong>lta EST_DU_TYPE NOMBRE6: x1 EST_DU_TYPE NOMBRE7: x2 EST_DU_TYPE NOMBRE8: DEBUT_ALGORITHME9: LIRE a10: LIRE b11: LIRE c12: SI (a!=0) ALORS13: DEBUT_SI14: <strong>de</strong>lta PREND_LA_VALEUR b*b-4*a*c15: SI (<strong>de</strong>lta0) ALORS26: DEBUT_SI27: x1 PREND_LA_VALEUR (-b-sqrt(<strong>de</strong>lta))/(2*a)28: x2 PREND_LA_VALEUR (-b+sqrt(<strong>de</strong>lta))/(2*a)29: AFFICHER "Première racine : "30: AFFICHER x131: AFFICHER "Deuxième racine : "32: AFFICHER x233: FIN_SI34: FIN_SI35: SINON36: DEBUT_SINON37: AFFICHER "Pas du second <strong>de</strong>gré"38: FIN_SINON39: FIN_ALGORITHME– 48 –
ANNEXE C. ALGORITHMES SUPPLÉMENTAIRESC.2 Paramètres d’une série statistiqueCalcul <strong>de</strong>s paramètres statistiques sur série (valeurs,effectifs).1: VARIABLES2: valeurs EST_DU_TYPE LISTE3: effectifs EST_DU_TYPE LISTE4: nb_valeurs EST_DU_TYPE NOMBRE5: i EST_DU_TYPE NOMBRE6: liste_complete EST_DU_TYPE LISTE7: j EST_DU_TYPE NOMBRE8: k EST_DU_TYPE NOMBRE9: moy<strong>en</strong>ne EST_DU_TYPE NOMBRE10: ecart_type EST_DU_TYPE NOMBRE11: mediane EST_DU_TYPE NOMBRE12: premier_quartile EST_DU_TYPE NOMBRE13: troisieme_quartile EST_DU_TYPE NOMBRE14: DEBUT_ALGORITHME15: LIRE nb_valeurs16: LIRE valeurs[1]17: LIRE effectifs[1]18: k PREND_LA_VALEUR 119: POUR i ALLANT_DE 1 A nb_valeurs20: DEBUT_POUR21: POUR j ALLANT_DE 1 A effectifs[i]22: DEBUT_POUR23: liste_complete[k] PREND_LA_VALEUR valeurs[i]24: k PREND_LA_VALEUR k+125: FIN_POUR26: FIN_POUR27: moy<strong>en</strong>ne PREND_LA_VALEUR ALGOBOX_MOYENNE(liste_complete,1,k-1)28: AFFICHER "Moy<strong>en</strong>ne : "29: AFFICHER moy<strong>en</strong>ne30: ecart_type PREND_LA_VALEUR ALGOBOX_ECART_TYPE(liste_complete,1,k-1)31: AFFICHER "Ecart-type : "32: AFFICHER ecart_type33: mediane PREND_LA_VALEUR ALGOBOX_MEDIANE(liste_complete,1,k-1)34: AFFICHER "Médiane : "35: AFFICHER mediane36: premier_quartile PREND_LA_VALEUR ALGOBOX_QUARTILE1_BIS(liste_complete,1,k-1)37: AFFICHER "Q1 : "38: AFFICHER premier_quartile39: troisieme_quartile PREND_LA_VALEUR ALGOBOX_QUARTILE3_BIS(liste_complete,1,k-1)40: AFFICHER "Q3 : "41: AFFICHER troisieme_quartile42: FIN_ALGORITHME– 49 –
ANNEXE C. ALGORITHMES SUPPLÉMENTAIRESC.3 Tabulation loi binomiale - Intervalle <strong>de</strong> fluctuation à 95%Tabulation loi binomiale et intervalle <strong>de</strong> fluctuation à 95% d’une proportion p.1: VARIABLES2: taille_echantillon EST_DU_TYPE NOMBRE3: p EST_DU_TYPE NOMBRE4: somme EST_DU_TYPE NOMBRE5: k EST_DU_TYPE NOMBRE6: a EST_DU_TYPE NOMBRE7: b EST_DU_TYPE NOMBRE8: fluct_min EST_DU_TYPE NOMBRE9: fluct_max EST_DU_TYPE NOMBRE10: prob EST_DU_TYPE NOMBRE11: max_prob EST_DU_TYPE NOMBRE12: DEBUT_ALGORITHME13: LIRE taille_echantillon14: SI (taille_echantillon100) ALORS15: DEBUT_SI16: AFFICHER "Calcul non autorisé"17: FIN_SI18: SINON19: DEBUT_SINON20: LIRE p21: a PREND_LA_VALEUR -122: b PREND_LA_VALEUR -123: max_prob PREND_LA_VALEUR 024: POUR k ALLANT_DE 0 A taille_echantillon25: DEBUT_POUR26: prob PREND_LA_VALEUR ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k)27: SI (prob>max_prob) ALORS28: DEBUT_SI29: max_prob PREND_LA_VALEUR prob30: FIN_SI31: FIN_POUR32: AFFICHER "taille échantillon : "33: AFFICHER taille_echantillon34: AFFICHER "proportion p : "35: AFFICHER p36: AFFICHER "k -> p(X "43: AFFICHER somme44: SI (somme(k,prob)47: FIN_SI48: SI (somme>0.025 ET somme(k,prob)51: SI (a==-1) ALORS52: DEBUT_SI53: a PREND_LA_VALEUR k54: FIN_SI55: FIN_SI56: SI (somme>=0.975) ALORS57: DEBUT_SI58: SI (b==-1) ALORS59: DEBUT_SI60: b PREND_LA_VALEUR k61: TRACER_SEGMENT (k,0)->(k,prob)62: FIN_SI63: SINON64: DEBUT_SINON65: TRACER_SEGMENT (k,0)->(k,prob)66: FIN_SINON67: FIN_SI68: FIN_POUR69: fluct_min PREND_LA_VALEUR a/taille_echantillon– 50 –
ANNEXE C. ALGORITHMES SUPPLÉMENTAIRES70: AFFICHER "a : "71: AFFICHER a72: AFFICHER "b : "73: fluct_max PREND_LA_VALEUR b/taille_echantillon74: AFFICHER b75: AFFICHER "intervalle <strong>de</strong> fluctuation : [ "76: AFFICHER fluct_min77: AFFICHER " ; "78: AFFICHER fluct_max79: AFFICHER " ] "80: FIN_SINON81: FIN_ALGORITHMENotes :– max_prob sert à définir la f<strong>en</strong>être graphique :– Les « bâtons » situés <strong>en</strong>tre a et b sont <strong>de</strong>ssinés <strong>en</strong> bleu (lignes 50 et 61), les autres sont tracés<strong>en</strong> rouge (lignes 46 et 65).– 51 –