Académique Documents
Professionnel Documents
Culture Documents
ALGORITHMIQUE.
Avril 2014
Page 1
TABLE DES MATIERES
Page 2
Principales commandes pour programmer dans différents langages
Langages de programmation
Langage algorithmique
Sur TI Sur Casio Logiciel Algobox Logiciel Xcas
Déclarer une variable A Inutile Inutile local A ;
saisir("Entrer A",A);
ou
saisir(A);
Saisir A Input "A=",A ou si on a une fonction :
ou "A=":?Ñ A nom_programme(A ):=t
Prompt A instruction(s); u:;
afficher("A vaut :",A) ;
ou
afficher(A);
Afficher A ou si on a une fonction :
Disp"A=",A "A=":A nom_programme(paramètres ):=t
instruction(s);
retourne A;u:;
valÑA valÑA
Affecter à A la valeur val A:=val;
• le "et" s’écrit et
Opérateurs logiques • le "et" s’écrit ET • le "ou" s’écrit ou
et, ou, ou exclusif, non • le "ou" s’écrit OU • le "ou exclusif" s’écrit xor
• le non s’écrit non
Il faudra déclarer
auparavant la variable I pour j de 1jusque N faire
instructions;
Pour I de 1 jusque N fpour ;
faire For(I,1,N) For 1ÑI To N Ne pas utiliser la variable i
instructions instructions instructions comme compteur car c’est une
Fpour End Next lettre prédéfinie qui désigne le i
des complexes.
Langages de programmation
Langage algorithmique
Sur TI Sur Casio Logiciel Algobox Logiciel Xcas
Instruction conditionnelle Si...alors...[Sinon]...Fsi
Si conditions si conditions
If conditions If conditions
alors alors
Then Then instructions ;
instructions
instructions instructions fsi ;
Fsi
End IfEnd
Si conditions si conditions
If conditions If conditions
alors alors
Then Then
instructions instructions;
instructions instructions sinon
Sinon
Else Else instructions;
instructions
instructions instructions fsi ;
Fsi
End IfEnd
Partie entière de x
floor(x) floor(x)
int(x) Intg(x)
Arrondi à l’unité de x
round(x) round(x)
round(x,0) RndFix(x,0)
Reste de la division MOD(A,B) (certaines
euclidienne de A par A-B*int(A/B) calculatrices) A%B irem(A,B)
B A-B*Intg(AB)
Logarithme népérien
de x : lnpxq
ln(x) ln(x) log(x) ln(x)
Nombre réel
pseudo-aléatoire dans random() rand(0,1)
r0 ; 1r rand Rand#
Entier aléatoire dans
r|a ; b|s, avec a et b
ALGOBOX_ALEA_ENT(a,b)
avec la partie entière : avec la partie entière :
ou a+rand(b-a+1)
a+int((b-a+1)*rand) a+Intg((b-a+1)*Rand#)
deux entiers donnés
a+floor((b-a+1)*random())
Langages de programmation
Langage algorithmique
Sur TI Sur Casio Logiciel Algobox Logiciel Xcas
Listes
Introduction :
Le but des séances présentées est de familiariser les élèves à la lecture d’algorithmes simples, à leur création
en langage naturel, puis à les réaliser soit avec le logiciel ALGOBOX soit en les programmant sur leur
calculatrice.
Les notions du programme ont été abordées en trois temps durant les séances de module à 18 élèves. Chaque
partie débute par la découverte des notions, puis quelques définitions, suivis des syntaxes : algorithme papier
– logiciel ALGOBOX – calculatrice TI – calculatrice CASIO. Enfin des applications sont proposées pour
mettre en pratique ces notions.
Toutes ces activités ont été menées lors des deux premiers trimestres. Au dernier trimestre, les élèves par
petits groupes ont du traiter l’un des devoirs maison proposés.
Le compléter.
Affectation.
Il s’agit d’attribuer une valeur à une variable, valeur qui peut être de plusieurs types : numérique (entier ou
réel), alphanumérique (texte), booléen (vrai ou faux).
Syntaxe :
* a prend la valeur 2 ; on affecte la valeur 2 à la variable a ou a reçoit la valeur 2
Syntaxe : « afficher a »
Ecrire un algorithme papier, puis avec Algobox et enfin avec votre calculatrice permettant le calcul des
coordonnées du milieu du segment [AB] connaissant les coordonnées des points A et B
Afficher « les
coordonnées sont »
Afficher xI,yI
Fin
Ecrire un algorithme papier, puis avec Algobox et enfin avec votre calculatrice permettant le calcul de la
longueur AB connaissant les coordonnées des points A et B
Page 9
ALGORITHMIQUE (2ème partie) : La structure alternative ou test
Dans un repère orthonormé (O ;I,J), on considère les points A, B et C de coordonnées respectives (x A, yA), (xB, yB),
(xC, yC).
Début
Saisir xA, yA, xB, yB, xC, yC
Si ……………. Alors
Définition
Une condition est un énoncé qui peut être vrai ou faux. Par exemple a = b ou n est pair
Dans un programme, selon qu’une condition est vraie ou fausse, on peut effectuer un traitement ou un autre : on parle
de traitements conditionnels.
On traduit la structure alternative par les instructions suivantes :
Syntaxe :
Si condition alors
Traitement 1
Sinon
Traitement 2
FinSi
4. Ecrire un algorithme papier, puis avec Algobox et enfin avec votre calculatrice permettant d’afficher la valeur
absolue d’un nombre donné.
Page 11
ALGORITHMIQUE (3ème partie) : Les structures itératives ou boucles
Découverte :
Partie 1 : d’après le livre Math’x de 2de
Voici un algorithme :
Variables : N, I, S : réels
Début
Afficher « saisir un entier N : »
Saisir N
Pour I de 0 à 12
S reçoit N I
Afficher N « » I « = »S
Fin Pour
Fin
2. Combien de cubes sont nécessaires pour passer de l’étape 3 à l’étape 4, puis de l’étape 4 à l’étape 5, puis de
l’étape (n-1) à l’étape n avec n ?
3. Compléter l’algorithme suivant dont le but est d’afficher le nombre N d’étapes que l’on peut réaliser avec 100
cubes et le nombre R de cubes restants.
Variables : N, S, R : réels
Début :
N reçoit 0
S reçoit 0
R reçoit 100
Tant que R N+1
N reçoit ….
S reçoit S + N
R reçoit
Fin Tant que
Afficher …….
Afficher …….
Fin
N S R Variables
0 0 100 Initialisation
1 Déroulement de
la boucle
5. Que représente S ?
Page 12
Partie 3 :
1. Dans ces deux activités, on a utilisé des boucles. Comment les définir ?
Définitions
Une boucle permet de répéter plusieurs fois de suite un même traitement.
Lorsque le nombre de répétitions (ou itérations) noté « n »est connu à l’avance, on utilise un compteur initialisé à
1 et qui s’incrémente automatiquement de 1 à chaque itération jusqu’à n. On parle de boucle itérative
Syntaxe :
Pour I de 1 à n
Traitement
Fin Pour
Lorsque le nombre de répétitions (ou itérations) noté « n » n’est pas connu à l’avance, il peut dépendre d’une
condition, le traitement est répété tant que la condition est vraie. Lorsqu’elle est fausse, on sort de la boucle. On
parle de boucle conditionnelle.
Syntaxe :
Tant que condition
Traitement
Fin Tant que
Applications :
A. On partage I en 100 intervalles de même amplitude. Quelle est la distance entre les abscisses de deux points
consécutifs ?
Variables : x, y, i : réels
Début :
Pour i allant de ………. à ……..
x reçoit -2 +….
y reçoit …………
Placer le point de coordonnées (x; y)
Fin Pour
Fin
G. Ecrire le programme sur Algobox
Remarque:
Page 14
2. Pierre place 5000€ sur un compte épargne à 2% par an. Chaque année, les intérêts s’ajoutent au capital. Il compte
aussi placer 200€ de plus par an. Il souhaite savoir au bout de combien d’années son épargne dépassera 10 000€,
et combien il aura alors.
Ecrire un algorithme papier, puis avec Algobox, puis sur votre calculatrice pour répondre au problème.
Variable : A, B, Q : réels
Début :
Saisir A, B
Si B 0
Alors Q reçoit
Afficher Q
a. Tester cet algorithme pour a = 2 et b=4, puis a=0 et b=3, enfin a=10 et b=0
c. Ecrire un algorithme papier permettant d’afficher l’image d’un nombre x par la fonction f définie par
f(x) = si c’est possible et sinon d’afficher un message d’impossibilité
f. Modifier votre algorithme pour éviter de relancer l’algorithme si on désire calculer l’image de
plusieurs réels.
g. Modifier votre algorithme pour qu’il fasse le travail demandé pour n’importe quelle fonction
homographique.
Page 15
Voici un exemple d’algorithme pour cette dernière question :
Page 16
4. Méthode de dichotomie :
On considère la fonction polynôme f(x) = x²-x-4, et on cherche une valeur approchée de la solution de l’équation
f(x)=0 sur [1 ; 3].
Variable : A, B : réels
N : entier
Début :
Saisir A, B, N
Tant que B-A>10-N
Si f(A) f( )>0
Alors A reçoit
Sinon B reçoit
Fin Si
FinTant que
Afficher A, B
Fin
Valeur de A Valeur de B Valeur de B-A Valeur de Signe de f(A) f( ) Nouvelle valeur Nouvelle valeur
de A de B
1 3
Page 17
5. Application : Ecrire un algorithme papier, puis avec Algobox permettant d’encadrer à 10-3 près
Page 19
DEVOIR A LA MAISON N°G
Partie 1 :
Dans un repère (O.I, J) orthonormé, on considère une fonction f telle que f(-2) = 3.1, f(0) = -1.7 et f(5) = -5.2 .
1. Calculer de deux façons le taux de variations de f
2. Que remarquez-vous ?
3. Cette fonction f est-elle affine ?
4. Même travail avec f (1.2) = 2.4, f(-2) = -4 et f(3) = 6 .
Partie 2 : Créer un algorithme avec ALGOBOX qui permet de savoir si une fonction f est affine ou pas connaissant
trois réels et leurs images par cette fonction : f(a) = b, f(c) = d et f(e) = k.
Page 20
Le jeu du "C’est plus, c’est moins" Activité proposée en Seconde
Principe du jeu : la calculatrice choisit au hasard un entier entre 1 et 100 et l’utilisateur doit le deviner
en faisant des propositions. La calculatrice répond alors selon deux types de réponses :
• plus grand (la valeur cherchée est supérieure à la valeur proposée)
• plus petit (la valeur cherchée est inférieure à la valeur proposée)
Un compteur à l’intérieur de la boucle compte le nombre d’essais.
DEVINE DEVINE
:RandInt#(1,100) N Ñ RanInt#(1,100) Nê Ñ
ou ou
:Int(100*Rand+1) N Ñ Int(100*Ran#+1) Nê Ñ
Ñ
:0 A Ñ
0 Aê
Ñ
:0 I Ñ
0 Iê
:While A=0 While A=0ê
:Input "VOTRE CHOIX",P "VOTRE CHOIX":? Pê Ñ
:If P=N If P=Nê
:Then Then 1 Aê Ñ
Ñ
:1 A Elseê
:Else If P>Nê
:If P>N Then "PLUS PETIT"ê
:Then Elseê
:Disp"PLUS PETIT" "PLUS GRAND"ê
:Else IfEndê
:Disp"PLUS GRAND" IfEndê
:End I+1 IêÑ
:End WhileEndê
:I+1 IÑ "BRAVO":N
:End "NBRE ESSAIS":I
:Disp"BRAVO",N
:Disp"NBRE ESSAIS",I
Page 21
Longueur d'une courbe.
Exercice :
On souhaite approcher la longueur d'une courbe représentant une fonction f donnée en la
remplaçant par une succession de cordes.
La longueur de l'arc de parabole peut être approchée par la somme des longueurs des 4 cordes a, b,
c, d.
Sur le dessin ci-dessus, les 4 cordes ont pour extrémité des points de l'arc de parabole d'abscisse
i
, i variant de 0 à 4.
4
On comprend qu'en augmentant le nombre de cordes, la précision obtenue sera meilleure.
D'où l'algorithme suivant, valable pour les fonctions continues, sur un intervalle quelconque [a,b]
où la fonction f est définie.
Page 22
On choisit a et b , extrémités de
l'intervalle.
On choisit n, le nombre d'intervalles.
h est la largeur d'un intervalle
L est la somme des longueurs des cordes
L est initialisée à 0.
x1 et x2 sont les abscisses des extrémités
d'un intervalle.
y1 et y2 sont leurs images.
Utilisation de la formule de la distance.
La dernière valeur de L est la somme des
longueurs des n cordes.
Ce qu'on obtient :
1°) si F1(x)=x², a=0, b=1
L'algorithme en langage TI :
Input A
Input B
Input N
(B-A)/N→H
0→L
For(I,0,N-1)
A+I*H→E
E+H→F
Y1(E)→G Y1 est la fonction stockée dans la calculatrice avec la touche F1.
Y1(F)→K Pour écrire Y1 dans le programme, on fait var-Y-vars-Fonction-Y1
L+√((E-F)²+(G-K)²)→L
End
Disp L
Page 23
TRACER UNE COURBE POINT PAR POINT.
Exercice
Une fonction f étant donnée ainsi qu'un intervalle [a;b], construire point par point la courbe
représentative de f sur [a;b] avec une précision p. (La précision est la différence d'abscisse de
deux points consécutifs)
Remarques :
1) Si l'on veut diminuer le nombre de variables avec les élèves, on peut fixer a, fixer b.
2) la variable x est inutile, mais permet de garder a constant, ce qui est peut être plus facile à
comprendre pour les élèves.
Les remarques déjà évoquées plus haut sont ici aussi valables.
page 24
METHODE POUR TROUVER LES SOLUTIONS DE F(x)=0
Reprenons les mêmes méthodes que précédemment pour encadrer la solution sur [a;b] d'une
équation de type f(x)=0. On part de l'hypothèse que l'on a une fonction f qui s'annule une fois
sur [a;b].
On calcule les images successives des valeurs de x qui varient entre a et b par pas de p.
Si deux images successives ont des signes différents, c'est que la solution cherchée se trouve dans
l'intervalle correspondant.
Sur la planètes Algorea, les habitants jouent à un jeu qui nécessite un plateau qui ressemble à un
plateau de jeu de dames , mais de dimension 40x40. Un tel plateau de dimension 4x4 aurait cette
forme :
OXOX
XOXO
OXOX
XOXO
1°) Faire un algorithme avec Algobox, qui dessine la première ligne du plateau de dimension 40.
2°) Faire un algorithme avec Algobox, qui dessine le plateau 40x40 dans sa totalité.
Il va falloir recommencer 40 fois le dessin de la ligne 1, donc il va falloir mettre la boucle de
l'algorithme précédent dans une autre boucle de variable j.
Mais il y a un autre problème : les lignes ne sont pas identiques, et commencent alternativement par
O et X. Comment faire ? Et puis avec Algobox, il va y avoir des problèmes de retour à la ligne.
Page 26
Équation du second degré Activité proposée en Première
DEGRE2 DEGRE2
:Input "A=",A "A=":?ÑAê
:Input "B=",B "B=":?ÑBê
:Input "C=",C "C=":?ÑCê
:B^2-4*A*CÑD B^2-4ACÑDê
:Disp "DELTA=", D "DELTA=" : D
:If D<0 If D<0ê
:Then Then "PAS DE SOLUTION"ê
:Disp"PAS DE SOLUTION" Elseê
:Else If D=0ê
:If D=0 Then "1 SOLUTION"ê
:Then (-B) (2A)
:Disp"1 SOLUTION", (-B)/(2*A) Elseê
"2 SOLUTIONS"ê
:Else
?
(-B- D) (2A)
?
:Disp "2 SOLUTIONS"
?
(-B+ D) (2A)
?
:Disp "x1=", (-B- D )/(2*A)
:Disp "x2=",(-B+ D )/(2*A) IfEndê
:End IfEnd
:End
Page 27
Le jeu de « Pile-Face »
Activité proposée en première S
On joue à Pile ou Face, on lance la pièce tant que les deux occurrences ne sont pas réalisées.
On cherche, en moyenne, au bout de combien de lancers, le jeu s’arrête
Avec la calculatrice :
Faire afficher un nombre aléatoire, a, compris entre 0 et 1, (touche "random") on convient que pour 0 < a < 0,5 on a
Pile et que pour 0,5 < a < 1 on a Face. Autre méthode : la touche entAléa(0,1) et on convient que 0 correspond à Pile
et 1 à Face
Faire 20 parties, noter les résultats. A quelle moyenne arrive-t-on ? (On peut regrouper les résultats de tous les
élèves).
Avec un algorithme :
En décomposant les étapes de la simulation faite à la calculatrice, écrire un algorithme qui permet de simuler un
nombre donné de parties et qui affiche le nombre moyen de lancés nécessaires pour obtenir les deux occurrences.
Partie théorique :
On définit et on appelle X la variable aléatoire qui compte le nombre de lancés nécessaires pour obtenir les deux
occurrences.
Compléter le tableau suivant qui donne la loi de la variable aléatoire X avec 1≤ X ≤10
xi 1 2 3 4 5 6 7 8 9 10
pi 0 1 1
2 4
En utilisant la formule de la somme des termes d’une suite géométrique et la dérivation retrouver le résultat observé.
Eléments de réponse :
1 1 1 2 1 3 1 9
On a : E ( X )=2 ×( ) + 3 ×( ) + 4×( ) + ...+ 10×( )
2 2 2 2
On remarque que :
1 2 3 4 10 x 11−1
E ( X )= ( x 2 + x 3 + x 4 + ...+ x10 ) ' pour x =
or on sait que 1+ x + x + x + x + ...+ x = en dérivant la
2 x −1
1 + 10 x 11−11 x10 1
seconde formule on a : E ( X )= 2 −1 (le -1 est la dérivée de x qui manque) et pour x = on a
( x−1) 2
1
environ E ( X )= −1=3 on peut aussi passer à la limite en faisant croître le nombre de possibilités.
1
4
Page 28
L’arbre utilisé :
Remarque : Pour les lignes 14,15 et 19, on peut remplacer « floor(0.5+random()) » par ALGOBOX_ALEA_ENT(0,1)
Page 29
Un exemple de marche aléatoire.
Activité proposée en première S
Dans le plan muni d'un repère orthonormé (O ; ⃗ i , ⃗j ) , un curseur situé à l'origine du repère réalise 20
déplacements sur le quadrillage de la manière suivante :
Réaliser sur une feuille quadrillée une marche possible, utiliser la touche "random" de votre calculatrice pour choisir
les déplacements ⃗ u ou ⃗ v avec la probabilité de 0,5 pour chacun.
Partie expérimentale :
Nom : Marche
Partie théorique :
Définir une variable aléatoire X qui suit une loi binomiale que vous préciserez et qui permet de calculer la probabilité
que le curseur atteigne le point A.
Comparer votre résultat avec les résultats obtenus dans la partie expérimentale.
Page 30
Les algorithmes pour les questions 3 et 4 :
Nom : Marche
1 VARIABLES
2 i EST_DU_TYPE NOMBRE
3 h EST_DU_TYPE NOMBRE
4 p EST_DU_TYPE NOMBRE
5 k EST_DU_TYPE NOMBRE
6 C EST_DU_TYPE NOMBRE
7 f EST_DU_TYPE NOMBRE
8 n EST_DU_TYPE NOMBRE
9 DEBUT_ALGORITHME
10 LIRE n
11 C PREND_LA_VALEUR 0
12 POUR k ALLANT_DE 1 A n
13 DEBUT_POUR
14 h PREND_LA_VALEUR 0
15 POUR i ALLANT_DE 1 A 20
16 DEBUT_POUR
17 p PREND_LA_VALEUR floor(0.5+random()) Le but de cette formule « floor(0.5+random()) » est
18 SI (p==0) ALORS de la généraliser à une loi binomiale :
19 DEBUT_SI « floor( p+random()). Elle donne 1 de probabilité p
20 h PREND_LA_VALEUR h+1 et 0 de probabilité 1-p.
21 FIN_SI Mais on aurait pu remplacer floor(0.5+random()) par
22 SINON ALGOBOX_ALEA_ENT(0,1)
23 DEBUT_SINON
24 h PREND_LA_VALEUR h-1
25 FIN_SINON
26 FIN_POUR
27 SI (h==0) ALORS
28 DEBUT_SI
29 C PREND_LA_VALEUR C+1
30 FIN_SI
31 FIN_POUR
32 f PREND_LA_VALEUR C/n
33 AFFICHER f
34 FIN_ALGORITHME
Page 31
Algorithme proposé par un élève :
Nom : Marche
Première situation :
Un robot situé sur un quadrillage muni d’un repère orthonormé (O , ⃗i ; ⃗j) se déplace aléatoirement.
Au départ le robot est en O, il peut se déplacer vers la droite avec une probabilité de 0,2, vers le haut avec une
probabilité de 0,4, vers la gauche avec une probabilité de 0,3 et vers le bas avec la probabilité restante.
Le robot s'arrête dès que l'une de ses coordonnées est égale à 5.
Le but de l'exercice est de modéliser cette situation à l'aide d'un algorithme, puis de faire une simulation afin de
rechercher le nombre moyen de déplacements avant l'arrêt du robot.
Première partie :
Sur une feuille quadrillée, dessiner deux ou trois trajets du robot, pour cela utiliser la touche random() de votre
calculatrice et des conditions sur le réel affiché pour décider du bon déplacement avec la bonne probabilité.
Noter en combien d’étapes vous arrivez à l’arrêt du robot.
Deuxième partie :
On note (x ; y) les coordonnées du robot.
2 2
–Démontrer qu’une condition pour arrêter le robot est : (x −25)( y −25)=0
–Déterminer les variables à utiliser
–Déterminer les tests à utiliser pour distinguer les différents cas.
–Réfléchir à la possibilité de dessiner le trajet du robot, et le traduire sur Algobox( algo1, page 34).
–Faire fonctionner cet algorithme
Troisième partie :
On veut réaliser un grand nombre d'essais pour trouver le nombre moyen de déplacements avant l'arrêt du robot.
–Déterminer les nouvelles variables à utiliser, et celles à supprimer.
–Modifier l'algorithme 1 pour compter le nombre moyen de déplacements avant l'arrêt du robot et en déduire la
moyenne. ( Algo2, page 35)
Seconde situation :
1
On arrête le robot non plus à 5 mais à 2 et chaque direction a la même probabilité, à savoir .
4
Refaire un nouvel algorithme qui permette de simuler "n" parties et en déduire la moyenne.
xi 1 2 3 4 5 6 7 8 9 10
pi 0 1 1 1 1
4 4 8 8
A l’aide d’un nouvel algorithme et/ou d’un tableur trouver le nombre moyen de déplacements avant l'arrêt du robot,
on pourra considérer que l’approximation obtenue pour X ≤100 est suffisante.
Page 33
Modélisation :
Arbre utilisé :
0,5
0,5
0,5
on recommence avec
1 une proba de 0,5 au lieu de 1
C 0,25
1
0,25
Toutes les deux fois, on repart sur M et on recommence avec une probabilité divisée par 2.
Algorithme 1
1 VARIABLES 21 FIN_SI
2 x EST_DU_TYPE NOMBRE 22 SI (a>0.2 ET a<0.6) ALORS
3 y EST_DU_TYPE NOMBRE 23 DEBUT_SI
4 a EST_DU_TYPE NOMBRE 24 y PREND_LA_VALEUR y+1
5 n EST_DU_TYPE NOMBRE 25 FIN_SI
6 mx EST_DU_TYPE NOMBRE 26 SI (a>0.6 ET a<0.9) ALORS
7 my EST_DU_TYPE NOMBRE 27 DEBUT_SI
8 DEBUT_ALGORITHME 28 x PREND_LA_VALEUR x-1
9 x PREND_LA_VALEUR 0 29 FIN_SI
10 y PREND_LA_VALEUR 0 30 SI (a>0.9) ALORS
11 n PREND_LA_VALEUR 0 31 DEBUT_SI
12 TANT_QUE 32 y PREND_LA_VALEUR y-1
((x-5)*(x+5)*(y-5)*(y+5)!=0) FAIRE 33 FIN_SI
13 DEBUT_TANT_QUE 34 TRACER_SEGMENT (mx,my)->(x,y)
14 a PREND_LA_VALEUR random() 35 n PREND_LA_VALEUR n+1
15 mx PREND_LA_VALEUR x 36 FIN_TANT_QUE
16 my PREND_LA_VALEUR y 37 AFFICHER "Le robot est au bord
17 TRACER_POINT (x,y) au bout de "
18 SI (a<0.2) ALORS 38 AFFICHER n
19 DEBUT_SI 39 AFFICHER " déplacements"
20 x PREND_LA_VALEUR x+1 40 FIN_ALGORITHME
Page 34
Algorithme 2
1 VARIABLES
2 x EST_DU_TYPE NOMBRE
3 y EST_DU_TYPE NOMBRE
4 a EST_DU_TYPE NOMBRE
5 n EST_DU_TYPE NOMBRE
6 nbTrajets EST_DU_TYPE NOMBRE
7 i EST_DU_TYPE NOMBRE
8 nbMoyenDeplacements EST_DU_TYPE NOMBRE
9 DEBUT_ALGORITHME
10 n PREND_LA_VALEUR 0
11 LIRE nbTrajets
12 POUR i ALLANT_DE 1 A nbTrajets
13 DEBUT_POUR
14 x PREND_LA_VALEUR 0
15 y PREND_LA_VALEUR 0
16 TANT_QUE ((x-5)*(x+5)*(y-5)*(y+5)!=0) FAIRE
17 DEBUT_TANT_QUE
18 a PREND_LA_VALEUR random()
19 SI (a<0.2) ALORS
20 DEBUT_SI
21 x PREND_LA_VALEUR x+1
22 FIN_SI
23 SI (a>0.2 ET a<0.6) ALORS
24 DEBUT_SI
25 y PREND_LA_VALEUR y+1
26 FIN_SI
27 SI (a>0.6 ET a<0.9) ALORS
28 DEBUT_SI
29 x PREND_LA_VALEUR x-1
30 FIN_SI
31 SI (a>0.9) ALORS
32 DEBUT_SI
33 y PREND_LA_VALEUR y-1
34 FIN_SI
35 n PREND_LA_VALEUR n+1
36 FIN_TANT_QUE
37 FIN_POUR
38 nbMoyenDeplacements PREND_LA_VALEUR n/nbTrajets
39 AFFICHER "le nombre moyen de déplacements par trajets est "
40 AFFICHER nbMoyenDeplacements
41 AFFICHER " déplacements"
42 FIN_ALGORITHME
Page 35
Eléments de réponse pour la seconde situation
Page 36
Les records dans une suite de nombres
Activité proposée en première S
EXERCICE :
Créer une suite de 100 entiers aléatoires.
Déterminer dans cette suite, les nombres , appelés « records », ceux qui sont plus grands que tous
les nombres qui les précèdent.
Déterminer pour un rang donné, la probabilité que le terme de ce rang soit un record.
Evaluer le nombre moyen de records dans la suite.
1) Créer une suite finie de 100 nombres aléatoires entre 0 et 100000000. Afficher chaque terme de
cette suite.
FOR(I,1,100)
NbrAléat→A Ici A est un réel entre 0 et 1. Le principe reste le même.
Disp A
End
2) Repérer dans cette suite tous les nombres qui sont plus grands que ceux qui les précédent. Ces
nombres sont appelés des records. Afficher les nombres de la suite qui sont des records, ainsi que
leur rang dans la suite. Pour repérer les records on utilise une variable auxiliaire max, qui augmente
chaque fois qu'un nombre de la suite dépasse max.
Page 37
Voila l'algorithme en langage TI :
0→M M initialisée à 0
FOR(I,1,100)
NbrAléat→A
If A>M M est le record,
Then
A→M M augmente au fur et à mesure que les valeurs de A sont calculées
Disp A affichage de A seulement s'il est un record
Disp I affichage du rang de A dans la suite .
Pause Pause pour éviter un défilement rapide.
End
End
3) En répétant le tirage des 100 nombres un très grand nombre de fois, évaluer la probabilité que le
le terme de rang i soit un record. Faire varier la variable « rang » de l'algorithme, pour essayer de
trouver une formule pour cette probabilité.
Pouvait-on établir cette probabilité sans expérimentation ?
Page 38
Voila l'algorithme en langage TI : avec des paramètres changés à cause de la faible puissance du
processeur.
5) On voudrait savoir combien on obtient de records, en moyenne, lorsque on tire aléatoirement une
suite de 100 nombres.
Page 39
Voila l'algorithme en langage TI :
Réponses théoriques :
Réponse à la question du paragraphe 3 : Appelons a n la suite de nombres. Considérons le terme
de rang i de la suite, soit a i . Ce terme sera un record s'il est le plus grand des nombres parmi la
liste { a 1 ; a 2 ; a 3 ; ... ; a i }
Comme ces i nombres sont aléatoires, chacun, et en particulier a i a une probabilité d'être le
1 1
plus grand égale à Donc la probabilité que le terme de rang i soit un record est .
i i
Page 40
EXTRAITS D'EXERCICES POSES AU BACALAUREAT
Exercice de bac n°1 Métropole Juin 2012
Page 41
Exercice de bac n°4 Polynésie juin 2012
Page 42
La courbe du « Dragon », une fractale obtenue par pliages successifs.
Activité post-bac
Prendre une feuille, la plier en deux et l’ouvrir à demi, regarder "la tranche" vous devez voir :
ou
Refermer et replier en deux, dans le même sens, ouvrir "à demi" vous devez voir :
ou
Refermer et replier en deux, dans le même sens, ouvrir "à demi" vous devez voir :
ou
Et si vous pouviez faire vingt pliages, que verriez-vous ? (Le dessin ne tenant pas compte qu’à chaque pliage la
dimension de chaque segment est divisé en deux, on garde la même taille tout au long du tracé de la courbe).
Peut-être qu’un algorithme pourrait vous aider ! Si on regarde bien, soit on "tourne" à gauche, soit on tourne à droite,
reste à savoir quand.
Une aide, tout entier n non-nul peut s’écrire : n =2 p ×k où k désigne un nombre impair et p le plus grand possible.
Remerciements à Jean Claude Loulmet professeur au Lycée Guez de Balzac pour cette idée.
Page 43
Le début de la recherche :
Numéro du 1 2 3 4 5 6 7 8 9 10 11 12
pliage
Décomposition 2 0 ×1 2 1 ×1 2 0 ×3 2 2 ×1 2 0 ×5 2 1 ×3 2 0 ×7 2 3 ×1 2 0 ×9 2 1 ×5 2 0 ×11 2 2 ×3
Droite ou D D G D D G G D D D G G
gauche
Si on observe bien, à chaque fois que le reste de la division par 4 de k est 1 on tourne dans un sens et à chaque fois
que le reste est 3 on tourne dans l’autre sens.
On suppose que ce résultat est toujours vrai, on peut observer que les séquences 1 et 3 sont inversées, 1,2, 3 et 5,6,7 le
sont aussi et ainsi de suite, on pourrait envisager une récurrence pour mieux expliquer le résultat.
En voici un qui donne la courbe pour un nombre de plis au plus égal à 2 18 et voici le résultat :
Maintenant, à vous !
Page 44
Une solution possible au problème, ce n’est certainement pas la seule et il doit y avoir plus simple.
Détails de l’algorithme :
Ensuite on entre dans une boucle qui a pour but de tracer les
NB segments en tournant correctement suivant le numéro n du
pli.
...
Page 45