Vous êtes sur la page 1sur 5

Groupe 15.

4 – Interro TD 1
29 octobre 2020
Durée : 20 minutes

Répondre sur l’énoncé.


Écrire votre nom et prénom en haut à gauche de la première page.
Seul document autorisé : Carte de référence.

La spécification d’une fonction doit contenir uniquement la signature et les hypothèses


éventuelles.
On ne demande pas la description ni de jeux de test.

Pour les simulations de boucles, le tableau qui est proposé contient plus de lignes et de colonnes
que nécessaire.

Exercice 1 : factorielles (correctes ou pas)


Question 1
On donne la définition de fonction ci-dessous :
d e f f 1 ( n : i n t ) −> i n t :

f : int = 1
i : int = 1

w h i l e i <= n :
i = i + 1
f = f ∗ i
return f
Faire une simulation de boucle pour l’application f1(4). Quelle est la valeur retournée ?

Tour i f

entrée 1 1

1er 2 2

2éme 3 6

3éme 4 24

4éme (sortie) 5 120

la valeur retournée est 120

1
Question 2
On donne la définition de fonction ci-dessous :
d e f f 2 ( n : i n t ) −> i n t :

f : int = 1
i : int = 1

w h i l e i <= n :
f = f ∗ i
i = i + 1
return f
Faire une simulation de boucle pour l’application f2(4). Quelle est la valeur retournée ?

Tour f i

entrée 1 1

1er 1 2

2éme 2 3

3éme 6 4

4éme 24 5
(sortie)

la valeur retournée est 24

2
Question 3
On donne la définition de fonction ci-dessous :
d e f f 3 ( n : i n t ) −> i n t :

f : int = 1
i : int = n

w h i l e i >= 0 :
f = f ∗ i
i = i − 1
return f
Faire une simulation de boucle pour l’application f3(4). Quelle est la valeur retournée ?

Tour f i

entrée 1 4

1er 4 3

2éme 12 2

3éme 24 1

4éme 24 0

5éme (sortie) 0 -1

la valeur retournée est 0

3
Question 4
On donne la définition de fonction ci-dessous :
d e f f 4 ( n : i n t ) −> i n t :

f : int = 1
i : int = n

while i > 0:
f = f ∗ i
i = i − 1
return f
Faire une simulation de boucle pour l’application f4(4). Quelle est la valeur retournée ?

Tour f i

entrée 1 4

1er 4 3

2éme 12 2

3éme 24 1

4éme 24 0

la valeur retournée est 24

4
Exercice 2
Donner une définition de la fonction nb_div_3 qui, étant donné un entier n, retourne le nombre
d’entiers inférieurs ou égaux à n qui sont divisibles par 3.
Par exemple :
>>> nb_div_3 ( 3 )
1
>>> nb_div_3 ( 4 )
1
>>> nb_div_3 ( 1 0 )
3

def nb_div_3 (n: int )->int :


‘’’’’’ retourne le nombre d’entiers inférieurs ou égaux à n qui sont divisibles par 3’’’’’’

# i:compteur d’entiers
i:int=0
#c:entiers inférieurs ou égaux à n et divisibles par 3
c:int=3
while c<=n :
if c%3==0:
c=c+1
i=i+1
else :
return i
#jeudetest
assert nb_div_3(3)==1
assert nb_div_3(4)==1
assert nb_div_3(10)==3

Vous aimerez peut-être aussi