BTS-SIO
Algorithmes boucles
Travaux pratiques
1 boucle d´etermin´ee : POUR
Sch´ema :
?
-
?
Pour
iJ1; nK
HHHHH
H
H
H
H
H
H
H
bloc instructions (nfois)
FinPour
Note :
Soit nN,
iJ1; nK(i[1; n]) (iN)
1.1 Exemple d’algorithme
On souhaite ´etablir la table de valeurs d’une expression f(x) pour xprenant la valeur aet incr´emenee par la
pas h.
Algorithm 1 table de f(x)=3x2+ex
Entr´ees: (a, h)R2nN
Sorties: tablex = [a;a+h;a+ 2h;...;a+nh] et tablef = [f(a); f(a+h); f(a+ 2h); ...;f(a+nh)]
tablex [a]
tablef [3 tablex[0]2+etablex[0]]
pour {i= 1 jusqu’`a i<n;incr´ement 1}faire
tablex[i]tablex[i1] + h
tablef [i]3tablex[i]2+etablex[i]
fin pour
S.Mirbel page 1 / 5
BTS-SIO
1.2 Programmation en Python
S.Mirbel page 2 / 5
BTS-SIO
2 boucle ind´etermin´ee : TANT QUE
Sch´ema :
?
-
?
Tant Que
condition(s) C
HHHHH
H
H
H
H
H
H
H
bloc instructions (Cvraie)
FinTantQue
(Cfaux)
2.1 Exemple d’algorithme
On souhaite r´ealiser une jeu dont le but est de trouver un nombre entier compris entre deux entiers aet ben
un minimum de coup.
Algorithm 2 trouver un entier ndans Ja;bK
Entr´ees: Ja, bKNnNvaleur propos´ee kN
Sorties: nbcoups N
nnombrealeatoire(a;b)
nbcoups 1
tantque k6=nfaire
nbcoups nbcoups + 1
fin tantque
S.Mirbel page 3 / 5
BTS-SIO
2.2 Programmation en Python
S.Mirbel page 4 / 5
BTS-SIO
3 Exercices
1. Reprendre l’algorithme du jeu ”trouver un nombre”
(a) Le modifier en donnant une indication `a l’utilisateur : k < n k > n. Le programmer en Python.
(b) Donner un algorithme de recherche du nombre du jeu de la question pr´ec´edente. Le programmer en
Python. (l’utilisateur est la machine)
2. On souhaite simuler l’algorithme de la planche de Galton :
(a) pour le lancer d’une pi`ece, on reprend l’exercice de ramification (algorithmes conditions) :
Dans une chaine de fabrication, pour facilit´e le d´ebit de pi`eces on utilise une ramification comme le
pr´esente la figure ci-dessous. A chaque intersection, on admet qu’une pi`ece a une chance sur deux
d’aller `a droite ou `a gauche. On appelle uil’urne qui re¸coit la pi`ece, pour ientier variant de 1 `a 4.
Sch´ema d’une ramification `a 2 rang´ees :
HHHH
H
@@
@
@@
@
R1
R2
2
R1
2
u4
u3
u1u2
Faire l’algorithme de la simulation de la descente de la pi`ece dans la ramification, puis le
programmer en Python.
(b) Compl´eter l’algorithme pr´ec´edent pour avoir une ramification du mˆeme style, mais avec autant de
rang´ees que souhaite l’utilisateur.
(c) Compl´eter l’algorithme pr´ec´edent avec le nombre de pi`eces devant passer dans la ramification donn´e
par l’utilisateur.
3. Un championnat compte n´equipes Ei, i J1; nK,nest pair et n>2. Une journ´ee de championnat
compte donc n
2matches. Chaque ´equipe se rencontre une fois, il y a donc n1 journ´ees de
championnat. Un match gagn´e rapporte 3 points, un match nul rapporte 1 point et un match perdu ne
rapporte pas de point.
Faire un algorithme qui donne `a chaque ´equipe, chaque journ´ee son nombre de points cumul´es. Le
programmer en Python.
4. R´esoudre de deux mani`eres diff´erentes l’in´equation `a l’aide de Python :
2n>10000, n N(1)
S.Mirbel page 5 / 5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!