Vous êtes sur la page 1sur 2

Spécialité NSI Première

Algorithmique – TP2

Exercice 1 : Carré
1) Recopier la fonction ci-contre :
2) Exécuter là avec k = 100 puis k = 4 000.
3) Que calcule cette fonction ?
4) Combien de tours de boucles sont effectués en tout ?
5) En vous inspirant de la fonction carre(k), proposer une
fonction cube(n) qui calcule et renvoie le cube d’un nombre n.

Exercice 2 : Produit
1) Recopier la fonction ci-contre :
2) Exécuter là avec :
a = 100 et b = 300
puis a = 2 000 et b = 4 000
3) Que calcule cette fonction ?
4) Combien de tours de boucles sont effectués en tout ?
5) En vous inspirant de la fonction prod(a,b), proposer une
fonction prod3(a,b,c) qui calcule et renvoie le produit de trois nombres a, b et c.

Exercice 3 : Matrice
On rappelle que l’on définit en Python les matrices (tableaux de nombres) à l’aide d’une liste de
listes, par exemple :
M = [[5,7,1,6],
[0,3,4,4], où M[0][3] = 6
[2,8,1,0]]

1) a. Écrire une fonction add_one(i,j) qui rajoute 1 dans la matrice à la ligne i et à la colonne j.
b. Écrire une fonction add_n(i,j,n) qui rajoute n dans la matrice à la ligne i et à la colonne j.
c. Tester vos deux fonctions avec la matrice M de l’exemple ci-dessus.
2) a. Écrire une fonction max(M) qui renvoie le maximum des nombres de la matrice M.
b. Écrire une fonction min(M) qui renvoie le minimum des nombres de la matrice M.
c. Tester vos deux fonctions avec la matrice M de l’exemple ci-dessus.
3) Combien de tours de boucle sont effectués lorsque la matrice M a n lignes et p colonnes ?

Exercice 4 : Temps d’exécution


1) Écrire au début de votre fichier :
import time as t
Nous allons utiliser dans cet exercice le module time auquel on donne l’alias t.

2) Recopier la fonction ci-contre :


3) Tester cette fonction avec k = 1 000 ; k = 5 000 puis k = 10 000.

explications : on a utilisé la fonction time du module time que l’on


appelle en utilisant l’alias t suivi du nom de la fonction : t.time().
Cette fonction donne l’heure en seconde.
En calculant fin-debut, on a estimé le temps d’exécution de la fonction carre(k).
4) a. Écrire une fonction temps_cube(n) qui estime le temps d’exécution de la fonction
cube(n).
b. Tester cette fonction avec n = 100 ; n = 500 puis n = 700.

5) Écrire une fonction temps_max(M) qui estime le temps d’exécution de la fonction max(M).

Pour aller plus loin avec le module time :


https://www.delftstack.com/fr/howto/python/python-elapsed-time/
https://docs.python.org/fr/3/library/time.html

Exercice 5 : *args
1) a. Recopier la fonction ci-contre :
b. Tester cette fonction en exécutant les différentes instructions ci-
dessous :
>>> exemple()
>>> exemple(3)
>>> exemple(3,4,5)
>>> exemple((1,7),'a')

Explications : le paramètre *args signifie que la fonction exemple accepte un ou plusieurs


paramètres optionnels. Ces paramètres sont stockés dans la variable local args de type tuple.

2) a. Écrire une fonction somme(*args) qui fait la somme des nombres entrés en paramètre !
b. Écrire une fonction produit(*args) qui fait le produit des nombres entrés en paramètre.

3) Écrire une fonction file_attente(pers,*args) qui à une liste de personnes pers ajoute
à la fin les personnes misent en argument optionnel *args.
Exemple : file_attente(['pat','fleur'],'elias','leo')
renvoie la liste ['pat','fleur','elias','leo']

4) Écrire une fonction pile(pers,*args) qui à une liste de personnes pers ajoute au début
les personnes misent en argument optionnel *args.
Exemple : pile(['pat','fleur'],'elias','leo')
renvoie la liste ['leo','elias','pat','fleur']

Exercice 6 : Trier
1) Écrire une fonction trier(L) qui trie dans l’ordre croissant une liste de nombres !
2) Écrire une fonction temps_trie(L) qui estime le temps d’exécution de la fonction
trier(L).
3) Tester cette fonction avec la liste ci-dessous :

L = [12,4,5,0,11,7,8,8,9,4,5,3,0,12,13,10,8,9,4,21,18,3,2,6,9,14,17,16,1,2]

Vous aimerez peut-être aussi