Devoirs Première

Liste des fichiers Notebook

Devoir maison — Parcours séquentiel

Première NSI

Consignes

Exercice 1 — Comprendre un parcours

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]

1. Suivre l'exécution

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 | ... | ... |

2. Changer la façon de parcourir le tableau

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

Exercice 2 — Rechercher et compter une valeur

Les fonctions de cet exercice doivent fonctionner avec des tableaux de nombres ou de chaînes de caractères. Le tableau peut être vide.

1. Première occurrence

É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

2. Nombre d'occurrences

É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

Exercice 3 — Rechercher des extrema

Dans cet exercice, les tableaux contiennent des nombres et sont non vides.

1. Minimum et maximum

É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)

2. Indice du premier maximum

É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

Exercice 4 — Une semaine de températures

On a relevé les températures suivantes, en degrés Celsius, pendant sept jours :

temperatures = [12, 14, 10, 16, 13, 11, 15]

1. Calculer une moyenne

É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

2. Compter les valeurs au-dessus de la moyenne

É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

3. Construire un tableau en compréhension

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]