Vous êtes sur la page 1sur 8

Travailler les

automatismes

1
jo u e s lusi
àp

Jeu Puzzle Python

eu
eu
Se

ou

rs
l
Ce jeu réinvestit :
les opérations (page 8)
le module math (page 18)
Découper chacun des huit triangles et des quatre carrés. Les assembler en les types des résultats (page 19)
accolant des côtés qui contiennent l’un un calcul à effectuer en Python, l’autre
le résultat obtenu en Python.

✂ −16 6.3

12/4 + 1
1.667

abs(2 − 5) 10**− 3

11 − 3*4
14//4

−1.0
3.5

5.0 15/5

round(abs(1 − 4/3),2)
t
4* sqr
)
f

*2
rt
ro
ro math
2

** mpo
0.

m
un
**

4.

+
i

14
d
00

−1
(

h
−4

0
2

sq mat
2* mpor

/4
(3
1

pi
i

rt
om
,1 t pi

fr
)

0.33
3),
1/3

2/3
2*
3/2

3*
3.

2.
14
+
0

5
3

3
%4


+

1
d(

1
1

un
ro
14%4
pi

2
t
p or )
im i,1
3 th
ma d(2*
p
//4 r om oun 6.
f r 3
14 fr

12
sq
om
rt ath

/4
0
(3
m
5.

0
** impo

3
4.

3.
2

5 −
+ rt s

**
4*

10
0.
*2 qrt

/4 00
)

14 1
round(abs(1 − 4/3),2)
0.33
−4
3)

−1
11 **
,

2
1/3

− 16
2*

3* −
1.
3.

4
/5

+
66
15 0

1
d(
7
un
ro

ab
s(
0 2
1. −
1
− 3*

3 5)
3/2 + 1

2/3
2.5
Travailler les
automatismes

2
jo u e s lusi
àp Ce jeu réinvestit :
Jeu L’algo domino

eu
eu
Se

ou

rs
les opérations (page 8)

l
les fonctions Python (page 10)
la structure if…else… (page 12)
Découper les 16 dominos et les assembler de telle sorte que chaque question
soit suivie du résultat obtenu.
Que renvoie f(6) ? Que renvoi
def f(x): def ranger
return 3*x − 5 if a <
Que renvoie f(6) ? Que renvoie ra
re
Que f(x):
def renvoie f(6) ? Que renv
def ranger(a,
else:
Que renvoie f(6) ? f(x): fonc(1,−5) ?Que renvoie ranger(5,6) ? def rang
Début 36
Que
def renvoie
return 3*x − 5 if a < b:
re
Que renvoie f(6) ? Que renvoie
def return
fonc(x,y):3*x − ranger(5,6)
5 ? retur
if a
def f(x): = x ranger(a,b):
+ fonc(1,−5) def ranger(a,b): else:
def f(x): Quesrenvoie
def y ? retur
Que renvoi
return
return − 5 − 5
3*x 3*x d = x if− ya < b:
def fonc(x,y):
if a < b: else
Quereturn
renvoies,dfonc(1,−5) ?
s = x + y return a return a From math
else:
def dfonc(x,y):
= x − y def f(
Que renvoie
Que renvoie fonc(1,−5) ? s = xranger(5,6)
+s,dy return? b
else: if
Que renvoie f(6) ? Que renvoie
Que renvoie fonc(1,−5) ? return From math imp


Que renvoief(6)
Que drenvoie f(3,2,−1) ? return b Que renv
def fonc(x,y):
def f(x): = x − y ?
def ranger(a,b):
Que renvoie
defranger(
f(x):
defreturn
s fonc(x,y):
= x 3*x
+ y− 5 def
def f(x,a,b):
f(x):
if return
a < b: s,d def ranger(a,b): xel
Fromifmat
Quereturn
renvoie
Que
return f(3,2,−1)

renvoie
a*x
3*x +
5 ?
f(−6) ?
b if a < b:
def
ds= =x −x y+ y return a
returnelse:
a
def f(x,a,b):
else:
Que return s,d
d = x − y
renvoie fonc(1,−5) ? Que renvoie Que
From math import sqrt renvoie f(−6) ? else:
f(x): ? ?
bf(3,2,−1)
Quereturn
return
renvoie a*x + b
fonc(1,−5)
def
Que renvoie f(−2) ? Que renvoi
return b
def fonc(x,y):

−4 6
return s,d def f(x,a,b):if x < 0: From math import sqrt

13
def fonc(x,y):
= x + y f(3,2,−1)
Ques renvoie ? def sreturn
f(x): def div(n)
d = x − y QueQue = x f(−6)
renvoie
return
+ ya*x
renvoie ? + −?b 2*xreturn:
f(−2) + 1 « impossible
def f(x): » Que renvoie
Que renvoie di
?
if n%3
f(−6)
d = x −3*x**2
y
defreturn
f(x,a,b):
s,d From
defmath
f(x):import else:
s,d sqrt def div(n):
return if x < 0: From math import re
sq
return ? + b
a*x def f(x):
return 3*x**2 − 2*xreturn
+ 1 sqrt(x) if n%3 = =
Que renvoie
Que renvoie
def f(x):
f(6)
f(3,2,−1) ? Que renvoie ranger(5,6) ?
def ranger(a,b): Que renvoie
if x < peri(4,8)
0: ?
def f(x):
Que renvoie f(−2) ? Que renv
return: « impossib
if x <retur
0:
Que renvoie f(3,2,−1) ? Que
def renvoie return: «? impossible
f(x):? f(3,2,−1) » defrenvoi
Que div(
Quereturn
def renvoie − 5?
f(6)
f(x,a,b):
3*x Que renvoie
if a < b: ranger(5,6)
def
Que peri(larg,long):
renvoie − 2*x? + 1?
peri(4,8) else: retu
Que
def renvoie f(−2) ?
f(x,a,b):
def f(x): return a def
def ranger(a,b): Que
else:renvoie
return 3*x**2
f(x,a,b): div(27)
+ long)
else: if n
return
return
Quereturn a*x
3*x b ? + b
− 5+a*x else: return
if a < b: def return
2*(larg
return
a*x + b sqrt(x) Quedef
return sqrt(x) tarif(
renvoie ta
retu
b a peri(larg,long):

Fin
def renvoie
f(x): fonc(1,−5) return def div(n): if n >
return
def fonc(x,y):
return 3*x**2 − 2*x + 1 else:
Que renvoieg(2)
peri(4,8) ? n%3 = =+ 0long)
returnif2*(larg def tarif(n):
re
= x + yfonc(1,−5) ?
Quesrenvoie Que
Que renvoie
b renvoie f(−2) ??? Que renvoie n > 15
ifdiv(27)
Que d renvoie
= x − y f(−2) ? Que
Que renvoie return
f(−6) ?renvoie div(27)
return n//3 Quereturn
renv
def peri(larg,long): retur
Que renvoie f(−2) ?
def fonc(x,y):
defreturn
s f(x):
s,d
= x + y defdef
From math import def
sqrt
Que g(x):
f(x):
renvoie g(2) ?
div(n):
return 2*(larg + 11)
long)
Que renvoie div(27) ?def div(n):
return 4
def tari
Que renvoie
return
d = x − 3*x**2 − 2*x + 1?
y peri(4,8)
def renvoie
Que f(x): f(−6)
ifreturn
if x < 0:def g(x):
= 02 + −3/(x
n%3 =3*x**2
?return 2*x + + if n%3 = = 0
def f(x):
Quereturn
renvoie s,d
f(3,2,−1) ?
def peri(larg,long): From math import
return: «Que
sqrtreturn renvoie
n//3
impossible
return 2 +
tarif(9)
»3/(x + 1)
? def div(n): Que renvoi
return if
n//3n

5 17
def f(x):
return
def f(x,a,b):
return
Quereturn
renvoie 3*x**2+? −
2*(larg
a*x peri(4,8)
+ b
2*x + 1
long) else:
Que
Que
<
if xreturn
Que 0: def
renvoie
renvoie
renvoie
sqrt(x)
tarif(n):
peri(4,8)
g(2)
solde(48, ? ?
25/100) ?
if n%3 = = 0 Quedef
renvoie
g(x):g(
retu
Que renvoie f(3,2,−1) ? if n > 15: Que renvoie assert
tarif(9
def g(x):
def peri(larg,long): Quedefreturn:
renvoie
def
«tarif(9)
impossible
peri(larg,long):
g(x):
Que return
renvoie
?» return n//3
def f(x,a,b): else:def solde(48,
solde(prix,reduc):
return
2*(larg
+
+ long)
+ + (n − ?5)*0.75
425/100) def tarif(n):return
assert x
?+
return
Quereturn
renvoie 2*(larg
f(−2) b?
+g(2) long) def return
Que renvoie div(27) tarif(n):
? return sqrt(x) 2 3/(x 1)
Que renvoie 4 − reduc)
a*x def return prix^(1
solde(prix,reduc): if n return
>Que x
15: renv
return
Que renvoie
def f(x):
peri(4,8) ? def div(n): if n > 15:
return 4 +

AssertionError
def g(x):
return 3*x**2 − 2*x + 1 return
if n%3 = = 0 Que renvoie returng(2) 4 + ?(n −− 5)*0.75
prix^(1 reduc)
Que4 renvoi
def g(x)
Que renvoie f(−2) ?
Que renvoie 2 + ?3/(x + 1)
g(2) Que renvoie
return div(27)
n//3return ?
Que renvoie tarif(9) ? return

assert x > 0
def peri(larg,long):
return Queg(x):
def div(n): Compléter
def renvoie4 le solde(48,
script 25/100) ? Quedef
renvoie co
asse
compar
def f(x):
def
Que g(x):
renvoie − 2*x? + 1
peri(4,8) Compléter Que renvoie
le
2 script
+ 3/(x
g(−6) ?
+ 1)2 x − 1 .
return
return 3*x**2
return 2 + 3/(x
def peri(larg,long):2*(larg
+ 1) + long) if n%3 = =pour
Que renvoie return
tarif(9)
0 return
def
n//3
que f(x)
def g(x):
renvoie
? solde(prix,reduc): 2xx2−−1 3 def tarif(n): ifretu
def compare(x
Que renvoie g(−6) 2*x
?
def tarif(n): Que
pour que g(−6)
return
renvoie f(x) renvoie
prix^(1
? .
− 2reduc) if 2*x <re
Que renvoie
return solde(48,
2*(larg + long) 25/100) ? def f(x):
f(x): assert
x0 − 3
x > 25/100) if n > 15: def g(x):
retur
Que renvoie peri(4,8) ? x else:
if n > 15: def
defQue renvoie solde(48, ?
g(x):return … assertQue > renv
0
def
Que
def solde(prix,reduc):
renvoie solde(48, 25/100) ?
peri(larg,long):
Que renvoie g(2) ?
Que renvoie
return tarif(9)
assert
def
?
4 + (n − 5)*0.75
return return
x >… 0
solde(prix,reduc):
x + 5 return 4 + (n −return
5)*0.75
else:
x + 5 re
Que
def renvoie
return
return 2*(larg long)− ?
+g(2)
prix^(1
solde(prix,reduc):
def g(x):
reduc) return
def 4
tarif(n):
if n >
Compléter
15:
return le5script− reduc)
x +prix^(1
return 2 x − 1 return 4 def retur
comp
return 3/(x + 1)−
2 +prix^(1 reduc) pourrenvoie
Que que f(x) renvoie
prix(7) ? . if 2
return: « impossible »

return
def g(x): Que renvoie return? 4 + renvoie
g(−6)Que (n − 5)*0.75
Que renvoie ? x2 − 3
compare(0.5)
prix(7) ? Que renvoie
Quecompare
renvoi

24 3.0
Que renvoie g(2) ?
Quedef f(x):
return 4 def prix(n): Que renvoie h(
renvoie ?
Que renvoie f(6)
Que ?
Compléter le script defcompare(0.5)
Compléter le script Que renvoie ranger(5,6) ?
def g(x):
return + 3/(x
2?x − 1+ 1)
2 25/100) def prix(n):
<compare(x):2x − 1 def compare(x):

return (2 + x**2)(x + 1)
def g(x):
renvoie solde(48, return
if =… else
def h(x):
assert x > 0
quennf(x) 3:
return 4 + (n − 5)*0.75

Compléter le script
def f(x):
pour que 2f(x)
return + 3/(xrenvoie
+ 1) 2 x − 1
def solde(prix,reduc): . return
Que
def pour
compare(x):
x + g(−6)
renvoie
def
5 ?
if
return
<if
ranger(a,b):
= 3:
2*n Que renvoie g(−6)
renvoie
2*x < xx**2:
2 −3
.
? def2*x
if h(x):
< x**2:
assert
return sqrt(x)

2
pourreturn
que f(x)
prix^(1 − reduc)2 x .− 3
renvoie if f(x):
def 2*x <return
x**2: 2*n assert2*x
return x
x −3 return 2*x re
return 3*x def f(x): def g(x): else:
else: 1.5*(n −def g(x): else: retur
− 5renvoie <
Que renvoie compare(0.5) ?
def
Que f(x): solde(48, 25/100) ? x >Que if
return
return
else:
0 renvoie a…2*x b:
prix(7) ?
Que renvoie ranger(5,6) ?

Que renvoie compare(0.5)


assert ? return 3)+ +4 4
return …… solde(48, 25/100)
return x**2
Que renvoie
return
Compléter
def le script
solde(prix,reduc):
2x − 1
?def compare(x):
return x + 5
else: return
returnreturn
def prix(n):
1.5*(n − 3)
returnax**2 assert x > 0 Que renv
Que renvoie tarif(9) ?

x**2
From math import sqrt

pourreturn
que f(x) renvoie− 2reduc)
prix^(1 . if 2*x < x**2:
Que renvoie div(27) ?

Que renvoie
n <prix(7) ?
def
Que renvoie
def f(6)solde(prix,reduc):
f(x): ? x −3 return 2*xQue ifelse:
renvoie = 3:
ranger(5,6) ?return x + 5 return x**2
def h(x)
Que renvoie h(2) ?

assert x ! = −1
Que renvoie f(−6) ?

Que renvoie g(−6) ?


return n//3

return 2*x
if 2*x < x**2:

Que renvoie fonc(1,−5)


Quereturn … ?
renvoie prix(7) ?
Que renvoie prix(7) ? Que renvoie compare(0.5)
def prix(n): ? asse

Que renvoie h(2) ?


return 2*n b
if x < 0:

else:
le script prix^(1 − reduc)
return return
return a

return b

assert x > 0
return x + 5
def ranger(a,b):

Compléter Que renvoie


Que 3:?
renvoie
n h(2)
<= h(2) ? def h(x):
def f(x): def return def
x**2
def compare(x): ifranger(a,b):
if n%3 = = 0

def compare(x):

def prix(n):
prix(n): 2x − 1 else:
if n > 15:

def fonc(x,y): pour que f(x) renvoie 2 . if 2*x < x**2: return 2*n assert x ! = −1
else:
if a < b:

def f(x):

def tarif(n):

if−nn5 < b: 1.5*(n − 3) + 4


returnQue
3*xif = =3:3:? x − 3
<prix(7) def h(x): if
def areturn
h(x):
def renvoie
return 4

< return 2*xelse: return (2 +


f(x):
Que renvoie compare(0.5) ?
def div(n):

s = x + y def prix(n):
returnreturn
… 2*n
return 2*n
Que renvoie
else:h(2) ? assert x ! = −1
return
assert
return xa!−= 3)
1.5*(n −1+ 4
else:

else:
def g(x):

def h(x):
else:
d = x − y Compléter Que renvoie f(−6) ?
def h(x): return x**2 return (2 + x**2)(x + 1)
2*nle script
if n < = 3:
else:
return
return 1.5*(n − 3) + 4 2 x − 1 assert x ! = −1 else: return (2 + x**2)(x + 1)
def compare(x):
Que renvoie fonc(1,−5)
Que renvoie
return s,d pour return
Que renvoie return
prix(7) ??
f(6)?1.5*(n − 3) + 4 return (2Que renvoie ranger(5,6) ?
From math import sqrt if 2*x < x**2:
+ x**2)(x +return
1) b
que f(x)− 3)renvoie .
else:

0.25
1.5*(n + 4 Que renvoie h(2) ?
defprix(n):
def fonc(x,y):
def f(x):
if n < = 3:
3*x − 5
x2 − 3 def h(x):
def ranger(a,b):
def f(x):
if a < b: return 2*x
= x def
(2*x − 1)/(x**2 − s3) f(x):
+ yreturn
return 2*n assert x ! = −1
if x < 0:
returnQue
(2 + renvoie
return 1)a
+ f(−6) ? else:
Que renvoied =f(3,2,−1) return
x − yelse: ? …
return 1.5*(n − 3) + 4
x**2)(x
else: return: « impossible »
return Que
s,drenvoie fonc(1,−5) ?
def f(x,a,b): def fonc(x,y):
From math import
return
else: b sqrt return x**2
def f(x):
return a*x + bs = x + y if x < 0:return sqrt(x)
Qued =renvoie
Que renvoie prix(7) ? Que renvoie f(−6) ?
renvoie ranger(5,6)??
Que f(3,2,−1)
x − y
4

ue renvoie f(6) ? return:


Que « impossible »
renvoie h(2) ?
return s,d From math import sqrt
ef f(x):
e f(6) ? def
def f(x,a,b):
def
Que prix(n):
ranger(a,b):
renvoie ranger(5,6) ? else:
return 3*x − 5
Que renvoie f(−2)
return a*x
def ?return
if a < b:
if
+ bn
ranger(a,b):
a < = 3: Que renvoie
def f(x): div(27) def
if x < 0: return
? h(x):
sqrt(x)
3*x − 5 else: <
ue renvoie fonc(1,−5) ?
def f(x):
if a
Que renvoie
return
b:
returnb f(3,2,−1)
return
a
?
2*n assert
def div(n):return: « impossible » x ! = −1
ef fonc(x,y):
defelse:
− f(x,a,b):
+ ifelse: = = 0 sqrt(x)
n%3 return return (2 + x**2)(x + 1)
Que renvoie solde(48, 25/100) ?

s = x + y return 3*x**2 2*x


else: 1

10 5
e fonc(1,−5) ?
Que renvoie
Que f(−2) ?a*x Que renvoie div(27) ?
return 1.5*(n − 3) + 4

d = x − y return
return
renvoie f(−6) ?b + b
return n//3
def f(x): def f(x): return 1.5*(n − 3) + 4
x,y):
return s,d From math import sqrt
return prix^(1 − reduc)

+ y def div(n):
return 2*(larg + long)

x −3
2x − 1
return 3*x**2 − 2*x + 1

−ueyrenvoie f(3,2,−1) ? Que renvoie


if x <f(−6)
0: ?
Quemath
renvoie
− return: ?1
«+impossible Que renvoie == 0 ?
if n%3div(27)
Que renvoie fonc(1,−5) ?

return
Que renvoie 3*x**2 f(−2)
2*x
peri(4,8)else: ?
return 2 + 3/(x + 1)

»
pour que f(x) renvoie 2
Que renvoie f(3,2,−1) ?

Que renvoie peri(4,8) ?

s,d From import sqrt


def solde(prix,reduc):

ef f(x,a,b):
defdef f(x):return
f(x): return
def div(n):
Queifrenvoie n//3
tarif(9) ?
Que renvoie prix(7) ?

return a*x + b sqrt(x)


def peri(larg,long):

def peri(larg,long):
returnif x < 0:
3*x**2 − 2*x + 1 n%3 = = 0
Que renvoie f(−2) ?

return 2*n

e f(3,2,−1) ?
return a*x + b
return 3*x − 5

return: « impossible »
Que renvoie f(6) ?

Que renvoie g(2) ?

Compléter le script

ue renvoie f(−2) ?
,b): Que renvoie
return renvoie+div(27)
Que peri(4,8)
2*(larg else:long)? ? def tarif(n):
return n//3
if n < = 3:
def fonc(x,y):

ef f(x):
a*x + b def div(n): return sqrt(x) Que renvoie
if n >tarif(9)
15: ?
return s,d

def f(x,a,b):

return …

return 3*x**2 − 2*x + 1 def peri(larg,long):


Que renvoie
if n%3 = = 0
peri(4,8) ?
s = x + y
d = x − y

def prix(n):

return n//3
return 2*(larg
def + long)
peri(larg,long): Que
def renvoie return
tarif(n): + (n − 5)*0.75
tarif(9) 4
?
else:
def f(x):

def f(x):

def g(x):

def f(x):

euef(−2)
renvoie?peri(4,8) ? Que renvoie div(27) ?
ef peri(larg,long):
Que renvoie g(2)
def ?div(n):
return
Que renvoie 2*(larg
tarif(9) ? + long) n > 15:
return
if
def tarif(n): 4
return
3*x**2 2*x + 1+ long)
− 2*(larg def tarif(n):
if n%3 = = 0 if n >return
15: 4 + (n − 5)*0.75
def g(x): if n >return
15:
Que renvoie g(2) ? 4 +n//3
return (n − 5)*0.75 return 4 + (n − 5)*0.75
return 4
ue renvoie g(2) ?
e peri(4,8) ? return 2 + 3/(x
Que
return 4+ 1)
renvoie g(2) ? return 4

9
ef g(x):
larg,long):
return 2 + 3/(x + 1)
def g(x):Que
defrenvoie
g(x):tarif(9) ? Que renvoie g(−6) ?
impossible + 3/(x
n 2*(larg + long) return
Que2
def renvoie
return
tarif(n): ? ++ 1)
g(−6) 2 3/(x + 1)
def g(x):
if n > 15: defrenvoie
Que
Que g(x):g(−6)
renvoie g(−6)
? ?
Que renvoie solde(48,
ue renvoie solde(48, 25/100) ? assert x > 0
25/100) ?
return 4 + (n − 5)*0.75
def assert x > 0
ef solde(prix,reduc):
e g(2) ?
Que
return x + 5
return 4
renvoie solde(48, 25/100) ?
def g(x):
g(x):
return prix^(1 − reduc)
def Que renvoie solde(48,
solde(prix,reduc): 25/100) ? return
assert
assertx > x
x 0> +0 5
n 2 + 3/(x + 1) Que renvoie compare(0.5) ?
def solde(prix,reduc): return x + 5
ompléter le script
2x − 1 return prix^(1
Que − g(−6)
def solde(prix,reduc):
renvoie reduc)
def compare(x): ?
return prix^(1 − reduc) return x + 5
our que f(x) renvoie 2 . def if 2*x < x**2:
return 2*x−
g(x):
e solde(48,
ef f(x):
x −3
25/100) ? return prix^(1 reduc)
return …
(prix,reduc):
assert x > 0
else:
return + 5
x x**2
return
Querenvoie
Que renvoie compare(0.5)
compare(0.5) ? ?
n prix^(1 − reduc) Compléter le script
Compléter le script 2x − 1 Que
def renvoie
defcompare(x): compare(0.5)
compare(x): ?
ue renvoie prix(7) ?
Compléter pour
lerenvoie
script 2 ?x −renvoie
queh(2)
f(x) 1 ? 2 . 2*x < x**2:
def ifcompare(x):
ef prix(n):
le script
pour que f(x) renvoie
Que
Que
f(x): 2 2 x. − 1
renvoie
defh(x):
compare(0.5) x −3 2*x <
ifreturn 2*xx**2:
if n < = 3:
2x − 1 pour que f(x) renvoie
def
def compare(x): .
def f(x): return
def s,d
ranger(a,b):
return 3*x − 5 if a < b:
return? a
Que renvoie f(3,2,−1)
else:
def f(x,a,b):
Que renvoie fonc(1,−5) ? return a*x + return
b b
def fonc(x,y):
s = x + y
Que renvoie
Que f(−2) ? f(−6) ?
renvoie
d = x − y
def f(x):
return s,d From math import sqrt
return 3*x**2 − 2*x + 1
def f(x):
Que renvoie f(6) ? if x <
Que renvoie f(3,2,−1) ? Que renvoie ranger(5,6) ?
Début 13 5
0:
Que renvoie peri(4,8) ? return: « impo
def f(x): def f(x,a,b): def ranger(a,b): def peri(larg,long):
Que renvoie f(6) ?
else:
return a*x + b return 2*(larg + long)
return sqrt(x)
return 3*x − 5 if a < b: def f(x):
return 3*x − 5
return a
Que renvoie g(2) ?
Que renvoie f(−2) ? else: Quefonc(1,−5)
Que renvoie renvoie div(27)
? ?
Que renvoie fonc(1,−5) ? def f(x): return b
def g(x):
def div(n):
def fonc(x,y):
= x + y 2 + 3/(x + 1)
sreturn
def fonc(x,y): return 3*x**2 − 2*x + 1 d = x − y if n%3 = = 0
return s,d return n//3
Que s = xf(6)
renvoie + y? Que renvoie ranger(5,6) ? Que renvoie solde(48, 25/100) ?
Que renvoie f(6) ? def f(x):
d = x − y Que
def? renvoie
Que renvoie ranger(5,6) peri(4,8) ? Que
ranger(a,b): renvoie f(−6) ? def
Que solde(prix,reduc):
renvoie f(3,2,−1) ?
def f(x):
return 3*x − 5
def ranger(a,b):
if a < b:
def peri(larg,long): Que prix^(1
def return
f(x,a,b):renvoie −tarif(9)
reduc) ?
return s,d From math import sqrt

24
return a return a*x + b
return 3*x − 5 if a < b: else: 2*(larg + long)
return def tarif(n):
Que renvoie fonc(1,−5) ? return a def f(x): Compléter leif n > 15:
script
return b Que renvoie f(−2) ? 2x − 1
def fonc(x,y): else: Que renvoie f(6) ? if x < 0:
Que renvoiepour que f(x)
ranger(5,6) return2 4 +. (n −
? renvoie 5)*0.
Que renvoie fonc(1,−5) ? Ques renvoie f(3,2,−1) ? return b Que renvoie g(2) ? def f(x): x −3
3*x**2 − 2*x +4 1»
return
= x + y def f(x):
Que renvoie ?
return: «return
def
def ranger(a,b): impossible
f(x):
def fonc(x,y): d = x − y def g(x):
return 3*x f(−6)
− 5 if a < b: return …
s = x + y def f(x,a,b):
Quereturn
renvoie f(6) ?
s,d Que renvoie ranger(5,6)
Fromreturn
math ?
2 + 3/(x
import + 1)
sqrt else: return a
Que renvoie peri(4,8) ?
d = x − y return a*x
def f(x): + b Que renvoie f(−6) ?def ranger(a,b):
def f(x):
Que renvoie fonc(1,−5) ?
else:
return sqrt(x) Que renvoie g(−6) ?
def bperi(larg,long):
return 3*x − 5 Quea renvoie
< b: if f(6) ? return Que renvoie ranger(5,6) ?
Que renvoie prix(7) ?
return s,d From math import sqrt if def fonc(x,y): x < 0: return g(x):+ long)
def2*(larg
Que renvoie f(3,2,−1) ? def f(x): def sreturn
Que f(x):
renvoie a
= x + y solde(48,return: «25/100) impossible? » def defprix(n):ranger(a,b):
else: Que renvoie f(−6) ? assert x > 0
def dreturn y 3*x − 5
= x −else: Que if n if = a3:<? b:
<g(2)
Que f(x,a,b):
renvoie fonc(1,−5) ? if x < 0: renvoie
Que renvoie f(3,2,−1) ? Que renvoie
return a*x + f(−2)
b ? def return
solde(prix,reduc):
returns,d b
return Que renvoie div(27)
sqrt(x) ? import
From math sqrt return
def g(x):return 2*n xa + 5
return
def fonc(x,y): return: « impossible
return prix^(1 » − reduc) def f(x): else:
returnelse:2 + 3/(x + 1)

−4 6
def f(x,a,b): s = x + y else: if x < 0:
?def div(n):

36
defd f(x): QueQue
renvoie renvoie
Que renvoief(−6) fonc(1,−5)
?
f(3,2,−1) ? return 1.5*(nb »− 3) + 4
return

17
return a*x + b = x − y return sqrt(x) return: « impossible
Que renvoie compare(0.5) ?
Quereturn
renvoies,d f(−2) ? Que renvoie div(27) ?
return 3*x**2 − 2*x + 1 Fromdef
def
math fonc(x,y):
f(x,a,b):
Compléter import sqrt
le +script
if n%3 = = 0 else:
Que renvoie solde(48, 25/100) ?
def f(x): defreturn
def div(n):
s = x + y
f(x): a*x b
2x − 1 def returndef compare(x):
sqrt(x)
solde(prix,reduc):
return n//3
Que renvoie div(27) ? pourdif que −0:=y= renvoie
<f(x) . Que
return 3*x**2 − 2*x + 1 if n%3 0 returnrenvoieif 2*x
prix^(1 f(−6)< x**2:
− reduc) ?
Que renvoie f(−2) ? = xx
Que renvoie f(3,2,−1) ? x2 − 3 »
def f(x): def div(n): f(x):return
Quereturn
def renvoie s,d ? n//3
return:
f(−2) « impossible Que renvoie div(27)
From? math import returnsqrt 2*x
Que
return 3*x**2 − 2*x + 1 Quereturn
renvoie
def f(x,a,b):
renvoiea*x
peri(4,8)
peri(4,8)
+ b ?
? if n%3 = = 0
else:
def f(x):
returnreturn … sqrt(x) def div(n): Compléterdef
if n%3 =pour
le script
else:
f(x):
= 0 que f(x) renvoie 2
2x − 1
.
return 3*x**2 − 2*x + 1
def peri(larg,long):
def peri(larg,long): return n//3 Que renvoie tarif(9)
Que renvoie f(3,2,−1) ? ? Que renvoie tarif(9) ?
return
def n//3
f(x):
if return
x <
x 0:
− 3 x**2
return … return: « impossib
Que return
return
renvoie 2*(larg
f(−2) ? + long) + long)
2*(larg def renvoie
QueQue
renvoie
Que
def
tarif(n):
renvoie
div(27)
f(x,a,b): ?
peri(4,8)
prix(7) ? ? def tarif(n): Que renvoie tarif(9) ? else:
Que renvoie peri(4,8) ? if n > 15:
def peri(larg,long):
a*x +4 b+ (n − 5)*0.75 Queprix(7)
renvoie h(2) ? sqrt(x)
def peri(larg,long):
def f(x): Que renvoie tarif(9) def return
def?div(n):
prix(n):
return return
= = 2*(larg + long) if n > 15: Que
def tarif(n): renvoie ? return
Quereturn
renvoie g(2)− ?2*x + 1
3*x**2 if n%3
if
0
n <n//3
=4 3: def h(x):
return 2*(larg + long) def tarif(n): return
return return 4 +if(n −
n > 15:
5)*0.75
def prix(n):
return 4if+ n(n 5)*0.75 x ! = −1
< =− 3:
assert
Que renvoie
def g(x):
Que return
g(2) ?
renvoie peri(4,8)
2 + 3/(x +? 1)
if n > 15: Que renvoie
Que renvoie return ? 2*n
f(−2)
g(2) ? return 4 return 4 Quereturn
renvoie 2*n div(27) ?
return (2 + x**2)(x +
return 4 + (n def def else:
− 5)*0.75
g(x): else:
Que Que
renvoie renvoie
f(x):tarif(9) g(−6) ? ? def div(n):
Que renvoie g(2) ? def g(x):
def peri(larg,long): return 4 returnreturn
2 + 3/(x 1.5*(n
+ 1) − 3) + 4 return
Que renvoie g(−6) ? if n%3 = = 0
1.5*(n − 3) + 4
return 2*(larg + long) return
def
def tarif(n):g(x):3*x**2 − 2*x + 1
def g(x): return
Que renvoie 2 + 3/(x
solde(48, 25/100) + 1)? > 15: x > 0
if n assert def g(x): return n//3
return 2 + 3/(x + 1) def solde(prix,reduc): return4 x+ +(n5 − 5)*0.75Que renvoie g(−6) ?assert x > 0
Que renvoie
return solde(48, 25/100) ?
QueQue
renvoie g(2) ? Que renvoie g(−6) ? Que renvoie peri(4,8)
def solde(prix,reduc):
return 4 ? return x + 5
renvoie
return f(6) ?− reduc)
prix^(1 Quereturn
renvoie prix^(1 − reduc) ? def g(x):
ranger(5,6)
def g(x): def g(x): def
def peri(larg,long):
Que renvoie tarif(9) ?
Que
Que renvoie solde(48, 25/100) renvoie
def? f(x):
return solde(48,
2 + 3/(x + 1) 25/100) assert? x > 0
ranger(a,b):
Quereturn
renvoie compare(0.5) ? assert x > 0Que renvoie Que
compare(0.5) ?
return 3*x − 5 Que renvoie a < b:
if g(−6) 2*(larg
? Que+renvoie
long) f(6) ? def tarif(n):
renvoie ranger(5,6) ?
def solde(prix,reduc): Compléter le script return x + 5 Compléter le script def compare(x):
def
return prix^(1 − reduc)pour solde(prix,reduc):
que f(x)
2x − 1
renvoie 25/100) .
def
def g(x):
pour
compare(x):
que
if
return
f(x)
a
renvoie
2*x < x**2:
2 x
def − 1
f(x):
. return x + 5 if 2*x
def
<
if n > 15:
ranger(a,b):
x**2:
return 2*xreturn a return 4 + (n − 5)*0.75
Que renvoie else: 2
x −return
3 3*x − 5 if a < b:
Quereturn
solde(48,
prix^(1
renvoie fonc(1,−5) x 2 − ?3 − ? reduc) assert
def f(x):
Que
x > 0
renvoie g(2) ?
def f(x):
def solde(prix,reduc): returnreturn +return
x return
…5
b2*x else: else: return 4
def fonc(x,y):
return … Que renvoie compare(0.5) ?else: Que renvoie fonc(1,−5) ? return x**2 return b
return prix^(1 − reduc) def g(x):
Compléter le script s = x + y def compare(x): return x**2
+ 3/(x x + Que
def fonc(x,y):
renvoie compare(0.5) ? f(−6) ?
2x − 1 Que return
Querenvoie
renvoie 2
f(−6)
prix(7) ?? s+== 1) y
d = x − y if 2*x < x**2:Que renvoie compare(0.5) ?dreturn

3.0 10
pour que f(x) renvoie 2 . x − y Que
Que renvoie renvoie g(−6) ?
x − 3Compléter le script Que renvoie h(2) ?
Que renvoie
Compléter le prix(7)
return script
s,d ?x − 1 def
From prix(n):
math import sqrt def compare(x): def h(x): Fromdef
s,d math import sqrt
def f(x): que f(x) renvoie 2
pourprix(n):
2
. 2 x − −1 1)/(x**2
return 2*xdef compare(x):
− Que renvoie
ifdef = 3:h(2) ?
n <f(x):
< x**2:
deff(x):g(x):
return … pour
def que f(x) renvoie
x −3 (2*x . else: 3) if
Que 2*xrenvoie
return
if2*x
solde(48,
2*n 25/100)
x < 0: Que renvoie f(3,2,−1)
?
if? 2*x < x**2: return (2 + x**2)(x
assert x ! = −1 if x < 0:
assert > 0
return: x« impossible
x2 − 3 return
def else:
h(x): »
def f(x):n < = 3:f(3,2,−1) ?
if renvoie
Que return x**2 def + 1)
return x + 5
else:solde(prix,reduc): def f(x,a,b): else:
assert ! return:
returnx 1.5*(n 3) «+ impossible
= −1− return » return 2*x
defdef f(x):
return …
return 2*n 4a*x + b return sqrt(x)
f(x,a,b): return
return else:prix^(1
x**2
return (2 + −x**2)(x
reduc) + 1)
sqrt(x) else:
else:
Que renvoie prix(7) ? return a*x…
return + b return
return 1.5*(n − 3) + 4
Que renvoie prix(7) ? Que renvoie h(2) ? Que renvoie f(−2) ? Que renvoie div(27) ?
Que renvoie compare(0.5) ?
def prix(n): renvoie h(2)le?script defreturn
QueCompléter f(x): return x**2 def div(n):

if n < = 3: def prix(n): def h(x): Que renvoie div(27) ? 2 x − 1


3*x**2 − 2*x + 1 def
if == 0
n%3 compare(x):
Que renvoie
< = 3: f(−2) ?
return n//3
return 2*n if n assert x ! = −1def pour
h(x):que f(x) Querenvoie
renvoie f(6) ? . Que renvoie 2*x < x**2:
if ranger(5,6) ?
else: Que defrenvoie
f(x):
return 2*nprix(7) ? assert
return (2 + x**2)(x
x ! = −1
def div(n):
+ 1)def+ f(x):
def return
f(x):
x 2 −peri(4,8)
Que renvoie 3 ?
defrenvoie
Que return
ranger(a,b):
tarif(9) ? 2*x
3*x +− 1)
… n//3 return Que
return 3*x**2 − 2*x + 1 if n%3(2 0x**2)(x
= = return 52*(larg +renvoie h(2) ?
else: def peri(larg,long):
if a < b:
else:
return 1.5*(n − 3)def
+ 4 prix(n):
return 1.5*(n − 3) + 4 returnreturn
long) def tarif(n):
if n > return
15: a
return x**2
Queifrenvoie
Que renvoie = ranger(5,6)
n <peri(4,8)
3: ? ? Que renvoie def h(x):
renvoie g(2) ? ?
Que fonc(1,−5)
else:
return 4 + (n − 5)*0.75
return return
4 b
def
def ranger(a,b):
return 2*n
peri(larg,long): Que
Querenvoie prix(7)
renvoie tarif(9)
def ?return
def g(x):
fonc(x,y): assert x ! = −1
2 + 3/(x + 1)
QueQue renvoie h(2) ?
impossible
s = x + y Que renvoie g(−6) ?
return 2*(larg + long)
if
else: a < b: def prix(n):
def tarif(n): d = x − y
>
return (2 + x**2)(x renvoie
def g(x): +f(−6)
1) ?
if n 15:
if n < = 3: return
Ques,d
renvoie solde(48, 25/100) ? Fromdef
mathh(x):
assert x import
> 0 sqrt
return 1.5*(n
return a − 3) + 4 return +def
return 42*n − 5)*0.75
(nsolde(prix,reduc): assert
def f(x):
return x + 5 x ! = −1
Que renvoie g(2) ? return 4 return prix^(1 − reduc) if x < 0:
else: else: Que renvoie f(3,2,−1) ? return
return:
(2 + x**2)(x
? « impossible »
+ 1)
Que renvoie ranger(5,6) ?def g(x):
returnreturn
2 + 3/(x b
+ 1)
return 1.5*(n
def f(x,a,b): − le3)
Compléter + 4
script
Que renvoie compare(0.5)
else:
def compare(x):
return b renvoie 2 x − 1 .
que+f(x) return sqrt(x)
def ranger(a,b): Que renvoie g(−6) ?poura*x x2 − 3
if 2*x < x**2:
def f(x): return 2*x
if a < b: def g(x): return … else:
Que renvoie solde(48, 25/100) ? assert xQue> renvoie
0 f(−2) ? Que renvoie
return div(27)
x**2 ?
return a Que renvoie f(−6) ?
def solde(prix,reduc): return xdef+ f(x):
5 Que renvoie prix(7) ? def div(n):
return 3*x**2 − 2*x + 1 if n%3 = =? 0
else: From return
math prix^(1
import − reduc)
sqrt def prix(n):
Que renvoie h(2)
if n < = 3: def h(x): return n//3
? return b Que renvoie ranger(5,6) ? assert x ! = −1
def f(x): Que renvoie compare(0.5) ?
return 2*n

0.25 4
Que renvoie else:
peri(4,8) ? return (2 + x**2)(x + 1)

5
Compléter
def le script
ranger(a,b):
if x < 0: def compare(x): return 1.5*(n −
def peri(larg,long): 3) + 4 Que renvoie tarif(9) ?
2x − 1
5 pour a <f(x)
if que b: renvoie 2 . return 2*(larg + long)
if 2*x < x**2: def tarif(n):
Que renvoie f(−6) ? return
def f(x): a return:
x −3 « impossible » return 2*x
if n > 15:
return 4 + (n − 5)*0.75
From math import sqrt returnelse:
else: … else: Que renvoie g(2) ? return 4
(1,−5) ? return b return x**2
def f(x): return sqrt(x) def g(x):
return 2 + 3/(x + 1)
if x < 0: Que renvoie prix(7) ? Que renvoie g(−6) ?
return: «Que Que renvoie h(2) ? def g(x):
defrenvoie
impossible f(−6)
prix(n): » ? Que renvoie solde(48, 25/100) ? assert x > 0
else: Quemath
From renvoie
if < = 3:div(27)
n import sqrt ? def h(x): def solde(prix,reduc): return x + 5
return 2*n
def f(x): assert x ! =return
−1 prix^(1 − reduc)
return sqrt(x)
def div(n): return (2 + x**2)(x + 1)
else:
if x < 0: Que renvoie compare(0.5) ?
2,−1) ? if return=1.5*(n
= 0 «− impossible
n%3 return: 3) + 4 » Compléter le script def compare(x):
2x − 1
else:
return n//3 pour que f(x) renvoie 2 . if 2*x < x**2:
b
Que renvoie div(27) ? return sqrt(x) def f(x):
x −3 return 2*x
return … else:
def div(n): return x**2
if n%3 = = 0 Que
)?
return n//3 Querenvoie
renvoie
div(27) ?
tarif(9) ? Que renvoie prix(7) ?
Que renvoie h(2) ?
def div(n): def prix(n):
− 2*x + 1 defiftarif(n):
n%3 = = 0 if n < = 3: def h(x):
return 2*n assert x ! = −1
n > 15:
ifreturn n//3 return (2 + x**2)(x + 1)
Que renvoie tarif(9) ? else:

(4,8) ? return 4 + (n − 5)*0.75 return 1.5*(n − 3) + 4


def tarif(n): return
Que renvoie 4
tarif(9) ?
ong):
if n > 15:
arg + long) def tarif(n):
return 4 + (n − 5)*0.75
if n > 15:
return 4 return 4 + (n − 5)*0.75
Que renvoie g(−6) ?

9 Fin
? return 4
def g(x): assert x > 0
100)
3/(x ?
+ 1) Que renvoie g(−6) ? assert
Que renvoie x ?> 0
g(−6) AssertionError
def g(x): return x + 5
def g(x):
e(48,
) 25/100) ? assert x > 0 assert x > 0
reduc): return x + 5 return x + 5
^(1 − reduc) Que renvoie compare(0.5) ?
Que
def renvoie compare(0.5) ?
pt Que renvoie compare(0.5) ? compare(x):
. 2x − 1
nvoie 2 . def compare(x):
def compare(x):
if 2*x < x**2:
if 2*x < x**2:
−3
x script_jeu2_reponse.indd 1 return
2*x 2*x 18/03/2020 09:51
if 2*x < x**2: return
return 2*x else:
else:
return x**2
else: return x**2
Travailler les
automatismes Ce jeu réinvestit :
les opérations de base (page 8)

3
jo u e s plusi

Jeu For … While …


à
les fonctions (page 10)

eu
eu
Se

ou

rs
l
la boucle bornée for… (page 14)
la boucle non bornée while…


(page 16)
Déterminer le résultat et vérifier au verso de la carte.

On exécute les instructions On exécute les instructions On exécute les instructions

for k in range(5): for i in range(4): a = 1


print(2*k + 1) print(i**2) for k in range(1,5):
a = 2*a
print(a)

On exécute les instructions On exécute les instructions On exécute les instructions

a = 1 a = 1 a = 1
for i in range(5): for k in range(4): for m in range(5):
a = i * a a = a + 2 a = a + m
print(a) print(a) print(a)

On exécute f(200,4) On exécute g(200,4) On exécute somme(5)

def f(montant, nbannees): def g(montant, nbannees): def somme(n):


for i in range(nbannees): for i in range(nbannees): s = 0
montant = montant + 2 montant = montant*2 for k in range(1, n + 1):
return montant return montant s = s + k
return s

On exécute les instructions On exécute les instructions On exécute les instructions

a = 1 a = 1 a = 1
while a < 20: while a < 20: while a**2 < 100:
a = a * 3 print(a) a = a + 1
print(a) a = a * 3 print(a)

On exécute les instructions On exécute les instructions On exécute les instructions

n = 240 a = 1 somme = 1
while n%2 = = 0: while a**2 < 28: k = 1
n = n//2 a = a + 1 while somme < 100:
print(n) print(a) k = k + 1
somme = somme + k**2
print(k)

On exécute r(48,11) On exécute cube(1248) On exécute somme(1000)

def r(n,m): def cube(N): def somme(montant):


q = 0 n = 1 duree = 0
while n > m: while n**3 < N: while montant > = 800:
n = n – m n = n + 1 duree = duree + 1
montant = montant − 70
q = q + 1 return n, n**3
return duree, montant
return q
Réponse Réponse Réponse
1
2 0
For … 4 For … 1 For … 3
5
While … 8 While … 4 While … 7
16 9
9

Réponse
1

For … 2 For … While … For … While …


4
While … 7
Réponse Réponse

11 9 0

For … While … For … While … For … While …


Réponse Réponse Réponse

15 3200 208

Réponse Réponse

For … While … For … 1 For … 3


3 9
Réponse While … 9
While … 27
10

Réponse

120
For … While … For … While … For … 60
Réponse Réponse While … 30

7 6 15

For … While … For … While … For … While …


Réponse Réponse Réponse

(3, 790) (11, 1331) 4


Carte des questions possibles : Programme 1 : Programme 2 :

Le programme renvoie-t-il ou affiche-t-il uniquement un nombre ? def bissextile(annee): # fonction pour calculer le taux global
Le programme contient-il une fonction ? if annee % 400 = = 0: # correspondant à 2 évolutions successives
Le programme contient-il une boucle ?
Travailler les

return annee + "bissextile"


automatismes

Le programme contient-il une fonction à un seul argument


def taux(t1, t2):
Règle du jeu :
elif annee % 100 = = 0:
(ou paramètre) ? return (1 + t1)*(1 + t2) − 1
return str(annee) + "non bissextile"
Le programme contient-il une structure conditionnelle ?
elif annee % 4 = = 0:
Le programme contient-il une boucle avec 100 passages ?
return str(annee) + "bissextile"
Le programme utilise-t-il une instruction de la division euclidienne ?
Le programme choisit-il un nombre aléatoire ? else:
Le programme importe-t-il un module ? return str(annee) + "non bissextile" des questions possibles.

Programme 3 : Programme 4 : Programme 5 :

from random import*


On inverse les rôles des élèves A et B.

from math import* a = 14


Jeu

from math import*


def f(montant,seuil): b = 5 s = 0
n = 0 for i in range(10): for i in range (0, 100):
abscisse = randint (−100, 100)
while montant < seuil: c = a + b ordonnee = randint (−100, 100)
4

n = n + 1 b = c rayon = sqrt(abscisse**2 + ordonnee**2)


montant = montant*1.1 print(c) if rayon < 100:
s = s + 1
return n, floor(montant) print("le score est", s)

Programme 6 : Programme 7 : Programme 8 :

import matplotlib.pyplot as plt from math import* s = 0


def f(x): n = 96 for k in range(1, 101)
return x**2 u = n % 10 s = s + k**2
Qui est-ce

x = −1
for i in range(21): d = n // 10 print(s)
plt.plot(x, f(x),'r*') m = 10*u + d
x = x + 0.1 print(m)
plt.show() S e jo u
e à plu

s ie r s
u

Programme 9 : Programme 10 : Programme 11 :

from math import* # n compte le nombre def triangle(n):


a = 14 # de multiplications T = 1
for i in range (100): n = 0
Ce jeu se joue en binôme. Chaque élève dispose de son jeu de carte. L’élève A choisi un programme

for i in range(2, n + 1)
if a % 2 = = 0: u = 1
sans retirer sa carte du jeu ; il note le numéro du programme sur une feuille sans la montrer à l’élève B.

a = a/2 while u < 100: T = T + i


else: u = 2*u return T
Le gagnant est celui qui a utilisé le moins de questions pour deviner le programme choisi par l’autre élève.

a = a*3 + 1 n = n + 1
print(a) print(n)
L’élève B doit deviner le programme de l’élève A en posant des questions choisies judicieusement dans la carte


Qui est-ce Qui est-ce Qui est-ce
Qui est-ce Qui est-ce Qui est-ce
Qui est-ce Qui est-ce Qui est-ce
Qui est-ce Qui est-ce Qui est-ce

Vous aimerez peut-être aussi