13.07.2015 Views

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

SHOW MORE
SHOW LESS

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 –

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!