Vous êtes sur la page 1sur 56

Algorithmique en classe de premire avec AlgoBox

Version 1.2 - Dcembre 2012

Cette uvre est mise disposition selon les termes de la Licence Creative Commons Attribution - Pas dutilisation Commerciale - Partage lidentique 3.0 non transpos. 2012 Pascal Brachet Vous tes libre de reproduire, distribuer, communiquer et adapter luvre selon les conditions suivantes : Vous navez pas le droit dutiliser cette uvre des ns commerciales. Si vous modiez, transformez ou adaptez cette uvre, vous navez le droit de distribuer votre cration que sous une licence identique ou similaire celle-ci.

AT X et lditeur T XMAKER . Cette brochure a t ralise avec le systme de composition L E E http://www.xm1math.net/doculatex/index.html

SOMMAIRE

Sommaire

Avant-propos

iv

Activits lves

1
2 4 6 11 16 23 26

1 Pourcentages 2 Second degr 3 Fonctions 4 Statistiques/Probabilits 5 Suites numriques 6 Gomtrie 7 Trigonomtrie

II

Annexes

28
29 30 32 34 38 38 38 38 38 39 39 39 40 40 40 40 41 41 41 41 41 42 42

A Structures algorithmiques de base avec AlgoBox A.1 Variables et aectations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Instructions conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B Mmento sur lutilisation dAlgoBox B.1 quivalence entre pseudo-codes . . . . . . . . . . . . . . . . . . . . . . . B.1.1 Entre des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.2 Achage des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.3 Aecter une valeur une variable . . . . . . . . . . . . . . . . . . . . B.1.4 Structure SI ALORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.5 Boucle POUR... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1.6 Structure TANT QUE... . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Les problmes de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2.1 Les erreurs de syntaxe les plus courantes . . . . . . . . . . . . . . . . B.2.2 Syntaxe des oprations mathmatiques . . . . . . . . . . . . . . . . . B.2.3 Syntaxe pour les conditions . . . . . . . . . . . . . . . . . . . . . . . B.2.4 Syntaxe pour les fonctions statistiques et les oprations sur les listes B.2.5 Fonctions concernant les probabilits . . . . . . . . . . . . . . . . . . B.2.6 Fonctions concernant les chaines de caractres . . . . . . . . . . . . B.3 Fonctionnement dAlgoBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3.1 Les deux rgles fondamentales . . . . . . . . . . . . . . . . . . . . . B.3.2 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3.3 Les listes de nombres . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

SOMMAIRE

B.3.4 Boucle POUR...DE...A . . . . . . . . . . . . . . . . . . . . . . . . . . B.3.5 Structure TANT QUE . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3.6 Utilisation de longlet Utiliser une fonction numrique . . . . . B.3.7 Utilisation de longlet Dessiner dans un repre . . . . . . . . . . B.3.8 Utilisation de longlet Fonction avance . . . . . . . . . . . . . . B.3.9 Rcupration facile dun code AlgoBox dans un traitement de texte B.4 Quelques techniques classiques . . . . . . . . . . . . . . . . . . . . . . . . . B.4.1 Diviseur ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4.2 Entier pair ou impair ? . . . . . . . . . . . . . . . . . . . . . . . . . . B.4.3 Entier pseudo-alatoire compris entre 1 et N . . . . . . . . . . . . . B.4.4 Balayage dun intervalle . . . . . . . . . . . . . . . . . . . . . . . B.4.5 Suites numriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4.6 changer le contenu de deux variables . . . . . . . . . . . . . . . . . B.4.7 Acher un message contenant du texte et des nombres . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

42 42 43 43 44 44 45 45 45 45 45 46 47 47 48 48 49 50

C Algorithmes supplmentaires C.1 Second degr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Paramtres dune srie statistique . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Tabulation loi binomiale - Intervalle de uctuation 95% . . . . . . . . . . . . .

iii

Avant-propos
Rappel des instructions ocielles concernant lalgorithmique dans les programmes de mathmatiques :
1. Instructions lmentaires (aectation, calcul, entre, sortie). Les lves, dans le cadre dune rsolution de problmes, doivent tre capables : dcrire une formule permettant un calcul ; dcrire un programme calculant et donnant la valeur dune fonction ; ainsi que les instructions dentres et sorties ncessaires au traitement. 2. Boucle et itrateur, instruction conditionnelle. Les lves, dans le cadre dune rsolution de problmes, doivent tre capables de : programmer un calcul itratif, le nombre ditrations tant donn ; programmer une instruction conditionnelle, un calcul itratif, avec une n de boucle conditionnelle. 3. Dans le cadre de cette activit algorithmique, les lves sont entrans : dcrire certains algorithmes en langage naturel ou dans un langage symbolique ; en raliser quelques-uns laide dun tableur ou dun programme sur calculatrice ou avec un logiciel adapt ; interprter des algorithmes plus complexes.

Contenu de cette brochure :


Des activits lves strictement conformes aux programmes en vigueur. Des annexes comportant : Des activits dapprentissage des techniques de base en algorithmique avec Algobox ; Un mmento sur les fonctions dAlgoBox ; Des algorithmes supplmentaires en rapport avec le contenu mathmatique des programmes de premire. propos des activits lves : Les ches professeurs et lves sont sur des pages direntes an de faciliter les photocopies. Les activits sont prsentes ici sous forme dnoncs trou . Il est bien sur possible de les adapter selon sa convenance. Adaptations possibles : donner lalgorithme complet et demander de dcrire ce quil fait ; demander la ralisation complte de lalgorithme partir de zro. Les chiers AlgoBox des algorithmes de la partie Activits lves et de lannexe C sont disponibles en ligne ladresse suivante : http://www.xm1math.net/algobox/algobook.html

Premire partie

Activits lves

1. POURCENTAGES

Pourcentages
Fiche professeur 1A
Fiche lve correspondante : page 3 Fichier AlgoBox associ (algorithme complet) : algo_1A.alg Contexte (1ES/1STMG) : Application directe du cours sur les hausses en pourcentage

Fiche professeur 1B
Fiche lve correspondante : page 3 Fichier AlgoBox associ (algorithme complet) : algo_1B.alg Contexte (1ES/1STMG) : Recherche du nombre de hausses ncessaires pour doubler la valeur dune grandeur (algorithmique utile - rsolution mathmatique directe impossible en premire) - Utilisation dune boucle TANT_QUE

1. POURCENTAGES

Fiche lve 1A
Complter la ligne 8 pour que lalgorithme AlgoBox ci-dessous soit correct :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES prixHT EST_DU_TYPE NOMBRE prixTTC EST_DU_TYPE NOMBRE TVA EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE prixHT LIRE TVA prixTTC PREND_LA_VALEUR prixHT*(..............) AFFICHER "Le prix TTC est gal " AFFICHER prixTTC

11: FIN_ALGORITHME

Fiche lve 1B
Le PIB dun pays mergent est de 700 milliards deuros en 2010. Selon un modle de prvision, il devrait augmenter de 10% par an dans les annes futures. On cherche crer un algorithme AlgoBox qui permette de dterminer en quelle anne le PIB aura doubl par rapport 2010. Complter les lignes 7 et 9 ci-dessous pour que lalgorithme propos rponde la question.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: VARIABLES annee EST_DU_TYPE NOMBRE PIB EST_DU_TYPE NOMBRE DEBUT_ALGORITHME PIB PREND_LA_VALEUR 700 annee PREND_LA_VALEUR 2010 TANT_QUE (PIB............) FAIRE DEBUT_TANT_QUE PIB PREND_LA_VALEUR PIB*........... annee PREND_LA_VALEUR annee+1 FIN_TANT_QUE AFFICHER "Le PIB aura doubl en " AFFICHER annee FIN_ALGORITHME

2. SECOND DEGR

Second degr
Fiche professeur 2A

Fiche lve correspondante : page 5 Fichier AlgoBox associ (algorithme complet) : algo_2A.alg Contexte (1S/1ES/1STL/1STMG) : Recherche et codage des conditions pour que les valeurs dun trinme soient toujours strictement positives.

2. SECOND DEGR

Fiche lve 2A
On considre la fonction f dnie sur R par f (x) = ax2 + bx + c avec a 0. Complter la ligne 11 pour que lalgorithme AlgoBox ci-dessous soit correct :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE delta EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b LIRE c delta PREND_LA_VALEUR b*b-4*a*c SI (.......................) ALORS DEBUT_SI AFFICHER "f(x) est toujours strictement positif" FIN_SI SINON DEBUT_SINON AFFICHER "f(x) nest pas toujours strictement positif" FIN_SINON FIN_ALGORITHME

3. FONCTIONS

Fonctions
Fiche professeur 3A
Fiche lve correspondante : page 7 Fichier AlgoBox associ (algorithme complet) : algo_3A.alg Contexte (1S/1ES/1STL/1STMG) : Cration dun tableau de valeurs avec un TANT_QUE Prolongement possible : Faire tracer les points correspondants dans un repre (il sut dutiliser longlet Dessiner dans un repre et dajouter linstruction TRACER_POINT (x,y) aprs AFFICHER y). Attention : pour tracer une courbe en joignant les points par un segment, il faut un algorithme plus complet (il faut les coordonnes des deux points joindre - un exemple est fourni avec AlgoBox : menu "Fichier" -> "Ouvrir un exemple")

Fiche professeur 3B
Fiche lve correspondante : page 8 Fichier AlgoBox associ (algorithme complet) : algo_3B.alg Contexte (1S) : Recherche dune valeur approche de lquation x2 x = 2 par dichotomie sur [0 ; 2] . Prolongements possibles : Remplacer la boucle POUR numero_etape ALLANT_DE 1 A 4 par un TANT_QUE portant sur la prcision souhaite. tudier un autre cas o la fonction est strictement dcroissante tablir un algorithme qui fonctionne dans tous les cas (fonction strictement croissante ou strictement dcroissante)

Fiche professeur 3C
Fiche lve correspondante : page 10 Fichier AlgoBox associ (algorithme complet) : algo_3C.alg Contexte (1S) : Recherche par balayage du premier point dune courbe dont le coecient directeur de la tangente dpasse une certaine valeur . Prolongement possible : Introduire une variable correspondante au pas et adapter lalgorithme en consquence.

3. FONCTIONS

Fiche lve 3A
Soit f la fonction dnie sur [0 ; +[ par f (x) = x + x. On cherche crer un algorithme qui permette de complter automatiquement le tableau de valeurs suivant : x 0 0 ,5 1 1,5 2 2,5 3 3 ,5 4 4 ,5 5 y = f (x ) Pour cela, on utilise le principe suivant : pour chaque valeur de x, on calcule la valeur correspondante de y et on augmente la valeur de x de 0,5 tant que la n du tableau nest pas atteinte. Complter les lignes 6, 8 et 13 pour que lalgorithme AlgoBox ci-dessous rponde au problme :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME x PREND_LA_VALEUR 0 TANT_QUE (x.....) FAIRE DEBUT_TANT_QUE y PREND_LA_VALEUR ............ AFFICHER "Si x vaut " AFFICHER x AFFICHER " alors y vaut " AFFICHER y x PREND_LA_VALEUR ............ FIN_TANT_QUE FIN_ALGORITHME

3. FONCTIONS

Fiche lve 3B
On considre la fonction f dnie sur [0 ; 2] par f (x) = x2 x dont la courbe est donne cidessous :

On cherche dterminer une valeur approche du rel x0 tel que f (x0 ) = 2. On admet que f est strictement croissante sur [0 ; 2] et que sa courbe ne contient pas de trous . Comme f (0) = 0 et f (2) = 4 2 > 2, on sait que x0 [0 ; 2].

Pour dterminer une valeur approche de x0 , on utilise la mthode dite de la dichotomie dont le principe consiste couper lintervalle en deux et regarder de quel ct se situe la solution par rapport au milieu de lintervalle. 1. tant donn un intervalle [a; b] de milieu m et contenant x0 (avec a Si f (m) < 2, dans quel intervalle se situe x0 ? 0 et b 2).

Si f (m) > 2, dans quel intervalle se situe x0 ?

2. Complter le tableau suivant :


tape Intervalle de dpart [a; b] milieu m
f (m) < 2 ?

Nouvel intervalle [a; b]

1 2 3 4

a=0 a= a= a=

;b=2 ;b= ;b= ;b=

m=1 m= m= m=

OUI

a= a= a= a=

;b= ;b= ;b= ;b=

3. FONCTIONS

3. On cherche automatiser les calculs grce un algorithme. Complter les lignes 14 et 18 pour que lalgorithme AlgoBox ci-dessous rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE m EST_DU_TYPE NOMBRE numero_etape EST_DU_TYPE NOMBRE DEBUT_ALGORITHME a PREND_LA_VALEUR 0 b PREND_LA_VALEUR 2 POUR numero_etape ALLANT_DE 1 A 4 DEBUT_POUR m PREND_LA_VALEUR (a+b)/2 SI (m*m*sqrt(m)<2) ALORS DEBUT_SI ...... PREND_LA_VALEUR m FIN_SI SINON DEBUT_SINON ...... PREND_LA_VALEUR m FIN_SINON AFFICHER a AFFICHER " <x0< " AFFICHER b FIN_POUR FIN_ALGORITHME

3. FONCTIONS

Fiche lve 3C
Soit f la fonction dnie sur [0 ; 3] par f (x) = 10x2 x et Cf sa courbe reprsentative dans un repre. 1. Driver f et montrer que pour x ]0 ; 3], on a f (x) = 25x x. 2. Calculer le coecient directeur de la tangente Cf au point dabscisse 1. 3. Calculer le coecient directeur de la tangente Cf au point dabscisse 2. 4. On cherche dterminer laide dun algorithme une valeur approche 0,01 prs du premier nombre a tel que le coecient directeur de la tangente au point dabscisse a soit suprieur ou gal 50. On sait daprs les premires questions que a est compris entre 1 et 2. On part donc de a = 1 et on augmente a de 0,01 tant que le coecient directeur ne dpasse pas 50. Complter les lignes 5 et 7 pour que lalgorithme AlgoBox ci-dessous rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES a EST_DU_TYPE NOMBRE DEBUT_ALGORITHME a PREND_LA_VALEUR 1 TANT_QUE (.....................) FAIRE DEBUT_TANT_QUE a PREND_LA_VALEUR .............. FIN_TANT_QUE AFFICHER a FIN_ALGORITHME

10

4. STATISTIQUES/PROBABILITS

Statistiques/Probabilits
Fiche professeur 4A

Fiche lve correspondante : page 12 Fichier AlgoBox associ (algorithme complet) : algo_4A.alg Contexte (1S/1ES) : Simulation de 100 000 lancers de deux ds - Calcul du gain moyen associ - Esprance dune variable alatoire Prolongement possible : Au lieu dune simulation de 100 000 lancers, on peut eectuer des centaines de simulation de 1 000 lancers.

Fiche professeur 4B
Fiche lve correspondante : page 13 Fichier AlgoBox associ (algorithme complet) : algo_4B.alg Contexte (1S/1ES/1STL/1STMG) : Simulation dun QCM - Calcul de la moyenne des notes obtenues Prolongement possible : Eectuer le calcul de la moyenne des notes au sein de lalgorithme.

Fiche professeur 4C
Fiche lve correspondante : page 14 Fichier AlgoBox associ (algorithme complet) : algo_4C.alg Contexte (1S/1ES/1STL/1STMG) : Simulation de naissances - Loi binomiale

Fiche professeur 4D
Fiche lve correspondante : page 15 Fichier AlgoBox associ (algorithme complet) : algo_4D.alg Contexte (1S/1ES/1STL/1STMG) : Fluctuation loi binomiale - Dtermination avec un algorithme des entiers a et b. Prolongement possible : Dtermination de lintervalle de uctuation en divisant a et b par la taille de lchantillon.

11

4. STATISTIQUES/PROBABILITS

Fiche lve 4A
Un jeu consiste lancer deux ds, un rouge et un noir. Pour pouvoir jouer il faut payer 1 euro. On gagne 3 euros si la somme des points est suprieure ou gale 9, 1 euro si la somme des points est infrieure ou gale 4 et rien dans les autres cas. On cherche savoir combien peut-on esprer gagner en moyenne si on joue un grand nombre de fois ce jeu. Pour cela, on appelle gain eectif , la dirence entre la somme gagne et la somme mise Partie A : simulation laide dun algorithme On cherche tablir un algorithme simulant 100 000 participations ce jeu et donnant le gain eectif moyen obtenu. 1. Complter les lignes 13 et 17 dans lalgorithme AlgoBox ci-dessous pour quil rponde au problme :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: VARIABLES numero_tirage EST_DU_TYPE NOMBRE gain_moyen EST_DU_TYPE NOMBRE resultat EST_DU_TYPE NOMBRE somme_gains_effectifs EST_DU_TYPE NOMBRE DEBUT_ALGORITHME somme_gains_effectifs PREND_LA_VALEUR 0 POUR numero_tirage ALLANT_DE 1 A 100000 DEBUT_POUR resultat PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,6)+ALGOBOX_ALEA_ENT(1,6) SI (resultat>=9) ALORS DEBUT_SI somme_gains_effectifs PREND_LA_VALEUR somme_gains_effectifs+.......... FIN_SI SI (resultat>=5 ET resultat<=8) ALORS DEBUT_SI somme_gains_effectifs PREND_LA_VALEUR ................................ FIN_SI FIN_POUR gain_moyen PREND_LA_VALEUR somme_gains_effectifs/100000 AFFICHER gain_moyen FIN_ALGORITHME

2. Pourquoi lalgorithme ne traite-t-il pas le cas o resultat est infrieur ou gal 4 ? 3. Que peut-on conjecturer sur la valeur du gain eectif moyen en procdant plusieurs simulations grce cet algorithme ? Partie B : analyse thorique 1. Complter le tableau suivant en indiquant dans chaque case la somme des points obtenus : d rouge/d noir 1 2 3 4 5 6 2. On note X la variable alatoire qui donne le gain eectif obtenu par un joueur. laide du tableau ci-dessus, dterminer la loi de probabilit associe X et calculer son esprance. 1 2 3 4 5 6

12

4. STATISTIQUES/PROBABILITS

Fiche lve 4B
Un QCM comporte cinq questions et, pour chaque question, trois rponses sont proposes dont une seule est exacte. Une bonne rponse rapporte un point, une mauvaise rponse 0.
Question 1 : Question 2 : Question 3 : Question 4 : Question 5 : Rponse 1 Rponse 1 Rponse 1 Rponse 1 Rponse 1 Rponse 2 Rponse 2 Rponse 2 Rponse 2 Rponse 2 Rponse 3 Rponse 3 Rponse 3 Rponse 3 Rponse 3

1. Quelles sont les notes minimale et maximale que lon peut obtenir ce QCM ? 2. On dcide de simuler 1000 fois le fait de rpondre au hasard ce QCM laide de lalgorithme AlgoBox ci-dessous (pour la simulation, on considre que la bonne rponse chaque question est la premire) :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: VARIABLES note EST_DU_TYPE NOMBRE question EST_DU_TYPE NOMBRE simulation EST_DU_TYPE NOMBRE effectif EST_DU_TYPE LISTE reponse_au_hasard EST_DU_TYPE NOMBRE DEBUT_ALGORITHME POUR note ALLANT_DE ... A ... DEBUT_POUR effectif[note] PREND_LA_VALEUR 0 FIN_POUR POUR simulation ALLANT_DE 1 A 1000 DEBUT_POUR note PREND_LA_VALEUR 0 POUR question ALLANT_DE 1 A 5 DEBUT_POUR reponse_au_hasard PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,3) SI (reponse_au_hasard==1) ALORS DEBUT_SI note PREND_LA_VALEUR note+1 FIN_SI FIN_POUR effectif[note] PREND_LA_VALEUR effectif[note]+1 FIN_POUR POUR note ALLANT_DE ... A ... DEBUT_POUR AFFICHER "On a obtenu " AFFICHER effectif[note] AFFICHER " fois la note " AFFICHER note FIN_POUR FIN_ALGORITHME

a) Complter les lignes 8 et 25 de lalgorithme. b) Obtient-on toujours les mmes rsultats en excutant lalgorithme ? 3. Une excution de lalgorithme a donn les rsultats suivants :
***Algorithme lanc*** On a obtenu 126 fois la note 0 On a obtenu 324 fois la note 1 On a obtenu 343 fois la note 2 On a obtenu 166 fois la note 3 On a obtenu 37 fois la note 4 On a obtenu 4 fois la note 5 ***Algorithme termin***

a) Quelle est la moyenne des notes obtenues lors de cette simulation ? b) Le calcul de lcart-type donne 1,036. Parmi les 1000 notes obtenues lors de cette ; x + ] ? simulation, quelle est la proportion de celles comprises dans lintervalle [x

13

4. STATISTIQUES/PROBABILITS

Fiche lve 4C
On sintresse au nombre denfants dune famille. On suppose quil ny a pas de naissances multiples et quil y a quiprobabilit pour la naissance dun garon ou dune lle. Partie A On suppose que la famille a eu 4 enfants et on note X le nombre de lles. 1. Justier que X suit une loi binomiale dont on donnera les paramtres. 2. Calculer la probabilit que la famille ait eu au moins une lle. Partie B On cherche dterminer le nombre minimum denfants que la famille devrait avoir pour que la probabilit davoir au moins une lle soit suprieure 0.999 . 1. On note n le nombre denfants. Dterminer, en fonction de n, la probabilit davoir au moins une lle. 2. Montrer que rpondre au problme pos revient dterminer le premier entier n tel que 0.5n 0.001. 3. Complter la ligne pour que lalgorithme AlgoBox ci-dessous permette de dterminer cet entier. (rappel : pow(0.5,n) permet de calculer 0.5n )
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES n EST_DU_TYPE NOMBRE DEBUT_ALGORITHME n PREND_LA_VALEUR 1 TANT_QUE (pow(0.5,n)...........) FAIRE DEBUT_TANT_QUE n PREND_LA_VALEUR n+1 FIN_TANT_QUE AFFICHER n FIN_ALGORITHME

14

4. STATISTIQUES/PROBABILITS

Fiche lve 4D
On prlve un chantillon dans une population au sein de laquelle on suppose que la proportion dun certain caractre est p. Le prlvement de lchantillon tant assimil un tirage avec remise, le nombre X dindividus de lchantillon ayant le caractre en question suit alors la loi binomiale de paramtres n et p, o n est gal la taille de lchantillon. Conformment au programme, on note : a, le plus petit entier tel que p(X a) > 0,025 ; b, le plus petit entier tel que p(X b) 0,975 ; On cherche dterminer les valeurs de a et b laide de lalgorithme AlgoBox ci-dessous qui utilise : la commande ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) permettant de calculer p (X = k ) ; une variable somme qui, au fur et mesure que k est augment de 1, contient p(X k ). Complter la ligne 21 de lalgorithme an que celui-ci permette de dterminer la valeur de b.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: VARIABLES taille_echantillon EST_DU_TYPE NOMBRE p EST_DU_TYPE NOMBRE somme EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE taille_echantillon LIRE p k PREND_LA_VALEUR 0 somme PREND_LA_VALEUR ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) TANT_QUE (somme<=0.025) FAIRE DEBUT_TANT_QUE k PREND_LA_VALEUR k+1 somme PREND_LA_VALEUR somme+ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) FIN_TANT_QUE a PREND_LA_VALEUR k AFFICHER "a : " AFFICHER a TANT_QUE (somme........) FAIRE DEBUT_TANT_QUE k PREND_LA_VALEUR k+1 somme PREND_LA_VALEUR somme+ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) FIN_TANT_QUE b PREND_LA_VALEUR k AFFICHER "b : " AFFICHER b FIN_ALGORITHME

15

5. SUITES NUMRIQUES

Suites numriques

Remarque pralable : Les algorithmes proposs dans les sujets du baccalaurat ne semblant pas faire appel aux structures de donnes du type liste, le choix a t fait aussi de ne pas les utiliser dans ce chapitre. Il est nanmoins possible dadapter les algorithmes proposs ici en utilisant des listes AlgoBox dont la syntaxe est trs proche du formalisme utilis en mathmatiques pour les suites numriques.

Fiche professeur 5A
Fiche lve correspondante : page 18 Fichier AlgoBox associ (algorithme complet) : algo_5A.alg Contexte (1S/1ES/1STL/1STMG) : Calcul du terme de rang n dune suite explicite. Prolongement possible : Faire acher tous les termes jusquau rang n laide dune boucle.

Fiche professeur 5B
Fiche lve correspondante : page 18 Fichier AlgoBox associ (algorithme complet) : algo_5B.alg Contexte (1S/1ES/1STL/1STMG) : Reconnaitre une suite explicite partir dun algorithme.

Fiche professeur 5C
Fiche lve correspondante : page 18 Fichier AlgoBox associ (algorithme complet) : algo_5C.alg Contexte (1S/1ES) : Calcul du terme de rang n dune suite rcurrente. Prolongement possible : Faire acher tous les termes jusquau rang n.

Fiche professeur 5D
Fiche lve correspondante : page 19 Fichier AlgoBox associ (algorithme complet) : algo_5D.alg Contexte (1S/1ES/1STL/1STMG) : Reconnaitre une suite rcurrente partir dun algorithme.

16

5. SUITES NUMRIQUES

Fiche professeur 5E
Fiche lve correspondante : page 19 Fichier AlgoBox associ (algorithme complet) : algo_5E.alg Contexte (1S/1ES/1STMG) : Dtermination du premier rang n tel que Un boucle TANT_QUE. 20 laide dune

Fiche professeur 5F
Fiche lve correspondante : page 20 Fichier AlgoBox associ (algorithme complet) : algo_5F.alg Contexte (1S/1ES/1STMG) : Dtermination du premier rang n tel que Un boucle TANT_QUE. 50 laide dune

Fiche professeur 5G
Fiche lve correspondante : page 21 Fichier AlgoBox associ (algorithme complet) : algo_5G.alg Contexte (1S/1ES/1STMG) : Utilisation dun algorithme pour comparer lvolution des termes dune suite arithmtique avec ceux dune suite gomtrique. Prolongement possible : Modier lalgorithme an de dterminer directement laide dun TANT_QUE lanne partir de laquelle la proposition 2 devient la meilleure.

Fiche professeur 5H
Fiche lve correspondante : page 22 Fichier AlgoBox associ (algorithme complet) : algo_5H.alg Contexte (1S/1ES/1STL/1STMG) : Analyser le fonctionnement dun algorithme - comprendre comment modliser de faon algorithmique le calcul dune somme.

17

5. SUITES NUMRIQUES

Fiche lve 5A
Soit (Un ) la suite dnie par Un = 2n . n+3 1. Calculer U0 , U3 et Un+1 . 2. Complter la ligne 6 de lalgorithme AlgoBox ci-dessous pour quil permette de calculer Un aprs avoir entr n.
1: 2: 3: 4: 5: 6: 7: 8: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n U PREND_LA_VALEUR ................ AFFICHER U FIN_ALGORITHME

Fiche lve 5B
Lalgorithme ci-dessous permet de calculer le terme de rang n dune suite (Un ) dnie de faon explicite.
1: 2: 3: 4: 5: 6: 7: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n U PREND_LA_VALEUR n/(n+1) AFFICHER U

8: FIN_ALGORITHME

1. Dterminer Un en fonction de n. 2. Calculer U9 et Un+1 .

Fiche lve 5C
Soit (Un ) la suite dnie par Un+1 = 5 3Un et U0 = 1 . 1. Calculer U0 , U1 et U2 . 2. Complter la ligne 10 de lalgorithme AlgoBox ci-dessous pour quil permette de calculer Un aprs avoir entr n.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME U PREND_LA_VALEUR 1 LIRE n POUR i ALLANT_DE 1 A n DEBUT_POUR U PREND_LA_VALEUR ............... FIN_POUR AFFICHER U FIN_ALGORITHME

18

5. SUITES NUMRIQUES

Fiche lve 5D
Lalgorithme ci-dessous permet de calculer le terme de rang n dune suite (Un ) dnie de faon rcurrente. (U0 tant le premier terme de la suite)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME U PREND_LA_VALEUR 2 LIRE n POUR i ALLANT_DE 1 A n DEBUT_POUR U PREND_LA_VALEUR 4*U-3 FIN_POUR AFFICHER U FIN_ALGORITHME

1. Dduire de lalgorithme la valeur de U0 et lexpression de Un+1 en fonction de Un . 2. Calculer U1 et U2 .

Fiche lve 5E
Un produit cote actuellement 10 euros. Il est prvu que son prix augmente de 8 % par an. On pose U0 = 10 et on note Un le prix prvu du produit au bout de n annes. 1. Comment passe-t-on du prix dune anne au prix de lanne suivante ? 2. La suite (Un ) est-elle arithmtique ou gomtrique ? 3. On cherche dterminer au bout de combien dannes le prix du produit aura doubl laide de lalgorithme ci-dessous :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE DEBUT_ALGORITHME n PREND_LA_VALEUR 0 U PREND_LA_VALEUR 10 TANT_QUE (U.........) FAIRE DEBUT_TANT_QUE U PREND_LA_VALEUR U*1.08 n PREND_LA_VALEUR n+1 FIN_TANT_QUE AFFICHER n FIN_ALGORITHME

Complter la ligne 7 pour que lalgorithme rponde la question.

19

5. SUITES NUMRIQUES

Fiche lve 5F
La valeur dune action est actuellement de 100 euros. Il est prvu que cette valeur baisse de 10 % par mois. On pose U0 = 100 et on note Un la valeur de laction au bout de n mois. On cherche dterminer au bout de combien de mois le cours de laction aura diminu de moiti laide de lalgorithme ci-dessous :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE DEBUT_ALGORITHME n PREND_LA_VALEUR 0 U PREND_LA_VALEUR 100 TANT_QUE (U.............) FAIRE DEBUT_TANT_QUE U PREND_LA_VALEUR U*........... n PREND_LA_VALEUR n+1 FIN_TANT_QUE AFFICHER n FIN_ALGORITHME

Complter les lignes 7 et 9 pour que lalgorithme rponde la question.

20

5. SUITES NUMRIQUES

Fiche lve 5G
Un salari a reu deux propositions de salaire. 1. Proposition 1 : La premire anne, un salaire annuel de 20000 euros puis chaque anne une augmentation xe de 450 euros. On pose U0 = 20000, U1 le salaire au bout dun an, ..., Un le salaire au bout de n annes. a) Calculer U1 et U2 . b) Prciser si (Un ) est arithmtique ou gomtrique et exprimer Un en fonction de n. 2. Proposition 2 : La premire anne, un salaire annuel de 19900 euros puis chaque anne une augmentation de 2%. On pose V0 = 19900, V1 le salaire au bout dun an, ..., Vn le salaire au bout de n annes. a) Calculer V1 et V2 . b) Prciser si (Vn ) est arithmtique ou gomtrique et exprimer Vn en fonction de n. 3. Au dbut la proposition 1 semble meilleure que la proposition 2 pour le salari. An de dterminer si cela reste le cas dans la dure, on cherche construire un algorithme qui prcise la proposition donnant le meilleur salaire annuel pour les 20 prochaines annes. Complter les lignes 10, 11 et 15 ci-dessous pour que lalgorithme AlgoBox propos rponde la question.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE V EST_DU_TYPE NOMBRE DEBUT_ALGORITHME U PREND_LA_VALEUR 20000 V PREND_LA_VALEUR 19900 POUR n ALLANT_DE 1 A 20 DEBUT_POUR U PREND_LA_VALEUR U+.......... V PREND_LA_VALEUR V*.......... AFFICHER "Au bout de la " AFFICHER n AFFICHER " ime anne, " SI (..........) ALORS DEBUT_SI AFFICHER "la proposition 1 est la meilleure" FIN_SI SINON DEBUT_SINON AFFICHER "la proposition 2 est la meilleure" FIN_SINON FIN_POUR FIN_ALGORITHME

21

5. SUITES NUMRIQUES

Fiche lve 5H
On considre lalgorithme AlgoBox ci-dessous :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES somme EST_DU_TYPE NOMBRE n EST_DU_TYPE NOMBRE DEBUT_ALGORITHME somme PREND_LA_VALEUR 0 POUR n ALLANT_DE 1 A 100 DEBUT_POUR somme PREND_LA_VALEUR somme+sqrt(n) FIN_POUR AFFICHER somme

11: FIN_ALGORITHME

1. Complter les phrases ci-dessous : Quand n vaut 1 et que la ligne 8 est excute, la variable somme a pour nouvelle valeur Quand n vaut 2 et que la ligne 8 est excute, la variable somme a pour nouvelle valeur Quand n vaut 3 et que la ligne 8 est excute, la variable somme a pour nouvelle valeur

2. Que permet de calculer cet algorithme ?

22

6. GOMTRIE

Gomtrie
Fiche professeur 6A

Fiche lve correspondante : page 24 Fichier AlgoBox associ (algorithme complet) : algo_6A.alg Contexte (1S/1STL) : Algorithme de balayage de la distance entre un point xe et un point variable sur un segment de droite. Le but, dun point de vue algorithmique, est dhabituer les lves aux algorithmes de balayage (qui gurent dj au programme propos des fonctions) et de sintresser aussi leur abilit. Dun point de vue mathmatique, lactivit propose une initiation la notion de distance dun point une droite. Prolongement possible : Modier lalgorithme pour quil dtermine la valeur minimale de toutes les distances calcules. On peut alors crer un algorithme classique de recherche dun minimum.

Fiche professeur 6B
Fiche lve correspondante : page 25 Fichier AlgoBox associ (algorithme complet) : algo_6B.alg Contexte (1S) : Dtermination des points coordonnes entires sur un segment. Prolongement possible : Proposer un deuxime algorithme bas sur un double balayage en x et en y et comparer le cot en oprations des deux algorithmes.

23

6. GOMTRIE

Fiche lve 6A
Dans un repre orthonorm, on considre la droite D dquation y = 2x + 5 et pour tout rel m compris entre 0 et 2.5, on note M le point de la droite D dabscisse m.

Un lve prtend que la distance OM ne peut jamais tre infrieure 5 et on cherche vrier cette armation. Partie A : approche exprimentale On cherche tablir un algorithme qui vrie exprimentalement larmation de llve. Pour cela, on utilise la mthode dite du balayage : Pour chaque valeur de m (en partant de 0) on calcule la distance OM correspondante et on augmente la valeur de m de 0.01 tant que m na pas atteint 2.5. 1. Montrer que, pour tout m, la distance OM est gale 5m2 20m + 25. 2. Complter les lignes 6, 8 et 13 pour que lalgorithme AlgoBox ci-dessous permette de dtecter sil existe un point M pour lequel la distance OM est infrieure 5.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: VARIABLES m EST_DU_TYPE NOMBRE distance EST_DU_TYPE NOMBRE DEBUT_ALGORITHME m PREND_LA_VALEUR 0 TANT_QUE (m<=.........) FAIRE DEBUT_TANT_QUE distance PREND_LA_VALEUR ........................... SI (distance<sqrt(5)) ALORS DEBUT_SI AFFICHER "il y a un point pour lequel OM est infrieur sqrt(5)" FIN_SI m PREND_LA_VALEUR .............. FIN_TANT_QUE FIN_ALGORITHME

3. Peut-on tre sur que cet algorithme puisse dire de faon totalement able sil nexiste aucun point M tel que OM < 5 ? Partie B : approche algbrique 1. Montrer que pour tout m compris entre 0 et 2.5, on a OM = 5 (m 2)2 + 1. 2. En dduire la valeur minimale que peut prendre la distance OM . Pour quelle valeur de m obtient-on cette distance minimale ? Partie C : approche gomtrique On note H le point de la droite D dabscisse 2. 1. Montrer que H est le projet orthogonal de O sur la droite D . 2. Calculer la distance OH . Que constate-t-on ?

24

6. GOMTRIE

Fiche lve 6B
Durant une anne un individu a achet n DVD valant 15 euros pice et p livres valant 22 euros pice pour un montant total de 362 euros. On cherche dterminer les valeurs possibles de n et p. Premire analyse du problme : 1. Quelle relation lie n et p ? 2. Justier que n est ncessairement infrieur 25. Approche graphique : 1. Dans le plan muni dun repre, on considre les points dabscisse n et dordonne p pouvant rpondre au problme. Justier que ces points sont situs sur une droite D dont on donnera une quation. 2. La droite D est reprsente ci-dessous :

15

10

O
5 10 15 20 25

Daprs le graphique, il semble que que lon puisse avoir n = 5 et p = 13. Est-ce rellement le cas ? Approche algorithmique : Pour dterminer, de faon plus rigoureuse, les valeurs possibles de n et p, on cherche utiliser un algorithme bas sur le principe suivant : Pour toutes les abscisses entires x possibles sur la droite D , on calcule lordonne y du point de la droite dabscisse x et, si y est un entier, on ache x. Complter les lignes 5, 7 et 8 de lalgorithme AlgoBox ci-contre pour quil rponde au problme. (Note technique : pour dterminer si un nombre est un entier, on peut utiliser la fonction partie entire dont la syntaxe est floor() dans AlgoBox.)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME POUR x ALLANT_DE ... A .... DEBUT_POUR y PREND_LA_VALEUR ............................ SI (..................) ALORS DEBUT_SI AFFICHER x FIN_SI FIN_POUR FIN_ALGORITHME

25

7. TRIGONOMTRIE

Trigonomtrie
Fiche professeur 7A
Fiche lve correspondante : page 27 Fichier AlgoBox associ (algorithme complet) : algo_7A.alg Contexte (1S/1STL) : Dtermination de la mesure principale dune mesure de la forme n d

avec n > 0 et d > 0 - Utilisation dun TANT QUE. Prolongement possible : Dterminer le mme genre dalgorithme avec n < 0 et d > 0 ou concevoir un algorithme qui fonctionne dans tous les cas. On peut aussi crer un algorithme qui permette de trouver le rsultat directement sans boucle (plus dicile).

26

7. TRIGONOMTRIE

Fiche lve 7A
On cherche dterminer la mesure principale dun angle dont une mesure est de la forme (avec n > 0 et d > 0) en enlevant 2 tant que cela est ncessaire. ( ) n 2 = . 1. Complter le calcul suivant : d d 2. Complter les lignes 14 et 16 pour que lalgorithme AlgoBox ci-dessous rponde la question.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: VARIABLES n EST_DU_TYPE NOMBRE d EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n LIRE d SI (n>0 ET d>0 ) ALORS DEBUT_SI AFFICHER "mesure principale de " AFFICHER n AFFICHER "*pi/" AFFICHER d AFFICHER " : " TANT_QUE (............) FAIRE DEBUT_TANT_QUE n PREND_LA_VALEUR ...................... FIN_TANT_QUE AFFICHER n AFFICHER "*pi/" AFFICHER d FIN_SI FIN_ALGORITHME

n d

27

Deuxime partie

Annexes

28

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

Structures algorithmiques de base avec AlgoBox

Les activits proposes dans cette annexe permettent de sinitier aux structures algorithmiques de base prvues au programme quelque soit la lire (aucun pr-requis mathmatique spcique nest ncessaire).

29

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

A.1

Variables et aectations
Les variables en algorithmique

Les variables algorithmiques peuvent servir stocker des donnes de dirents types, mais nous nous contenterons ici dutiliser des variables du type NOMBRE. La valeur dune variable peut changer au l des instructions de lalgorithme. Les oprations sur les variables seectuent ligne aprs ligne et les unes aprs les autres. Quand lordinateur excute une ligne du type mavariable PREND_LA_VALEUR un calcul, il eectue dabord le calcul et stocke ensuite le rsultat dans mavariable. Activit n1 On considre lalgorithme suivant :
1: 2: 3: 4: 5: 6: 7: 8: 9: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE z EST_DU_TYPE NOMBRE DEBUT_ALGORITHME x PREND_LA_VALEUR 2 y PREND_LA_VALEUR 3 z PREND_LA_VALEUR x+y FIN_ALGORITHME

Aprs excution de lalgorithme : La variable x contient la valeur : La variable y contient la valeur : La variable z contient la valeur : Activit n2 On considre lalgorithme suivant :
1: 2: 3: 4: 5: 6: VARIABLES x EST_DU_TYPE NOMBRE DEBUT_ALGORITHME x PREND_LA_VALEUR 2 x PREND_LA_VALEUR x+1 FIN_ALGORITHME

Aprs excution de lalgorithme : La variable x contient la valeur : Activit n3 Ajoutons la ligne x PREND_LA_VALEUR 4*x la n du code prcdent. Ce qui donne :
1: 2: 3: 4: 5: 6: 7: VARIABLES x EST_DU_TYPE NOMBRE DEBUT_ALGORITHME x PREND_LA_VALEUR 2 x PREND_LA_VALEUR x+1 x PREND_LA_VALEUR 4*x FIN_ALGORITHME

Aprs excution de lalgorithme : La variable x contient la valeur :

30

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

Activit n4 On considre lalgorithme suivant :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES A EST_DU_TYPE NOMBRE B EST_DU_TYPE NOMBRE C EST_DU_TYPE NOMBRE DEBUT_ALGORITHME A PREND_LA_VALEUR B PREND_LA_VALEUR C PREND_LA_VALEUR B PREND_LA_VALEUR A PREND_LA_VALEUR

5 3 A+B B+A C

11: FIN_ALGORITHME

Aprs excution de lalgorithme : La variable A contient la valeur : La variable B contient la valeur : La variable C contient la valeur : Activit n5 On considre lalgorithme suivant :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE z EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x y PREND_LA_VALEUR x-2 z PREND_LA_VALEUR -3*y-4 AFFICHER z FIN_ALGORITHME

On cherche maintenant obtenir un algorithme quivalent sans utiliser la variable y. Complter la ligne 6 dans lalgorithme ci-dessous pour quil rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: VARIABLES x EST_DU_TYPE NOMBRE z EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x z PREND_LA_VALEUR .................... AFFICHER z FIN_ALGORITHME

31

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

A.2

Instructions conditionnelles

SI...ALORS...SINON Comme nous lavons vu ci-dessus, un algorithme permet dexcuter une liste dinstructions les unes la suite des autres. Mais on peut aussi "dire" un algorithme de nexcuter des instructions que si une certaine condition est remplie. Cela se fait grce la commande SI...ALORS :
SI...ALORS DEBUT_SI ... FIN_SI

Il est aussi possible dindiquer en plus lalgorithme de traiter le cas o la condition nest pas vrie. On obtient alors la structure suivante :
SI...ALORS DEBUT_SI ... FIN_SI SINON DEBUT_SINON ... FIN_SINON

Activit n6 On cherche crer un algorithme qui demande un nombre lutilisateur et qui ache la racine carre de ce nombre sil est positif. Complter la ligne 6 dans lalgorithme ci-dessous pour quil rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: VARIABLES x EST_DU_TYPE NOMBRE racine EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x SI (.........) ALORS DEBUT_SI racine PREND_LA_VALEUR sqrt(x) AFFICHER racine FIN_SI FIN_ALGORITHME

Activit n7 On cherche crer un algorithme qui demande lutilisateur dentrer deux nombres (stocks dans les variables x et y) et qui ache le plus grand des deux. Complter les ligne 9 et 13 dans lalgorithme ci-dessous pour quil rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE x LIRE y SI (x>y) ALORS DEBUT_SI AFFICHER ....... FIN_SI SINON DEBUT_SINON AFFICHER ...... FIN_SINON FIN_ALGORITHME

32

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

Activit n8 On considre lalgorithme suivant :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: VARIABLES A EST_DU_TYPE NOMBRE B EST_DU_TYPE NOMBRE DEBUT_ALGORITHME A PREND_LA_VALEUR 1 B PREND_LA_VALEUR 3 SI (A>0) ALORS DEBUT_SI A PREND_LA_VALEUR A+1 FIN_SI SI (B>4) ALORS DEBUT_SI B PREND_LA_VALEUR B-1 FIN_SI

15: FIN_ALGORITHME

Aprs excution de lalgorithme : La variable A contient la valeur : La variable B contient la valeur : Activit n9 On cherche concevoir un algorithme correspondant au problme suivant : on demande lutilisateur dentrer un nombre (qui sera reprsent par la variable x) si le nombre entr est dirent de 1, lalgorithme doit stocker dans une variable y la valeur de 1/(x-1) et acher la valeur de y (note : la condition x dirent de 1 sexprime avec le code x!=1). On ne demande pas de traiter le cas contraire. Complter lalgorithme ci-dessous pour quil rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES x EST_DU_TYPE NOMBRE y EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE ...... SI (........) ALORS DEBUT_SI ....... PREND_LA_VALEUR ....... AFFICHER ....... FIN_SI

11: FIN_ALGORITHME

33

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

A.3

Boucles

Boucles POUR...DE...A Les boucles permettent de rpter des instructions autant de fois que lon souhaite. Lorsquon connait par avance le nombre de fois que lon veut rpter les instructions, on utilise une boucle du type POUR...DE...A dont la structure est la suivante :
POUR...ALLANT_DE...A... DEBUT_POUR ... FIN_POUR

Exemple : lalgorithme ci-dessous permet dacher la racine carre de tous les entiers de 1 jusqu 50.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES n EST_DU_TYPE NOMBRE racine EST_DU_TYPE NOMBRE DEBUT_ALGORITHME POUR n ALLANT_DE 1 A 50 DEBUT_POUR racine PREND_LA_VALEUR sqrt(n) AFFICHER racine FIN_POUR FIN_ALGORITHME

La variable n est appele compteur de la boucle . Remarques :


La variable servant de compteur pour la boucle doit tre du type NOMBRE et doit tre dclare pralablement (comme toutes les variables). Dans AlgoBox, cette variable est automatiquement augmente de 1 chaque fois. On peut utiliser la valeur du compteur pour faire des calculs lintrieur de la boucle, mais les instructions comprises entre DEBUT_POUR et FIN_POUR ne doivent en aucun cas modier la valeur de la variable qui sert de compteur.

Activit n10 On cherche concevoir un algorithme qui ache, grce une boucle POUR...DE...A, les rsultats des calculs suivants : 8*1 ; 8*2 ; 8*3 ; 8*4 ; ... jusqu 8*10 . La variable n sert de compteur la boucle et la variable produit sert stocker et acher les rsultats. Complter les lignes 5 et 7 dans lalgorithme ci-dessous pour quil rponde au problme :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES n EST_DU_TYPE NOMBRE produit EST_DU_TYPE NOMBRE DEBUT_ALGORITHME POUR n ALLANT_DE .... A ..... DEBUT_POUR produit PREND_LA_VALEUR ....... AFFICHER produit FIN_POUR FIN_ALGORITHME

Activit n11 On considre lalgorithme suivant :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: VARIABLES n EST_DU_TYPE NOMBRE somme EST_DU_TYPE NOMBRE DEBUT_ALGORITHME somme PREND_LA_VALEUR 0 POUR n ALLANT_DE 1 A 100 DEBUT_POUR somme PREND_LA_VALEUR somme+n FIN_POUR AFFICHER somme FIN_ALGORITHME

34

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

Complter les phrases suivantes : Aprs excution de la ligne 5, La variable somme contient la valeur : Lorsque le compteur n de la boucle vaut 1 et aprs excution du calcul ligne 8, la variable somme vaut : Lorsque le compteur n de la boucle vaut 2 et aprs excution du calcul ligne 8, la variable somme vaut : Lorsque le compteur n de la boucle vaut 3 et aprs excution du calcul ligne 8, la variable somme vaut : Que permet de calculer cet algorithme ?

Activit n12 Complter les lignes 6 et 8 de lalgorithme ci-dessous pour quil permette de calculer la somme 52 + 62 + 72 + + 242 + 252 .
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: VARIABLES n EST_DU_TYPE NOMBRE somme EST_DU_TYPE NOMBRE DEBUT_ALGORITHME somme PREND_LA_VALEUR 0 POUR n ALLANT_DE .... A ...... DEBUT_POUR somme PREND_LA_VALEUR somme+...... FIN_POUR AFFICHER somme FIN_ALGORITHME

35

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

Boucles TANT QUE... Il nest pas toujours possible de connaitre par avance le nombre de rptitions ncessaires un calcul. Dans ce cas l, il est possible davoir recours la structure TANT QUE... qui se prsente de la faon suivante :
TANT_QUE...FAIRE DEBUT_TANT_QUE ... FIN_TANT_QUE

Cette structure de boucle permet de rpter une srie dinstructions (comprises entre DEBUT_TANT_QUE et FIN_TANT_QUE) tant quune certaine condition est vrie. Exemple : Comment savoir ce quil reste si on enlve 25 autant de fois que lon peut au nombre 583 ? Pour cela on utilise une variable n, qui contient 583 au dbut, laquelle on enlve 25 tant que cest possible, cest dire tant que n est suprieur ou gal 25.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES n EST_DU_TYPE NOMBRE DEBUT_ALGORITHME n PREND_LA_VALEUR 583 TANT_QUE (n>=25) FAIRE DEBUT_TANT_QUE n PREND_LA_VALEUR n-25 FIN_TANT_QUE AFFICHER n FIN_ALGORITHME

Remarques :
Si la condition du TANT QUE... est fausse ds le dbut, les instructions entre DEBUT_TANT_QUE et FIN_TANT_QUE ne sont jamais excutes (la structure TANT QUE ne sert alors strictement rien). Il est indispensable de sassurer que la condition du TANT QUE... nisse par tre vrie (le code entre DEBUT_TANT_QUE et FIN_TANT_QUE doit rendre vraie la condition tt ou tard), sans quoi lalgorithme ne pourra pas fonctionner.

Activit n13 Un individu a emprunt un ami une somme de 2500 euros (prt sans intrts). Pour rembourser son ami, il prvoit de lui remettre 110 euros par mois. Mais comme cela ne correspond pas un nombre pile de mois, il se demande quel sera le montant rembourser le dernier mois. Complter la ligne 5 dans lalgorithme ci-dessous pour quil rponde au problme :
1: VARIABLES 2: montant EST_DU_TYPE NOMBRE 3: DEBUT_ALGORITHME 4: montant PREND_LA_VALEUR 2500 5: TANT_QUE (............) FAIRE 6: DEBUT_TANT_QUE 7: montant PREND_LA_VALEUR montant-110 8: FIN_TANT_QUE 9: AFFICHER montant 10: FIN_ALGORITHME

Activit n14 On cherche connatre le plus petit entier N tel que 2N soit suprieur ou gal 10000. Pour rsoudre ce problme de faon algorithmique : On utilise une variable N laquelle on donne au dbut la valeur 1. On augmente de 1 la valeur de N tant que 2N nest pas suprieur ou gal 10000. Une structure TANT QUE est particulirement adapte ce genre de problme car on ne sait pas a priori combien de calculs seront ncessaires. Complter les lignes 5 et 7 de lalgorithme ci-dessous pour quil rponde au problme : (remarque : pow(2,N) est le code AlgoBox pour calculer 2N )

36

ANNEXE A. STRUCTURES ALGORITHMIQUES DE BASE AVEC ALGOBOX

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

VARIABLES N EST_DU_TYPE NOMBRE DEBUT_ALGORITHME N PREND_LA_VALEUR 1 TANT_QUE (pow(2,N).......) FAIRE DEBUT_TANT_QUE N PREND_LA_VALEUR ....... FIN_TANT_QUE AFFICHER N FIN_ALGORITHME

Activit n15 On considre le problme suivant : On lance une balle dune hauteur initiale de 300 cm. On suppose qu chaque rebond, la balle perd 10% de sa hauteur (la hauteur est donc multiplie par 0.9 chaque rebond). On cherche savoir le nombre de rebonds ncessaire pour que la hauteur de la balle soit infrieure ou gale 10 cm. Complter les lignes 7 et 10 de lalgorithme ci-dessous pour quil rponde au problme.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: VARIABLES nombre_rebonds EST_DU_TYPE NOMBRE hauteur EST_DU_TYPE NOMBRE DEBUT_ALGORITHME nombre_rebonds PREND_LA_VALEUR 0 hauteur PREND_LA_VALEUR 300 TANT_QUE (hauteur......) FAIRE DEBUT_TANT_QUE nombre_rebonds PREND_LA_VALEUR nombre_rebonds+1 hauteur PREND_LA_VALEUR ........... FIN_TANT_QUE AFFICHER nombre_rebonds

13: FIN_ALGORITHME

37

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B
Mmento sur lutilisation dAlgoBox
B.1 quivalence entre pseudo-codes
Rsum des dirences entre le pseudo-code utilis par AlgoBox et celui que lon peut rencontrer dans les manuels.

B.1.1

Entre des donnes


Variantes
Saisir... Entrer...

Pseudo-code AlgoBox
LIRE...

B.1.2

Achage des donnes


Variantes
crire...

Pseudo-code AlgoBox
AFFICHER...

B.1.3

Aecter une valeur une variable


Variantes
Affecter 3 A

Pseudo-code AlgoBox
A PREND_LA_VALEUR 3

A:=3

A 3

38

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B.1.4

Structure SI ALORS
Variantes
Si...alors ... FinSi

Pseudo-code AlgoBox
SI...ALORS DEBUT_SI ... FIN_SI

Si... Alors... FinSi

Pseudo-code AlgoBox
SI...ALORS DEBUT_SI ... FIN_SI SINON DEBUT_SINON ... FIN_SINON

Variantes
Si...alors ... sinon ... FinSi

Si... Alors... Sinon... FinSi

B.1.5

Boucle POUR...
Variantes
Pour...de...jusqu... ... FinPour

Pseudo-code AlgoBox
POUR...ALLANT_DE...A... DEBUT_POUR ... FIN_POUR

Pour...variant de...... ... FinPour

B.1.6

Structure TANT QUE...


Variantes
Tant que... ... FinTantQue

Pseudo-code AlgoBox
TANT_QUE...FAIRE DEBUT_TANT_QUE ... FIN_TANT_QUE

39

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B.2
B.2.1

Les problmes de syntaxe


Les erreurs de syntaxe les plus courantes

Erreur classique n1 : utiliser la virgule au lieu du point comme sparateur dcimal Erreur classique n2 : utiliser la syntaxe "SI x=y" au lieu de "SI x==y" pour vrier une galit dans une condition Erreur classique n3 : utiliser la syntaxe xy au lieu de pow(x,y) pour les puissances.

B.2.2

Syntaxe des oprations mathmatiques


Opration mathmatique x xy cos(x) (x en radians) sin(x) (x en radians) tan(x) (x en radians) ex ln x |x | Partie entire de x Nombre pseudo-alatoire compris entre 0 et 1 Reste de la division euclidienne de n par p arccos(x) arcsin(x) arctan(x) Valeur approche de x 10n prs syntaxe AlgoBox sqrt(x) pow(x,y) cos(x) sin(x) tan(x) exp(x) log(x) abs(x) floor(x) random() n%p Math.PI acos(x) asin(x) atan(x) ALGOBOX_ARRONDIR(x,n)

B.2.3

Syntaxe pour les conditions


Condition logique x=y x x x y y y x<y x>y condition1 ou condition2 condition1 et condition2 syntaxe AlgoBox x==y x!=y x<y x<=y x>y x>=y condition1 OU condition2 condition1 ET condition2

Remarque : il est possible dinclure des oprations mathmatiques dans les conditions. (exemple : pow(2,n)<100 )

40

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B.2.4

Syntaxe pour les fonctions statistiques et les oprations sur les listes
Somme des termes dune liste Moyenne Variance cart-type Mdiane Q1 (version calculatrice) Q3 (version calculatrice) Q1 (version ocielle ) Q3 (version ocielle ) Minimum dune liste Maximum dune liste Rang du minimum Rang du maximum
ALGOBOX_SOMME(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_MOYENNE(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_VARIANCE(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_ECART_TYPE(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_MEDIANE(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_QUARTILE1(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_QUARTILE3(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_QUARTILE1_BIS(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_QUARTILE3_BIS(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_MINIMUM(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_MAXIMUM(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_POS_MINIMUM(nom_liste,rang_premier_terme,rang_dernier_terme) ALGOBOX_POS_MAXIMUM(nom_liste,rang_premier_terme,rang_dernier_terme)

B.2.5

Fonctions concernant les probabilits


entier pseudo-alatoire entre p et n
n p

ALGOBOX_ALEA_ENT(p,n) ALGOBOX_COEFF_BINOMIAL(n,p)

(n

100) 100)

p(X = k ) pour la loi binomiale (n

ALGOBOX_LOI_BINOMIALE(n,p,k) ALGOBOX_LOI_NORMALE_CR(x) ALGOBOX_LOI_NORMALE(esp,ecart,x) ALGOBOX_INVERSE_LOI_NORMALE_CR(p) ALGOBOX_INVERSE_LOI_NORMALE(esp,ecart,p) ALGOBOX_FACTORIELLE(n)

p(X < x) pour la loi normale centre rduite p(X < x) pour la loi normale x tel p(X < x) = p pour la loi normale centre rduite x tel p(X < x) = p pour la loi normale n! ( n 69)

B.2.6

Fonctions concernant les chaines de caractres

Remarque : le contenu dune chane doit tre encadr par des guillemets. (exemple : machaine prend la valeur "bonjour" )
concatnation de deux chaines A et B sous-chaine de n caractres partir de la position p transformation dun nombre n en chaine transformation dune chaine en entier transformation dune chaine en rel longueur dune chaine code ASCII du caractre situ la position p chaine de code ASCII p A+B machaine.substr(p,n) n.toString() parseInt(machaine) parseFloat(machaine) machaine.length machaine.charCodeAt(p) String.fromCharCode(p)

B.3
B.3.1

Fonctionnement dAlgoBox
Les deux rgles fondamentales

1. Toute variable doit dabord tre dclare avant de pouvoir tre utilise. La premire chose faire avant de concevoir un algorithme est dailleurs de lister toutes les variables qui seront ncessaires. 2. Une nouvelle instruction ne peut sinsrer que sur une ligne vierge.

41

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B.3.2

Les variables

Attention Le nom des variables ne doit pas contenir despaces (que lon peut remplacer par le caractre _), ni daccents, ni de caractres spciaux. On ne peut pas non plus utiliser certains termes rservs : par exemple, une variable ne peut pas tre appele NOMBRE. Il est par contre conseill dutiliser des noms de variables explicites (mmes longs) pour rendre les algorithmes plus clairs.

B.3.3

Les listes de nombres

Il est possible dentrer directement les termes dune liste. Pour cela, il sut dutiliser linstruction LIRE maliste[1] (1 reprsentant le premier rang des termes de la liste que lon veut entrer). Lors de lexcution de lalgorithme, il sura alors dentrer toutes les valeurs souhaites (dans lordre) en les sparant par : .

B.3.4

Boucle POUR...DE...A

On nutilise ce genre de boucles que si on connat lavance le nombre de rptitions eectuer. La variable servant de compteur pour la boucle doit tre du type NOMBRE et doit tre dclare pralablement (comme toutes les variables). Dans AlgoBox, cette variable est automatiquement augmente de 1 chaque fois. Attention On peut utiliser la valeur du compteur pour faire des calculs lintrieur de la boucle, mais les instructions comprises entre DEBUT_POUR et FIN_POUR ne doivent en aucun cas modier la valeur de la variable qui sert de compteur. Le nombre ditrations sur AlgoBox est limit 500 000. En cas de dpassement, lalgorithme sarrte et le message ***Algorithme interrompu suite une erreur*** est ach. Si les instructions rpter comportent lachage dune variable ou un trac graphique, il faut limiter le nombre ditrations moins dun millier (ou gure plus) : sans quoi, lexcution du programme risque de prendre beaucoup trop de temps. Par contre, sil ny que des calculs rpter on peut pousser le nombre ditrations plus loin.

B.3.5

Structure TANT QUE

Cette structure sert rpter des instructions que lon connaisse ou non par avance le nombre ditrations eectuer. Si la condition du TANT QUE... est fausse ds le dbut, les instructions entre DEBUT_TANT_QUE et FIN_TANT_QUE ne sont jamais excutes (la structure TANT QUE ne sert alors strictement rien).

42

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

Attention Il est indispensable de sassurer que la condition du TANT QUE... nisse par tre vrie (le code entre DEBUT_TANT_QUE et FIN_TANT_QUE doit rendre vraie la condition tt ou tard), sans quoi lalgorithme va se lancer dans une boucle innie . An dviter les boucles innies, le nombre ditrations est l aussi limit 500 000. En cas de dpassement, lalgorithme sarrte et le message ***Algorithme interrompu suite une erreur*** est ach. Si les instructions rpter comportent lachage dune variable ou un trac graphique, il faut limiter le nombre ditrations moins dun millier (ou gure plus) : sans quoi, lexcution du programme risque de prendre beaucoup trop de temps. Par contre, sil ny que des calculs rpter on peut pousser le nombre ditrations plus loin.

B.3.6

Utilisation de longlet Utiliser une fonction numrique

En activant loption "Utiliser une fonction" dans longlet "Utiliser une fonction numrique", on peut utiliser limage de nimporte quel nombre (ou variable de type nombre) par la fonction note F1 dans le code de lalgorithme. Il sut pour cela dentrer lexpression de F1(x) en fonction de x dans le champ prvu pour cela. Pour utiliser limage dun nombre nb par la fonction F1 dans lalgorithme, il sut dutiliser le code : F1(nb) (cela peut se faire dans une aectation ou dans une expression conditionnelle). Cette option est particulirement utile quand un algorithme ncessite le calcul de plusieurs images par une mme fonction. Un exemple classique est celui de la dichotomie :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: VARIABLES precision EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE m EST_DU_TYPE NOMBRE DEBUT_ALGORITHME a PREND_LA_VALEUR ... b PREND_LA_VALEUR ... LIRE precision TANT_QUE (b-a>precision) FAIRE DEBUT_TANT_QUE m PREND_LA_VALEUR (a+b)/2 SI (F1(m)*F1(b)>0) ALORS DEBUT_SI b PREND_LA_VALEUR m FIN_SI SINON DEBUT_SINON a PREND_LA_VALEUR m FIN_SINON AFFICHER a AFFICHER " < solution < " AFFICHER b FIN_TANT_QUE FIN_ALGORITHME

B.3.7

Utilisation de longlet Dessiner dans un repre

En activant loption "Utiliser un repre" dans longlet "Dessiner dans un repre", un repre graphique est automatiquement ajout dans la fentre de test de lalgorithme. Il est alors possible dinclure dans le code de lalgorithme des instructions pour tracer des points et des segments dans ce repre en utilisant les boutons "Ajouter TRACER POINT" et "Ajouter TRACER SEGMENT". Attention La fentre du repre est dnie lors de la premire utilisation des instructions TRACER_POINT et TRACER_SEGMENT. Si la fentre doit dpendre de la valeur de certaines variables, il faut sassurer que celles-ci sont bien dnies avant le premier trac.

43

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

Exemple : reprsentation graphique dune uctuation dchantillonnage (100 simulations de 1000 lancers dune pice)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: VARIABLES simulation EST_DU_TYPE NOMBRE lancer EST_DU_TYPE NOMBRE nb_de_piles EST_DU_TYPE NOMBRE frequence EST_DU_TYPE LISTE moy EST_DU_TYPE NOMBRE ecart_type EST_DU_TYPE NOMBRE DEBUT_ALGORITHME POUR simulation ALLANT_DE 1 A 100 DEBUT_POUR nb_de_piles PREND_LA_VALEUR 0 POUR lancer ALLANT_DE 1 A 1000 DEBUT_POUR SI (random()<0.5) ALORS DEBUT_SI nb_de_piles PREND_LA_VALEUR nb_de_piles+1 FIN_SI FIN_POUR frequence[simulation] PREND_LA_VALEUR nb_de_piles/1000 TRACER_POINT (simulation,frequence[simulation]) FIN_POUR moy PREND_LA_VALEUR ALGOBOX_MOYENNE(frequence,1,100) TRACER_SEGMENT (1,moy)->(100,moy) ecart_type PREND_LA_VALEUR ALGOBOX_ECART_TYPE(frequence,1,100) TRACER_SEGMENT (1,moy+2*ecart_type)->(100,moy+2*ecart_type) TRACER_SEGMENT (1,moy-2*ecart_type)->(100,moy-2*ecart_type) FIN_ALGORITHME

Xmin: 1 ; Xmax: 100 ; Ymin: 0.4 ; Ymax: 0.6 ; GradX: 10 ; GradY: 0.01

B.3.8

Utilisation de longlet Fonction avance

En activant loption "Utiliser la fonction F2..." dans longlet "Fonction avance", on peut dnir : une fonction dnie par morceaux ; une fonction dpendant de plusieurs paramtres (contrairement la fonction F1 qui ne doit dpendre que de x) ; une fonction dnie de faon rcursive. Pour cela, il faut : prciser les paramtres dont dpend la fonction ; ajouter une une les conditions permettant de dnir la fonction ; indiquer ce que doit retourner la fonction quand aucune des conditions nest remplie. Exemple avec le calcul du pgcd de deux entiers (mthode rcursive) :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: VARIABLES p EST_DU_TYPE NOMBRE q EST_DU_TYPE NOMBRE pgcd EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE p LIRE q pgcd PREND_LA_VALEUR F2(p,q) AFFICHER pgcd FIN_ALGORITHME

fonction F2(p,q): SI (p==0) RENVOYER q SI (q==0) RENVOYER p SI (q<=p) RENVOYER F2(p-q,q) Dans les autres cas, RENVOYER F2(p,q-p)

B.3.9

Rcupration facile dun code AlgoBox dans un traitement de texte

Pour copier un code AlgoBox facilement sans passer par les commandes dexportation du menu Fichier, il sut de :
44

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

lancer la fentre de test de lalgorithme ; slectionner le code copier dans la page web de test (la partie suprieure de la fentre) ; faire glisser le code slectionn vers son traitement de texte.

B.4
B.4.1

Quelques techniques classiques


Diviseur ?

Condition pour vrier si un entier P est un diviseur dun entier N : N%P==0

B.4.2

Entier pair ou impair ?

Condition pour vrier si un entier N est pair : N%2==0 Condition pour vrier si un entier N est impair : N%2!=0 (autre condition possible : N%2==1)

B.4.3

Entier pseudo-alatoire compris entre 1 et N

Pour obtenir un entier pseudo-alatoire compris entre 1 et N : ... PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,N) ou ... PREND_LA_VALEUR floor(N*random()+1) Exemple pour la face dun d : ... PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,6)

B.4.4

Balayage dun intervalle

Deux mthodes peuvent tre utilises pour balayer un intervalle [a ; b] (a et b faisant partie du traitement). Premire mthode en entrant le nombre de subdivisions et en utilisant une boucle POUR... :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: VARIABLES i EST_DU_TYPE NOMBRE nbsubdivisions EST_DU_TYPE NOMBRE pas EST_DU_TYPE NOMBRE x EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b LIRE nbsubdivisions pas PREND_LA_VALEUR (b-a)/nbsubdivisions POUR i ALLANT_DE 0 A nbsubdivisions DEBUT_POUR x PREND_LA_VALEUR a+i*pas traitement.... FIN_POUR FIN_ALGORITHME

45

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

Deuxime mthode en entrant directement le pas et en utilisant une structure TANT QUE... :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: VARIABLES pas EST_DU_TYPE NOMBRE x EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b LIRE pas x PREND_LA_VALEUR a TANT_QUE (x<=b) FAIRE DEBUT_TANT_QUE traitement.... x PREND_LA_VALEUR x+pas FIN_TANT_QUE FIN_ALGORITHME

B.4.5

Suites numriques

Dun strict point de vue programmation, lutilisation dune liste pour manipuler les termes dune suite dans un algorithme nest gure optimal. Par contre, dun point de vue pdagogique, la correspondance troite entre terme dune suite et terme dune liste AlgoBox peut permettre de conforter la comprhension par les lves du formalisme sur les suites numriques. Pour modliser une suite (Un ) laide dun algorithme AlgoBox, on peut utiliser une variable de type LISTE note U. Ainsi :
le terme U0 de la suite sera reprsent par U[0] dans lalgorithme ; le terme U1 de la suite sera reprsent par U[1] dans lalgorithme ; etc... le terme Un de la suite sera reprsent par U[n] dans lalgorithme ; le terme Un+1 de la suite sera reprsent par U[n+1] dans lalgorithme ;

Exemple avec une suite rcurrente : Sans utiliser de liste :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n U PREND_LA_VALEUR 1 POUR i ALLANT_DE 0 A n-1 DEBUT_POUR U PREND_LA_VALEUR 1+2*U FIN_POUR AFFICHER U

13: FIN_ALGORITHME

En utilisant une liste AlgoBox :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: VARIABLES n EST_DU_TYPE NOMBRE U EST_DU_TYPE LISTE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n U[0] PREND_LA_VALEUR 1 POUR i ALLANT_DE 0 A n-1 DEBUT_POUR U[i+1] PREND_LA_VALEUR 1+2*U[i] FIN_POUR AFFICHER U[n] FIN_ALGORITHME

46

ANNEXE B. MMENTO SUR LUTILISATION DALGOBOX

B.4.6

changer le contenu de deux variables

Pour changer le contenu de deux variables A et B, il sut dutiliser une troisime variable temp :
temp PREND_LA_VALEUR A A PREND_LA_VALEUR B B PREND_LA_VALEUR temp

Exemple : tri dune liste de valeurs par change du minimum


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: VARIABLES listenombre EST_DU_TYPE LISTE temp EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE min EST_DU_TYPE NOMBRE nbtermes EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE nbtermes //Entrer les "nbtermes" valeurs sous la forme valeur1:valeur2:etc... LIRE listenombre[1] POUR i ALLANT_DE 1 A nbtermes-1 DEBUT_POUR min PREND_LA_VALEUR ALGOBOX_POS_MINIMUM(listenombre,i+1,nbtermes) SI (listenombre[i]>listenombre[min]) ALORS DEBUT_SI temp PREND_LA_VALEUR listenombre[min] listenombre[min] PREND_LA_VALEUR listenombre[i] listenombre[i] PREND_LA_VALEUR temp FIN_SI FIN_POUR POUR i ALLANT_DE 1 A nbtermes DEBUT_POUR AFFICHER listenombre[i] AFFICHER " " FIN_POUR FIN_ALGORITHME

B.4.7

Acher un message contenant du texte et des nombres

Il sut pour cela dutiliser une variable du type CHAINE. Exemple :


1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE message EST_DU_TYPE CHAINE somme EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b somme PREND_LA_VALEUR a+b message PREND_LA_VALEUR a.toString()+" + "+b.toString()+" est gal "+somme.toString() AFFICHER message FIN_ALGORITHME

Rsultat :
***Algorithme lanc*** Entrer a : 4 Entrer b : 7 4 + 7 est gal 11 ***Algorithme termin***

47

ANNEXE C. ALGORITHMES SUPPLMENTAIRES

Algorithmes supplmentaires
C.1
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:

Second degr
VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE delta EST_DU_TYPE NOMBRE x1 EST_DU_TYPE NOMBRE x2 EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b LIRE c SI (a!=0) ALORS DEBUT_SI delta PREND_LA_VALEUR b*b-4*a*c SI (delta<0) ALORS DEBUT_SI AFFICHER "Pas de racines relles" FIN_SI SI (delta==0) ALORS DEBUT_SI x1 PREND_LA_VALEUR -b/(2*a) AFFICHER "Une racine double : " AFFICHER x1 FIN_SI SI (delta>0) ALORS DEBUT_SI x1 PREND_LA_VALEUR (-b-sqrt(delta))/(2*a) x2 PREND_LA_VALEUR (-b+sqrt(delta))/(2*a) AFFICHER "Premire racine : " AFFICHER x1 AFFICHER "Deuxime racine : " AFFICHER x2 FIN_SI FIN_SI SINON DEBUT_SINON AFFICHER "Pas du second degr" FIN_SINON FIN_ALGORITHME

Solutions de lquation du second degr ax2 + bx + c = 0.

48

ANNEXE C. ALGORITHMES SUPPLMENTAIRES

C.2
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:

Paramtres dune srie statistique


VARIABLES valeurs EST_DU_TYPE LISTE effectifs EST_DU_TYPE LISTE nb_valeurs EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE liste_complete EST_DU_TYPE LISTE j EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE moyenne EST_DU_TYPE NOMBRE ecart_type EST_DU_TYPE NOMBRE mediane EST_DU_TYPE NOMBRE premier_quartile EST_DU_TYPE NOMBRE troisieme_quartile EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE nb_valeurs LIRE valeurs[1] LIRE effectifs[1] k PREND_LA_VALEUR 1 POUR i ALLANT_DE 1 A nb_valeurs DEBUT_POUR POUR j ALLANT_DE 1 A effectifs[i] DEBUT_POUR liste_complete[k] PREND_LA_VALEUR valeurs[i] k PREND_LA_VALEUR k+1 FIN_POUR FIN_POUR moyenne PREND_LA_VALEUR ALGOBOX_MOYENNE(liste_complete,1,k-1) AFFICHER "Moyenne : " AFFICHER moyenne ecart_type PREND_LA_VALEUR ALGOBOX_ECART_TYPE(liste_complete,1,k-1) AFFICHER "Ecart-type : " AFFICHER ecart_type mediane PREND_LA_VALEUR ALGOBOX_MEDIANE(liste_complete,1,k-1) AFFICHER "Mdiane : " AFFICHER mediane premier_quartile PREND_LA_VALEUR ALGOBOX_QUARTILE1_BIS(liste_complete,1,k-1) AFFICHER "Q1 : " AFFICHER premier_quartile troisieme_quartile PREND_LA_VALEUR ALGOBOX_QUARTILE3_BIS(liste_complete,1,k-1) AFFICHER "Q3 : " AFFICHER troisieme_quartile FIN_ALGORITHME

Calcul des paramtres statistiques sur srie (valeurs,eectifs).

49

ANNEXE C. ALGORITHMES SUPPLMENTAIRES

C.3
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69:

Tabulation loi binomiale - Intervalle de uctuation 95%


VARIABLES taille_echantillon EST_DU_TYPE NOMBRE p EST_DU_TYPE NOMBRE somme EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE fluct_min EST_DU_TYPE NOMBRE fluct_max EST_DU_TYPE NOMBRE prob EST_DU_TYPE NOMBRE max_prob EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE taille_echantillon SI (taille_echantillon<1 OU taille_echantillon>100) ALORS DEBUT_SI AFFICHER "Calcul non autoris" FIN_SI SINON DEBUT_SINON LIRE p a PREND_LA_VALEUR -1 b PREND_LA_VALEUR -1 max_prob PREND_LA_VALEUR 0 POUR k ALLANT_DE 0 A taille_echantillon DEBUT_POUR prob PREND_LA_VALEUR ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) SI (prob>max_prob) ALORS DEBUT_SI max_prob PREND_LA_VALEUR prob FIN_SI FIN_POUR AFFICHER "taille chantillon : " AFFICHER taille_echantillon AFFICHER "proportion p : " AFFICHER p AFFICHER "k -> p(X<=k) :" POUR k ALLANT_DE 0 A taille_echantillon DEBUT_POUR prob PREND_LA_VALEUR ALGOBOX_LOI_BINOMIALE(taille_echantillon,p,k) somme PREND_LA_VALEUR somme+prob AFFICHER k AFFICHER " -> " AFFICHER somme SI (somme<=0.025) ALORS DEBUT_SI TRACER_SEGMENT (k,0)->(k,prob) FIN_SI SI (somme>0.025 ET somme<0.975) ALORS DEBUT_SI TRACER_SEGMENT (k,0)->(k,prob) SI (a==-1) ALORS DEBUT_SI a PREND_LA_VALEUR k FIN_SI FIN_SI SI (somme>=0.975) ALORS DEBUT_SI SI (b==-1) ALORS DEBUT_SI b PREND_LA_VALEUR k TRACER_SEGMENT (k,0)->(k,prob) FIN_SI SINON DEBUT_SINON TRACER_SEGMENT (k,0)->(k,prob) FIN_SINON FIN_SI FIN_POUR fluct_min PREND_LA_VALEUR a/taille_echantillon

Tabulation loi binomiale et intervalle de uctuation 95% dune proportion p.

50

ANNEXE C. ALGORITHMES SUPPLMENTAIRES

70: AFFICHER "a : " AFFICHER a 71: 72: AFFICHER "b : " 73: fluct_max PREND_LA_VALEUR b/taille_echantillon AFFICHER b 74: 75: AFFICHER "intervalle de fluctuation : [ " 76: AFFICHER fluct_min 77: AFFICHER " ; " 78: AFFICHER fluct_max AFFICHER " ] " 79: FIN_SINON 80: 81: FIN_ALGORITHME

Notes : max_prob sert dnir la fentre graphique :

Les btons situs entre a et b sont dessins en bleu (lignes 50 et 61), les autres sont tracs en rouge (lignes 46 et 65).

51