Entraînement d'algorithmique BTS1 08/04/14
PARTIE A ( sur papier )
Voici en Python2.7 un algorithme.
Lisez le et répondez aux questions.
a désigne un entier naturel à indiquer
from random import*
import decimal
def sev():
w=a
print w
L=[a]
for i in range(9):
if w%2==0:
w=w/2
else:
w=3*w+1
print w
L.append(w)
print L
QUESTIONS.
1. Que signifie L=[a]
L est une liste contenant le seul élément a.
2. Quel est l'effet de L.append(w)?
W est introduit comme dernier élément de la liste L.
3. Qu'est-ce qu'un entier naturel pair?
C'est un entier naturel divisible par 2.
4.Quel est le reste de la division par 2 d'un entier naturel pair?
C'est 0.
5. Que signifie :
for i in range (9): ?
i est un entier qui prend successivement les valeurs
0 ; 1 ; 2 ;3 ;4 ;5 ;6 ;7 ; 8
6. Que signifie:
if w%2==0: ?
Si w est divisible par 2
7. Qu'obtient-on avec ce script avec a = 6 ?
6
3
10
5
16
8
4
2
1
4
[ 6,3,10,5,16,8,4,2,1,4]
8. Proposer une modification du script de façon à obtenir la somme
des termes de la liste L.
On peut proposer de rajouter les lignes suivantes à la fin
juste en dessous de print L:
S=0
for j in range(len(L)):
S=S+L[j]
print " La somme des termes de L est : " , S
--------------------------------------------------------------------------------
Partie B
1. Ecrire un programme qui donne le terme d'indice n de la suite récurrente:
u0 = 3
un+ 1 = 2 un - 1 pour tout n dans IN
On peut considérer:
from random import*
def u(n):
if n==0:
return 3
else:
return 2*u(n-1)-1
n=input("Donner l'indice n : n = ")
print u(n)
Par exemple:
>>>
Donner un entier n: n = 5
65
>>>
-----------------
2. Modifier le programme pour obtenir la somme des 10
premiers termes de cette suite.
On peut considérer:
from random import*
def u(n):
if n==0:
return 3
else:
return 2*u(n-1)-1
def som():
L=[]
for j in range(0,10):
L.append(u(j))
S=0
for i in range(len(L)):
S=S+L[i]
print L
print " La somme des dix premiers termes est :",S
On obtient :
>>> som()
[3, 5, 9, 17, 33, 65, 129, 257, 513, 1025]
La somme des dix premiers termes est : 2056
>>>
-------------------------------------------------------------