Première NSI
Répondez aux questions dans les cellules prévues.
Complétez les cellules de code en remplaçant pass.
Écrivez les recherches et les calculs avec des boucles for. Vous pouvez parcourir les éléments directement ou utiliser leurs indices.
Les fonctions sum, min, max, sorted et les méthodes index, count ne doivent pas être utilisées.
Les fonctions écrites doivent conserver le contenu des tableaux reçus en paramètres.
Exécutez les tests après avoir écrit chaque réponse. Les tests utilisent uniquement des assert : si aucune erreur ne s'affiche, ils sont réussis.
On considère le programme suivant :
valeurs = [6, 2, 9, 2, 5]
total = 0
for i in range(len(valeurs)):
if valeurs[i] >= 5:
total = total + valeurs[i]
Sans exécuter le programme, complétez le tableau ci-dessous. La dernière colonne donne la valeur de total à la fin de chaque tour de boucle.
| Indice i | Élément valeurs[i] | total à la fin du tour |
| --- | --- | --- |
| 0 | ... | ... |
| 1 | ... | ... |
| 2 | ... | ... |
| 3 | ... | ... |
| 4 | ... | ... |
Réécrivez ce programme en parcourant directement les éléments avec for valeur in valeurs. Le résultat doit être identique.
valeurs = [6, 2, 9, 2, 5]
total = 0
pass
Test
assert total == 20
Les fonctions de cet exercice doivent fonctionner avec des tableaux de nombres ou de chaînes de caractères. Le tableau peut être vide.
Écrivez la fonction rechercher(tableau, valeur) qui renvoie l'indice de la première occurrence de valeur dans tableau.
Si la valeur est absente, la fonction renvoie -1.
Par exemple, rechercher([6, 2, 9, 2, 5], 2) doit renvoyer 1.
def rechercher(tableau, valeur):
pass
Tests
assert rechercher([6, 2, 9, 2, 5], 2) == 1
assert rechercher([6, 2, 9, 2, 5], 6) == 0
assert rechercher([6, 2, 9, 2, 5], 5) == 4
assert rechercher([6, 2, 9, 2, 5], 8) == -1
assert rechercher(["Lina", "Noé", "Lina"], "Lina") == 0
assert rechercher(["Lina", "Noé", "Lina"], "Adam") == -1
assert rechercher([], 2) == -1
assert rechercher([4], 4) == 0
Écrivez la fonction compter_occurrences(tableau, valeur) qui renvoie le nombre de fois où valeur apparaît dans tableau.
Par exemple, compter_occurrences([6, 2, 9, 2, 5], 2) doit renvoyer 2.
def compter_occurrences(tableau, valeur):
pass
Tests
assert compter_occurrences([6, 2, 9, 2, 5], 2) == 2
assert compter_occurrences([6, 2, 9, 2, 5], 8) == 0
assert compter_occurrences([4, 4, 4], 4) == 3
assert compter_occurrences(["Lina", "Noé", "Lina"], "Lina") == 2
assert compter_occurrences([], 2) == 0
assert compter_occurrences([4], 4) == 1
Dans cet exercice, les tableaux contiennent des nombres et sont non vides.
Écrivez la fonction extrema(tableau) qui renvoie le couple (minimum, maximum).
Les deux valeurs doivent être recherchées pendant un seul parcours du tableau.
Par exemple, extrema([6, 2, 9, 2, 5]) doit renvoyer (2, 9).
def extrema(tableau):
pass
Tests
assert extrema([6, 2, 9, 2, 5]) == (2, 9)
assert extrema([-9, -2, -7]) == (-9, -2)
assert extrema([5]) == (5, 5)
assert extrema([4, 4, 4]) == (4, 4)
assert extrema([3.5, -1.5, 2.5]) == (-1.5, 3.5)
Écrivez la fonction indice_maximum(tableau) qui renvoie l'indice du plus grand élément.
Si le maximum apparaît plusieurs fois, la fonction doit renvoyer l'indice de sa première occurrence.
Par exemple, indice_maximum([4, 9, 2, 9]) doit renvoyer 1.
def indice_maximum(tableau):
pass
Tests
assert indice_maximum([4, 9, 2, 9]) == 1
assert indice_maximum([7, 4, 7]) == 0
assert indice_maximum([-9, -2, -2, -7]) == 1
assert indice_maximum([5]) == 0
assert indice_maximum([2, 9, 4]) == 1
assert indice_maximum([4, 4, 4]) == 0
On a relevé les températures suivantes, en degrés Celsius, pendant sept jours :
temperatures = [12, 14, 10, 16, 13, 11, 15]
Écrivez la fonction moyenne(tableau) qui renvoie la moyenne des nombres du tableau.
Le tableau est non vide. La fonction doit fonctionner pour n'importe quel nombre d'éléments.
def moyenne(tableau):
pass
Tests
assert moyenne(temperatures) == 13.0
assert moyenne([2, 4, 6]) == 4.0
assert moyenne([7]) == 7.0
assert moyenne([-6, -3, -9]) == -6.0
assert moyenne([1, 2]) == 1.5
Écrivez la fonction nombre_au_dessus_moyenne(tableau) qui renvoie le nombre d'éléments strictement supérieurs à la moyenne du tableau.
Le tableau est non vide.
Appelez la fonction moyenne une seule fois, avant la boucle de comptage, et conservez son résultat dans une variable.
Pour la semaine donnée, la fonction doit renvoyer 3.
def nombre_au_dessus_moyenne(tableau):
pass
Tests
assert nombre_au_dessus_moyenne(temperatures) == 3
assert nombre_au_dessus_moyenne([5, 5, 5]) == 0
assert nombre_au_dessus_moyenne([7]) == 0
assert nombre_au_dessus_moyenne([-6, -3, -9]) == 1
assert nombre_au_dessus_moyenne([1, 3]) == 1
Calculez la moyenne de temperatures et stockez-la dans moyenne_semaine.
Construisez ensuite par compréhension le tableau ecarts. Chaque élément doit être la température du jour moins la moyenne de la semaine, dans le même ordre que les températures.
Un écart négatif correspond à une température inférieure à la moyenne.
pass
Tests
assert moyenne_semaine == 13.0
assert ecarts == [-1, 1, -3, 3, 0, -2, 2]
assert len(ecarts) == len(temperatures)
assert temperatures == [12, 14, 10, 16, 13, 11, 15]