Exercices sur les tableaux
QCM 1⚓︎
Parcours sur les indices ou sur les valeurs ?
On considère un tableau non vide contenant des valeurs quelconques. Indiquer dans chaque cas le bon type de parcours à effectuer.
-
On souhaite déterminer l'indice de la valeur maximale.
- Parcours sur les indices
- Parcours sur les valeurs
Parcours sur les indices
Parcours sur les valeurs
-
On souhaite calculer la somme des valeurs.
- Parcours sur les indices
- Parcours sur les valeurs
Parcours sur les indices
Parcours sur les valeurs
-
On souhaite créer un nouveau tableau ne contenant que les valeurs de la première moitié de
tableau.- Parcours sur les indices
- Parcours sur les valeurs
Parcours sur les indices
Parcours sur les valeurs
-
On souhaite déterminer les deux extrema (minimum et maximum).
- Parcours sur les indices
- Parcours sur les valeurs
Parcours sur les indices
Parcours sur les valeurs
-
On souhaite élever au carré toutes les valeurs du
tableauen écrivant les nouvelles valeurs dans le mêmetableau. Par exemple[2, 3, 4]deviendrait[4, 9, 16].- Parcours sur les indices
- Parcours sur les valeurs
Parcours sur les indices
Parcours sur les valeurs avec une liste en compréhension :
tableau = [x * x for x in tableau]
Les notes d'Alice - Saison 1⚓︎

1. Alice veut créer la liste des notes qu’elle a obtenues ce trimestre en NSI.
Ces notes ne sont pas forcément des nombres entiers.
Ecrire une fonction qui demande de saisir les notes une par une, et qui renvoie liste_notes, la liste des notes qu’elle a obtenues.
Astuce 1
Vous pouvez prendre en paramètre de la fonction le nombre de notes à saisir.
Astuce 2
vous pouvez initialiser liste_notes = [], puis ajouter dans la liste les notes une par une avec une boucle.
Compléter le code
Solution
2. Créer le programme qui demande la saisie du nombre de notes, crée la liste des notes, affiche la plus petite note, et la plus haute.
💡 Indication : tester les fonctions min et max.
Vous pourrez utiliser la fonction écrite en question 1 (si vous l'avez bien exécutée), sans l'écrire à nouveau.
Ecrire le code ci-dessous
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
3. Créer une fonction moyenne qui prend en paramètre une liste lst et renvoie la moyenne des éléments de cette liste.
Compléter le code
Compléter le script pour qu’il affiche la moyenne des notes saisies par Alice.
La fonction creation_liste est dans du code caché, il ne faut pas l'écrire.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
def moyenne(lst):
"""
Cette fonction renvoie la moyenne de la liste lst
"""
somme = 0 #initialisation de la somme des notes
for note in lst: # calcul de la somme des notes avec une boucle
somme = somme + note
moyenne = somme/len(lst) # len(liste) est le nombre de notes
return moyenne
n = int(input("nombre de notes à saisir : "))
notes = creation_liste(n)
print(notes)
moyenne_notes = moyenne(notes)
print(moyenne_notes)
Exercices du site "CodEx"⚓︎
Remarque
Ne faire que les exercices dont les liens sont donnés ici, car certains se trouvant sur le menu de gauche nécessitent des connaissances que nous n'avons pas encore vues.
Recherche d'indice - non guidé
Il s'agit de déterminer l'indice de la plus petite valeur dans un tableau non-vide.
Recherche de valeur - non guidé
La recherche de la valeur maximale dans un tableau. Classique.
Lecture dans un tableau - non guidé
On donne les altitudes des différentes étapes d'une course en montagne. On demande quel est le dénivelé positif total.
Les notes d'Alice - Saison 2⚓︎

Les notes d'Alice - Saison 2
1. Alice veut créer la liste des notes qu’elle a obtenues ce trimestre en NSI.
Ces notes ne sont pas forcément des nombres entiers, et il y a des coefficients qui peuvent être différents pour chaque note.
Ecrire une fonction creation_liste_tuples qui prend en paramètres n le nombre de notes, demande de saisir les notes une par une,
avec le coefficient associé à chaque note, et qui renvoie liste_notes, la liste des tuples (note, coefficient) .
Nous avons étudié les assertions. Dans cette fonction il doit y avoir une assertion qui vérifie que chaque note saisie est un réel
entre 0 et 20 (compris), et une assertion qui vérifie que chaque coefficient saisi est un réel positif.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
def creation_liste_tuples(n):
"""
n est un entier donnant la taille de la liste à saisir
La fonction renvoie la liste des tuples (note, coefficient) .
"""
liste_tuples = []
for i in range(n):
note = float(input("Saisir votre note : "))
coef = float(input("Saisir le coefficient correspondant : "))
assert note >= 0 and note <= 20, "la note est entre 0 et 20."
assert coef >= 0, "le coefficient est positif"
liste_tuples.append((note, coef))
return liste_tuples
2. Ecrire un code qui demande la saisie des notes et coefficients, puis affiche la plus petite note, et la plus haute.
La fonction creation_liste_tuples n'est pas à écrire, vous pouvez l'utiliser, elle est en code caché.
💡 Indication : Vous pourrez utiliser les fonctions min et max.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
3. Créer une fonction moyenne qui prend en paramètre lst_notes une liste de tuples (note, coefficient) et qui
renvoie la moyenne arrondie à deux chiffres après la virgule, des notes de lst_notes.
Aide pour les arrondis
Exécuter ci-dessous :
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
4. Ecrire ci-dessous un seul script structuré qui rassemble toutes les questions :
- Saisie de la liste des tuples
- Affichage de la note minimale et de la note maximale
- Affichage de la moyenne arrondie à deux chiffres après la virgule.
Les fonctions creation_liste_tuples et moyennene sont pas à écrire, vous pouvez les utiliser, elles sont en code caché.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Solution
n = int(input("nombre de notes à saisir : "))
liste_tuples_notes = creation_liste_tuples(n) # de type liste
liste_notes = [elem[0] for elem in liste_tuples_notes]
note_mini = min(liste_notes)
note_maxi = max(liste_notes)
print("note minimale : ", note_mini)
print("note maximale : ", note_maxi)
resultat_moyenne = moyenne(liste_tuples_notes)
print("La moyenne est : ", resultat_moyenne)
Soleil couchant⚓︎
Recherche de maxima relatifs - non guidé
Combien de bâtiments sont éclairés par le soleil couchant. Le sujet est original mais l'algorithme très classique.
Recherche d'indices⚓︎
Auteur : Sébastien HOARAU
Ecrire une fonction qui renvoie la liste croissante des indices d'un certain élément dans un tableau.
Il est recommandé d'utiliser une liste en compréhension.
Écrire une fonction indices qui prend en paramètres un entier element et un tableau entiers d'entiers. Cette fonction renvoie la liste croissante des indices de element dans le tableau entiers.
Cette liste sera donc vide [] si element n'apparait pas dans entiers.
On n'utilisera ni la méthode
index, ni la méthodemax.
Exemples
Compléter ci-dessous
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Parcours par indice ou par élément⚓︎
Parcours par indice ou par élément : remise à zéro
Cet exercice est un exercice "papier" à ne réaliser que par écrit.
1. Que vaut ma_liste si on exécute le code suivant ?
Solution
On a toujours ma_liste = [1, 2, 3]
2. Expliquer le résultat du 1.
Solution
On a le déroulé suivant :
On voit quema_liste n'a pas été modifié.
3. Que vaut ma_liste si on exécute le code suivant ?
Solution
On a après exécution ma_liste = [0, 0, 0]
4. Expliquer le résultat du 3.
Auteurs des exercices: Nicolas Revéret, Jean-Louis Thirot, Sébastien Hoareau et Mireille Coilhac
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)