Vous êtes sur la page 1sur 4

2021-2022 TD n° 1 (1 heure) Informatique

I Suites et sommes
Q1 On considère la suite (un )n∈N définie par u0 = 2 et, pour tout entier naturel n, par
un+1 = 15 un + 3 × 0.5n .
(a) On veut écrire une fonction suite qui calcule un . Quelles sont ses paramètres ? L’écrire.
(b) Que faudrait-il changer à la fonction si la suite (un ) était définie sur N∗ avec, non pas
u0 = 2, mais u1 = 2 ?
(c) On admet que cette suite est strictement décroissante et converge vers 0.
Écrire un script qui détermine le plus petit entier n tel que un ≤ 0, 1.
(d) On considère la suite (vp )p∈N des sommes partielles de (un ), définie pour tout entier
naturel p par vp = pi=0 ui . Écrire une fonction somme(p) qui calcule vp .
P

Q2 Écrire un script qui détermine le plus petit entier N tel que 2N soit supérieur ou égal à
10 000.

II Listes et fonctions
Q3 Soit t un tableau de type list contenant des entiers.
(a) Écrire une fonction est_element(t,x) qui renvoie True quand x est dans t et False
sinon.
(b) Écrire une fonction somme(t) qui renvoie la somme des éléments de t.
(c) Écrire une fonction moyenne(t) qui renvoie la moyenne arithmétique des éléments de
t.
(d) Écrire une fonction pairs(t) qui renvoie la liste des entiers pairs de t.
(e) Écrire une fonction maximum(t) qui renvoie le maximum des éléments de t.
(f) Écrire une fonction positions_maximum(t) qui renvoie les indices des éléments maxi-
maux de t. Par exemple, positions_maximum([7,2,5,7,3,7]) renvoie [0,3,5].
Q4 Soit n un entier naturel non nul.
(a) Écrire une fonction nombre_diviseurs(n) qui renvoie le nombre de diviseurs de n.
(b) Écrire une fonction est_premier(n) qui renvoie True quand n est premier et False
sinon.
(c) Écrire une fonction premiers(n) qui renvoie la liste des nombres premiers inférieurs
à n.
(d) Écrire un script qui affiche la somme des nombres premiers inférieurs à 100.
Q5 Soit p un entier naturel non nul et n un entier naturel supérieur à p. Soit t un tableau de
type list contenant des entiers.
Écrire une fonction multiple(p,n,t) qui renvoie la liste des multiples de p inférieurs à n
contenus dans t. Faut-il démarrer par le parcours de la liste des multiples de p ou par le
parcours de t ?

Lycée Michelet - CPGE 1re année 1


2021-2022 TD n° 1 (1 heure) Informatique

Corrigé

1 # ## Q1a ###
2 def suite ( u0 , n ) :
3 u = u0
4 for i in range ( n ) :
5 u = (1/5) * u + 3 * 0.5** i
6 return u
7
8 # ## Q1b ###
9 def suite1 ( u1 , n ) :
10 u = u1
11 for i in range (1 , n ) :
12 u = (1/5) * u + 3 * 0.5** i
13 return u
14
15 # ## Q1c ###
16 n = 0
17 a = 2
18 u = a
19 while u > 0.1:
20 n = n + 1
21 u = suite (a , n )
22 print ( n )
23
24 # ## Q1d ###
25 def somme ( p ) :
26 v = 0
27 for i in range ( p +1) :
28 v = v + suite (2 , i )
29 return v
30
31 # ou mieux en terme de performance
32 def somme ( p ) :
33 v = 0
34 u = 2
35 for i in range ( p +1) :
36 v = v + u
37 u = (1/5) * u + 3*0.5** i
38 return v
39

40 # ## Q2 ###
41 n = 0
42 u = 1
43 while u < 10000:
44 n = n + 1
45 u = 2 * u
46 print ( n )
47
48 # ## Q3a ###
49 def est_element (t , x ) :
50 n = len ( t )
51 for i in range ( n ) :
52 if t [ i ] == x :
53 return True
54 return False

Lycée Michelet - CPGE 1re année 2


2021-2022 TD n° 1 (1 heure) Informatique

1 # ## Q3b ###
2 def somme ( t ) :
3 n = len ( t )
4 s = 0
5 for i in range ( n ) :
6 s = s + t[i]
7 return s
8

9 # ## Q3c ###
10 def moyenne ( t ) :
11 return somme ( t ) / len ( t ) # on suppose ici len ( t ) non nul
12
13 # ## Q3d ###
14 def pairs ( t ) :
15 n = len ( t )
16 s = []
17 for i in range ( n ) :
18 if t [ i ]%2 == 0:
19 s . append ( t [ i ])
20 return s
21
22 # ## Q3e ###
23 def maximum ( t ) :
24 ''' on supppose dans cette fonction que t est non vide '''
25 n = len ( t )
26 maxi = t [0]
27 for i in range ( n ) :
28 if t [ i ] > maxi :
29 maxi = t [ i ]
30 return maxi
31
32 # ## Q3f ###
33 def p ositio ns_ma ximum ( t ) :
34 n = len ( t )
35 maxi = maximum ( t ) # fonction appel é e 1 seule fois en amont
36 l = []
37 for i in range ( n ) :
38 if t [ i ] == maxi :
39 l . append ( i )
40 return l
41
42 # ## Q4a ###
43 def nombre_diviseurs ( n ) :
44 compteur = 0
45 for i in range (1 , n +1) :
46 if n % i == 0:
47 compteur = compteur + 1
48 return compteur
49
50 # ## Q4b ###
51 def est_premier ( n ) :
52 return nombre_diviseurs ( n ) == 2
53
54 # ## Q4c ###
55 def premiers ( n ) :
56 t = []
57 for i in range ( n +1) :
58 if est_premier ( i ) :
59 t . append ( i )
60 return t
61

Lycée Michelet - CPGE 1re année 3


2021-2022 TD n° 1 (1 heure) Informatique

62 # ## Q4d ###
63 print ( somme ( premiers (100) ) )
64
65 # ## Q5 ###
66 def multiple (p ,n , t ) :
67 longueur = len ( t )
68 l = []
69 for i in range ( longueur ) :
70 if t [ i ]% p == 0 and t [ i ] <= n :
71 l . append ( t [ i ])
72 return l

Lycée Michelet - CPGE 1re année 4

Vous aimerez peut-être aussi