M1 MEEF SD maths option info
Tableaux et listes en Python
1 Petits parcours
Exercice 1
1. Écrire une fonction qui calcule la somme des éléments d’un tableau de nombres (entiers ou flot-
tants).
2. Écrire une fonction qui calcule la moyenne des éléments d’un tableau de nombres.
Exercice 2
1. Écrire une fonction qui calcule le maximum des éléments d’un tableau (non vide).
2. Modifier votre fonction pour qu’elle renvoie l’indice du maximum.
Dans le cas où il y a plusieurs éléments maximaux, quel indice renvoyez-vous ?
Exercice 3
1. Écrire une fonction qui teste si tous les éléments d’un tableau sont positifs (ou nuls).
2. Écrire une fonction qui teste si un tableau est rangé en ordre croissant (au sens large).
2 Recherches
Exercice 4
1. Écrire une fonction prenant en entrée un élément xet un tableau t, et renvoyant True ou False
selon que xest présent ou non dans t.
2. Écrire une fonction prenant en entrée xet un tableau t, et renvoyant :
la première position de xdans tsi xest présent ;
None sinon.
Comment faire pour renvoyer la dernière position ? Donner deux possibilités !
3. Écrire une fonction prenant en entrée xet un tableau t, et renvoyant la liste (éventuellement vide)
des positions de xdans t.
3 Utilisation des listes
L’objet de cet exercice est d’utiliser les listes Python comme des piles plutôt que comme des tableaux.
On se servira donc essentiellement des fonctions pop et append.
Exercice 5 On veut simuler le comportement d’un navigateur Internet, autorisant les opérations sui-
vantes :
visiter une nouvelle page,
revenir d’une page en arrière (si possible),
aller une page en avant (après être revenu en arrière dans l’historique seulement).
Écrire un ensemble de fonctions simulant ces boutons.
On pourra pour cet exercice utiliser deux piles ; une page sera représentée simplement par une chaîne
de caractères, contenant par exemple son URL.
4 Chaînes de caractères
Exercice 6
1. Écrire une fonction prenant en entrée un motif met un mot w(sous forme de chaînes de carac-
tères), et testant si le motif mest présent dans w. Encore une fois, on renvoie une position de m
dans wsi elle existe, ou None sinon.
Indication : Les chaînes de caractères permettent d’utiliser le slicing, c’est-à-dire de faire des
comparaisons du type w[i:j] = m.
>>> sous_mot (’titi’, ’tructititoto’)
4
>>> sous_mot (’tagada’, ’tructititoto’)
>>>
2. Reprogrammer la fonction précédente, mais en s’interdisant le slicing.
3. Écrire une fonction rechercher_remplacer qui prend en entrée un motif m, un mot wet un mot
de remplacement r(sous forme de chaînes de caractères), et qui renvoie un mot identique à w,
mais dans lequel la première occurrence de ma été remplacée par r.
Dans le cas où mest absent de w, on renvoie winchangé.
5 Compréhension de liste
Exercice 7
Définir les listes suivantes par compréhension :
1. les carrés de tous les entiers compris entre 1 et 100 (inclus) ;
2. les couples (x, y)d’entiers positifs tels que x+y= 100 ;
3. les couples d’entiers de la forme (x, y)tels que xyet les deux entiers xet ysont tous deux
inférieurs à 10 (indication : il est plus facile de les ranger par ycroissants) ;
4. les mêmes qu’à la question précédente, mais rangés par xcroissants ;
5. les entiers compris entre 1 et 1000 qui ne sont multiples ni de 3 ni de 5.
6 Pour les rapides
Exercice 8 (Crible d’Eratosthène)
Pour déterminer l’ensemble des nombres premiers inférieurs à n, on peut créer un tableau de longueur
n+ 1 (pour ne pas être embêté avec les décalages d’indices) contenant la valeur True à tous les indices
(tant qu’on n’a pas prouvé que nest composé, il est supposé premier), puis en « criblant » :
tous les multiples (stricts) de 2 sont composés : on les passe à False dans le tableau ;
tous les multiples (stricts) de 3 sont composés : on les passe à False dans le tableau ;
pour 4, qui est composé (puisque t[4] == False), on laisse tomber (ses multiples sont déjà rayés) ;
tous les multiples (stricts) de 5 sont composés : ...
pour 6, qui est composé...
— etc.
On continue tant que le nombre par lequel on crible) n’a pas dépassé n.
1. Écrire une fonction prenant en entrée net renvoyant la liste des entiers premiers inférieurs à n.
2. Quelle est la complexité de cette fonction ?
3. Combien d’entiers majorés par 107sont premiers ?
Exercice 9 (Permutations dans des tableaux)
On peut voir une permutation de J0, n 1Kcomme une liste de nentiers compris entre 0et n1
dans laquelle chacun des entiers apparaît exactement une fois. Écrire alors :
verifier_permutation qui vérifie si une liste correspond bien à une permutation.
inverse qui calcule la réciproque d’une permutation.
compose qui calcule la composée de deux permutations.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !