LYCÉE THIERS - 2013/2014 INFORMATIQUE

Download Report

Transcript LYCÉE THIERS - 2013/2014 INFORMATIQUE

´ THIERS - 2013/2014
LYCEE
INFORMATIQUE - MPSI
´
INTERROGATION ECRITE
2 - CORRECTION
Exercice 1. L’op´eration ˆ sous python effectue un XOR bit `a bit :
3 s’´ecrit en binaire : 011
6 s’´ecrit en binaire : 110
Donc le r´esultat retourn´e sera le r´esultat d’un XOR bit `a bit :
C’est pourquoi l’instruction 3^6 retourne 5 sous python.
Exercice 2. Le programme est par exemple le suivant :
nom=raw input("Votre nom ? ")
sexe=raw input("Votre sexe ? (F ou M) ")
if sexe == ’M’:
print "Bonjour Monsieur",nom
if sexe == ’F’:
print "Bonjour Madame",nom
Exercice 3. R´eponse (`
a l’aide d’une compr´ehension de liste) :
def impair(n):
return [i for i in range(n+1) if i % 2 ==1]
Exercice 4. R´eponse :
def bissextile(n):
if n % 400 == 0:
return True
elif n % 100 == 0:
return False
elif n % 4 == 0:
return True
else:
return False
1
0 1 1
XOR 1 1 0
1 0 1
=5
2
´
INTERROGATION ECRITE
2 - CORRECTION
Exercice 5. Le plus petit entier n pour lequel
programme :
s=0
x=0
while
x
s
print
Pn
1
k=1 k
> 10 est 12367, obtenu grˆace au
s <= 10:
+= 1
+= 1/float(x)
x
Exercice 6. R´eponse (en se rappelant qu’une chaˆıne de caract`ere sous python est une
s´equence partageant beaucoup d’op´erations avec les listes) :
def voyelle(c):
r=0
voy = ’aeiouyAEIOUY’
for a in c:
if a in voy:
r += 1
return r
Exercice 7. En dressant le tableau de variation il vient vite que cette application est strictement croissante et r´ealise une bijection de R sur R, d’o`
u l’unicit´e de sa racine. De plus cette
fonction prend pour valeurs en -1 et 0 respectivement : -1 et 1, donc d’apr`es le th´eor`eme
des valeurs interm´ediaires la racine se trouve dans l’intervalle ] − 1, 0[. On peut appliquer
la fonction dich solve de recherche par dichotomie ´ecrite en TD, pour simple rappel :
def dich solve(f,n,a,b):
while (b-a)/2. >= 10**(-n):
c=(a+b)/2.
if f(c)==0:
return c
if f(a)>0:
if f(c)>0:
a, b = c, b
else:
a, b = a, c
else:
if f(c)>0:
a, b = a, c
else:
a, b = c, b
return (a+b)/2
On obtient alors le r´esultat approch´e de la racine `a 10−4 pr`es avec le code :
´ THIERS - 2013/2014
LYCEE
INFORMATIQUE - MPSI
3
f=lambda x:x**3+x+1
return dich solve(f,4,-1,0)
Le r´esultat obtenu est −0.6823 .
Exercice 8. On r´eemploie la fonction erathostene(n) qui retourne la liste des nombres
premiers inf´erieurs ou ´egaux `
a n dans le script :
listepremiers=erathostene(1000)
liste=[]
for i in listepremiers:
if i>=100:
liste.append(i)
print len(liste)
qui affiche 143. Il y a donc 143 nombres premiers compris entre 100 et 1000.
Exercice 9. R´eponse :
def pascaltriangle(n):
result=[]
for i in range(n+1):
temp=[]
for k in range(i+1):
if k==0:
temp.append(1)
elif k==i:
temp.append(1)
else:
temp.append(result[i-1][k-1]+result[i-1][k])
result.append(temp)
return result
Exemple d’utilisation :
>>>
>>>
...
...
[1]
[1,
[1,
[1,
[1,
[1,
[1,
liste = pascaltriangle(6)
for x in liste:
print x
1]
2,
3,
4,
5,
6,
1]
3, 1]
6, 4, 1]
10, 10, 5, 1]
15, 20, 15, 6, 1]