Aller au contenu

TP - Parcourir les éléments d'un tableau

Dans le dossier [NSI], créez le dossier [B01_Tableaux].

Téléchargez le fichier « à trous » TPB01.11.py (clic droit -> [Enregistrer sous]) et enregistrez-le dans ce dossier.

Consignes communes à chaque partie

Le programme principal contient un appel au module doctest :

##----- Programme principal et tests -----##
if __name__ == '__main__':
    import doctest
    doctest.testmod()
Dans le docstring de chaque fonction, il faudra placer un plan de test complet (au moins le tableau vide, un tableau ne contenant qu'un élément et un tableau ayant plusieurs éléments).
Pensez à demander au professeur de valider ce plan de test...

Partie 1 : Somme des éléments d'indice pair

Complétez le code de la fonction somme_indices_pairs() qui prend en paramètre un tableau d'entiers et qui renvoie la somme des éléments d'indices pairs de ce tableau.

1
2
3
4
5
6
7
8
def somme_indices_pairs(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - la somme des éléments d'indices pairs de tab
    # plan de test à ajouter :
    >>> pass
    """
    pass
Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel somme_indices_pairs([1, 2, 4, 3]).

Partie 2 : Somme des éléments pairs

Complétez le code de la fonction somme_elements_pairs() qui prend en paramètre un tableau d'entiers et qui renvoie la somme des éléments pairs de ce tableau.

1
2
3
4
5
6
7
8
def somme_elements_pairs(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - la somme des éléments pairs de tab
    # plan de test à ajouter :
    >>> pass
    """
    pass

Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel somme_elements_pairs([1, 2, 4, 3]).

Partie 3 : Produit des éléments

Complétez le code de la fonction produit() qui prend en paramètre un tableau d'entiers et qui renvoie le produit des éléments de ce tableau. Le produit sur un tableau vide doit être 0.

1
2
3
4
5
6
7
8
def produit(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - le produit des éléments du tableau
    # plan de test à ajouter :
    >>> pass
    """
    pass

Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel produit([1, 2, 3, 1, 2, 3]).

Une autre piste

Séparez le cas du tableau vide.

Partie 4 : Occurrences d'un élément

Complétez le code de la fonction occurrences() qui prend en paramètres un tableau et une valeur et qui renvoie le nombre de fois où cette valeur est présente dans le tableau.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def occurrences(tab, valeur):
    """
    tab – list, tableau d'entiers
    valeur – variable de même type que les éléments de tab
    Sortie: int – nombre d'occurrences de valeur dans tab
            (nombre de fois où valeur est présent dans tab)
    # plan de test à ajouter :
    >>> pass
    """
    pass

Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel occurrences([1, 2, 3, 1, 2, 3], 3).

Une autre piste

Utilisez un compteur.

Partie 5 : Premier indice d'un élément

Complétez le code de la fonction premier_indice_valeur() qui prend en paramètres un tableau et une valeur et qui renvoie le premier indice auquel on peut trouver cette valeur le tableau. Dans le cas où cette valeur n'est pas présente, la fonction renvoie None.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def premier_indice_valeur(tab, valeur):
    """
    tab – list, tableau d'entiers
    valeur – int
    Sortie: int – premier indice de valeur dans tab si
            valeur est un élément de tab. Renvoie None sinon
    # plan de test à ajouter :
    >>> pass
    """
    pass

Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel premier_indice_valeur([1, 2, 3, 1, 2, 3], 3).

Une autre piste

Vous avez plusieurs possibilités :

  • un compteur et une boucle while ;
  • un compteur et une boucle for interrompue dès que valeur est trouvée ;
  • une boucle for sur les indices, interrompue dès que valeur est trouvée ;
  • etc...

Partie 6 : Dernier indice d'un élément

Complétez le code de la fonction dernier_indice_valeur() qui prend en paramètres un tableau et une valeur et qui renvoie le dernier indice auquel on peut trouver cette valeur le tableau. Dans le cas où cette valeur n'est pas présente, la fonction renvoie None.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def dernier_indice_valeur(tab, valeur):
    """
    tab – list, tableau d'entiers
    valeur – int
    Sortie: int – dernier indice de valeur dans tab si
            valeur est un élément de tab. Renvoie None sinon
    # plan de test à ajouter :
    >>> pass
    """
    pass

Une piste

Avant de commencer à programmer, déterminez la valeur que devra renvoyer l'appel dernier_indice_valeur([1, 2, 3, 1, 2, 3], 3).

Une autre piste

Cette fois-ci, il faut obligatoirement parcourir tous les éléments du tableau.
Mémorisez le nouvel indice auquel vous trouvez valeur en remplacement de la mémorisation précédente.