• Aucun résultat trouvé

I - Lecture de code

N/A
N/A
Protected

Academic year: 2022

Partager "I - Lecture de code"

Copied!
4
0
0

Texte intégral

(1)

T.P. 1

Décodage

I - Lecture de code

Exercice 1. (Variables,-)Pour chacune des question suivantes, déterminer les contenus des variables après interprétation de la suite d'instructions.

1.

a1 = 1 i = 1 a i = 3 i = 3 a i = 6 2.

a = 2 b = 4 c = a b = a c = b − a

3.

a = 4 b = 2 c = b b = a 4.

a = 4 b = 2 c = b b = a a = c

5.

x = 5

y = 2 * x + 3 x = 100

6.

a = 3 b = 4 x = a a = b b = x

Exercice 2. (Affectation parallèle,-)Déterminer les contenus des variables après interprétation de la suite d'instructions.

1.Aectation classique.

x = 19 x = x + 2 y = x * 2

2. Aectation très pythonique.

x = 19

x , y = x + 2 , x * 2

Exercice 3. (Échange des contenus de deux variables,♥)On suppose que les variables x et y ont pour valeurs respectives les entiers 3 et 4.

1.Déterminer les contenus des variables après interprétation de la suite d'instructions.

x = x + y y = x − y x = x − y

2.Proposer une méthode qui échange le contenu de deux variables en utilisant une variable auxiliaire.

Exercice 4. (Fonctions,-)Déterminer les contenus des variables après interprétation de la suite d'instruc- tions.

1.

# x : i n t x = 5

def f c t 1 ( y ) :

""" number −> number """

return 3 * y + 25 x = f c t 1 ( x )

2.

# x : i n t x = 5

def f c t 1 ( x ) :

""" number −> number """

return 3 * x + 25 x = f c t 1 ( x )

x = f c t 1 ( x )

Stanislas A. Camanes

(2)

T.P. 1 MPSI 1

Exercice 5. (Fonctions,-)Déterminer les contenus des variables après interprétation de la suite d'instruc- tions.

1.

# x : i n t x = 3

def f c t 1 ( y ) :

""" number −> number """

# x : number x = 3 * y + 2 return x x = 5 def f c t 2 ( y ) :

""" number −> number """

return (2 * f c t 1 ( y ) + 2 * y ) x = f c t 1 ( x ) + 2 * f c t 2 ( x ) − 3

2.

# x : i n t x = 3

def f c t 1 ( y ) :

""" number −> number """

# x : number x = 3 * y + 2 return x x = 5

def f c t 2 ( y ) :

""" number −> number """

return (2 * f c t 1 ( y ) + 2 * y ) x = f c t 1 ( x ) + 2 * f c t 2 ( x ) − 3

Exercice 6. (Variables locales & globales)Déterminer, après interprétation des suites des instructions sui- vantes, la valeur renvoyée par l'appel f(10) ainsi que le contenu de la variable Ni (pour i= 1,2,3).

Parmi les fonctions suivantes, lesquelles permettent de retourner la multiplication par3? 1.

# N1 : i n t N1 = 3 def f ( x ) :

""" number −> number

"""

# N1 : i n t N1 = 4

return (N1 * x )

2.

# N2 : i n t N2 = 3

def f (N2) :

""" number −> number

"""

return (N2 * N2)

3.

def f ( x ) :

""" number −> number

"""

# N3 : i n t N3 = 3

return (N3 *x )

Exercice 7. (Alternatives,-)Pour chacune des fonctions f suivantes, déterminer la valeur de f(4).

1.

def f ( x ) :

""" i n t −> i n t """

# a : i n t a = 0

i f x % 2 == 0 : a = 0

e l i f x % 4 == 0 : a = 1

else : a = 3 return a

2.

def f ( x ) :

""" i n t −> i n t """

# a : i n t a = 0

i f x % 2 == 0 : a = 0 i f x % 4 == 0 :

a = 1 return a

3.

def f ( x ) :

""" i n t −> i n t """

i f x % 2 == 0 : return 0 i f x % 4 == 0 :

return 1

Exercice 8. (Boucle conditionnelle)Déterminer les contenus des variables après interprétation de la suite d'instructions.

# a , b , i : i n t a , b , i = 1 , 1 , 0 while i <= 1 0 :

i = 2 * i a = a + b b = 2 * a + i b = 3 * b

Stanislas A. Camanes

(3)

T.P. 1 MPSI 1

Exercice 9. (Listes,-)Déterminer les contenus des variables après interprétation de la suite d'instruc- tions.

# L : l i s t [ i n t ] L = [ ]

# n : i n t n = 3

for i in range ( 3 ) : i f i != 0 :

L . append ( i ) n = n + 1

for i in range (1 , 5 , 2 * (n−4)) : for j in range (0 , n ) :

i f j < i : L . append ( i ) L . append ( j )

Exercice 10. (Fonctions mystères)Déterminer la signature et les résultats retournés par chacune des fonc- tions suivantes.

1.

def mystere1 ( n ) : a = n // 3600 c = n % 3600 b = c // 60 c = c % 60 return ( a , b , c )

2.

def mystere2 ( n ) : u = 1

for x in range (1 , n ) : u = u * x

return u

3.

def mystere3 ( n ) : m = 0

while (m+1)**2 < n : m = m + 1

return m

4.

def mystere4 ( l i s t e ) : M = [ l i s t e [ 0 ] ]

n = len ( l i s t e )

for i in range ( 1 , n ) : M. append ( 0 )

M. append ( l i s t e [ i ] ) return M

II - Erreurs de code

Exercice 11. (Variables,-)Expliquer pourquoi les instructions suivantes renvoient des messages d'erreur.

1.

a = 4 b = 2 2 = a b = 3

2.

b = 2 b = a

3.

i = 3 b = 2 a i = 3 * i c = 2 * a3 + b

Stanislas A. Camanes

(4)

T.P. 1 MPSI 1

Exercice 12. (Fonctions, -) Expliquer pourquoi les programmes suivants ne renvoient pas une valeur approchée du volume.

1.

def vol ( l , r ) :

# volume : f l o a t volume = 3 . * l ^2

# a i r e : f l o a t a i r e = volume * r return a i r e

2.

def vol ( r , l ) :

return ( pi * r **2 * l )

3.

def vol ( r , l ) :

# a i r e : f l o a t a i r e = 3 . * r **2

# volume : f l o a t volume = a i r e * l return volume

4.

def vol ( r , l ) :

return ( volume = 3 * r **2 * l )

Exercice 13. (Listes)Expliquer pourquoi les instructions suivantes renvoient des messages d'erreur.

1.

L = [ 1 , 2 , 3 ] M = L

M[ 0 ] = 0 A = 10 / L [ 0 ]

2.

L = l i s t ( range ( 1 0 ) ) u , i = 0 , 0

while i <= len (L) : u = u + L [ i ]

i = i + 1

Exercice 14. (Alternatives)Expliquer pourquoi les instructions suivantes renvoient des messages d'erreur.

1.

def f ( x ) :

""" i n t −> i n t """

# a : i n t a = 0

i f x % 2 == 0 : a = 0

else x % 4 == 0 : a = 1

return a f ( 3 )

2.

def f ( x ) :

""" i n t −> i n t """

# a : i n t a = 0

i f x % 2 = 0 : a = 0 else :

a = 1 return a f ( 3 )

Stanislas A. Camanes

Références

Documents relatifs

On trace au jugé une droite D (on peut s’aider du point moyen) en s’efforcant d’équilibrer le nombre de points situés de part et d’autre. Ensuite on détermine par

Pour les variables d’écart, ce principe peut se formuler ainsi : le coût réduit d’une variable d’écart hors-base indique le changement dans l’objectif apporté par

D’autres variables, nécessaires au déroulement de l’algorithme, peuvent être utilisées : les variables per- mettant de fournir les données en sortie, les variables utiles aux

C'est ce q u e j'ai surtout essayé de faire dans ce Chapitre en me plaçant successiveineni à deux points de vue différents, l'un général (deuxième Partie), l'autre plus

Analyse Réelle, Optimisation libre et sous contrainte Groupes 12 &amp; 17. Cours 16

Comme ce profit total est plus grand que la somme des profits optimis´es ind´ependamment, la fusion semble

Université Paris Dauphine Année universitaire 2013-2014. Première année DEGEAD Cours-TD

A deux variables, le gradient pointe dans la direction o` u la fonction augmente le plus, et plus il est long, plus la fonction augmente (”en premi` ere approximation”)....