-0
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre 11 • L'examen d'algorithmique
def contenu( n):
s =0
for k in range(l, n+l):
s=s+depot(k)
return(s)
#####################Partie principale#########################
N=l
while contenu(N)< 1500:
N=Ntl
print("Je casserai la tirelir e un",jour(N),"et son contenu sera
de " , con t en u ( N) , " €. " )
Résultats obtenus après exécution
Je casserai la tirelire un samedi et son contenu sera de 1 554.85 €.
Examen 2 - La suite de Syracuse
Le problème initial
On part d'un nombre entier N supérieur à 1. S'il est pair, on le divise par 2, sinon on
le multiplie par 3 puis on ajoute 1. Puis on recommence avec le résultat et ainsi de
suite ... on s'arrête dès qu'on arrive à 1.
Par exemple : on part du nombre 1 O.
• 10 est pair donc on le divise par 2 : on obtient 5.
• 5 est impair donc on le multiplie par 3 puis on ajoute 1 : on obtient 16.
• 16 est pair donc on le divise par 2: on obtient 8.
• 8 est pair donc on le divise par 2 : on obtient 4.
• 4 est pair donc on le divise par 2 : on obtient 2.
• 2 est pair donc on le divise par 2 : on obtient 1.
On a obtenu 1 : On arrête.
En partant du nombre 10, on a donc obtenu successivement 5, 16, 8, 4, 2 puis 1,
donc six étapes pour arriver à 1 et le plus grand nombre rencontré est 16.
Autre exemple : si on part de 7, on obtient successivement 22, 11 , 34, 17, 52, 26,
13, 40, 20, 10, 5, 16, 8, 4, 2 puis 1, donc 16 étapes pour arriver à 1 et le plus grand
nombre rencontré est 52 .
~ ~e but du sujet est ?e déter~iner le plus petit entier de départ N néces;;itant 30
e:J etapes pour arriver a l en precisant le plus grand nombre alors rencontre.
254
Partie A (sur table) (30 minutes)
1) Compléter l'écriture de la fonction suivant(n) ci-dessous afin qu'elle renvoie le
nombre suivant n. Par exemple, on aura suivant(10)=5 et suivant(l)= l.
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre 11 • L'examen d'algorithmique
def contenu( n):
s =0
for k in range(l, n+l):
s=s+depot(k)
return(s)
#####################Partie principale#########################
N=l
while contenu(N)< 1500:
N=Ntl
print("Je casserai la tirelir e un",jour(N),"et son contenu sera
de " , con t en u ( N) , " €. " )
Résultats obtenus après exécution
Je casserai la tirelire un samedi et son contenu sera de 1 554.85 €.
Examen 2 - La suite de Syracuse
Le problème initial
On part d'un nombre entier N supérieur à 1. S'il est pair, on le divise par 2, sinon on
le multiplie par 3 puis on ajoute 1. Puis on recommence avec le résultat et ainsi de
suite ... on s'arrête dès qu'on arrive à 1.
Par exemple : on part du nombre 1 O.
• 10 est pair donc on le divise par 2 : on obtient 5.
• 5 est impair donc on le multiplie par 3 puis on ajoute 1 : on obtient 16.
• 16 est pair donc on le divise par 2: on obtient 8.
• 8 est pair donc on le divise par 2 : on obtient 4.
• 4 est pair donc on le divise par 2 : on obtient 2.
• 2 est pair donc on le divise par 2 : on obtient 1.
On a obtenu 1 : On arrête.
En partant du nombre 10, on a donc obtenu successivement 5, 16, 8, 4, 2 puis 1,
donc six étapes pour arriver à 1 et le plus grand nombre rencontré est 16.
Autre exemple : si on part de 7, on obtient successivement 22, 11 , 34, 17, 52, 26,
13, 40, 20, 10, 5, 16, 8, 4, 2 puis 1, donc 16 étapes pour arriver à 1 et le plus grand
nombre rencontré est 52 .
~ ~e but du sujet est ?e déter~iner le plus petit entier de départ N néces;;itant 30
e:J etapes pour arriver a l en precisant le plus grand nombre alors rencontre.
254
Partie A (sur table) (30 minutes)
1) Compléter l'écriture de la fonction suivant(n) ci-dessous afin qu'elle renvoie le
nombre suivant n. Par exemple, on aura suivant(10)=5 et suivant(l)= l.
