DUT Info Introduction à l’algorithmique et à la programmation 2020–2021
TD 4 - Fonctions
Exercice 1. Variables locales et globales
Que se passe-t-il lors de l’exécution des programmes suivants ?
1
def f1(n):
2
n += 1
3
4
if __name__ == "__main__":
5
x = 3
6
f1(x)
7
print(x)
8
print(n)
1
def f2(n):
2
n += 1
3
return n
4
5
if __name__ == "__main__":
6
n = 3
7
x = f2(n)
8
print(x)
9
print(n)
1
def f3(n):
2
x = 4
3
return n + x
4
5
if __name__ == "__main__":
6
y = f3(3)
7
print(y)
8
print(x)
1
def f4(n):
2
x = 2
3
return n + x
4
5
if __name__ == "__main__":
6
x = 3
7
n = f4(4)
8
print(x)
9
print(n)
Exercice 2. Fonction mystère
Que calcule la fonction f ? Essayez à la main sur f('abracdabra abracadabra') .
1
def f(chaine):
2
i = 0
3
for c in chaine:
4
if c == 'a':
5
i = i+1
6
if c == ' ':
7
break
8
return i
Exercice 3. Étoiles
Écrivez une fonction etoiles qui prend un entier n et affiche le message correspondant :
si n vaut 1 : si n vaut 2 : si n vaut 3 : si n vaut 4 :
* *
** *
** ***
* **
***
****
... et ainsi de suite.
Page 1 / 2
DUT Info Introduction à l’algorithmique et à la programmation 2020–2021
Exercice 4. Nombres rationnels
On souhaite réaliser une série de fonctions pour gérer les nombres rationnels, c’est-à-dire les
pqavec p ∈ Z et q ∈ N
∗. Un tel rationnel est représenté par une liste à deux éléments [p, q] . Vous pouvez utiliser la fonction gcd(a, b) du module math , qui renvoie le plus grand commun diviseur de a et b.
1. Écrivez une fonction qui prend un rationnel en entrée et qui renvoie la fraction simplifiée :
−2
4