Table des matières

Recherche dans un tableau

Exemple de formulation

Programmer la fonction recherche, prenant en paramètre un tableau non vide tab (type list) d'entiers et un entier n, et qui renvoie l'indice de la dernière occurrence de l'élément cherché. Si l'élément n'est pas présent, la fonction renvoie la longueur du tableau.

Exemples :

>>> recherche([5, 3],1)
2
>>> recherche([2,4],2)
0
>>> recherche([2,3,5,2,4],2)
3

Variantes

  • Les sujets omettent parfois de dire quoi faire si le tableau est vide ou si l'élément cherché n'est pas présent.
  • Le plus souvent, quand une paire est demandée en sortie, le sujet demande de renvoyer cette paire sous forme d'un list mais tuple serait préférable.

Comme vous pouvez le voir, on peut varier facilement, le principe reste toujours le même.

Cas particuliers

Consécutifs

Écrire une fonction recherche qui prend en paramètre un tableau de nombres entiers tab, et qui renvoie la liste (éventuellement vide) des couples d'entiers consécutifs successifs qu'il peut y avoir dans tab.

Exemples :

>>> recherche([1, 4, 3, 5])
[]
>>> recherche([1, 4, 5, 3])
[(4, 5)]
>>> recherche([7, 1, 2, 5, 3, 4])
[(1, 2), (3, 4)]
>>> recherche([5, 1, 2, 3, 8, -5, -4, 7])
[(1, 2), (2, 3), (-5, -4)]

Cas plus élaboré

On peut imaginer des variantes légèrement plus développés.

Exemple un peu plus élaboré Soit un fichier data.csv dont le contenu a la forme suivante :

nom;prénom;age
Dupont;Jean;63
Konte;Fatoumata;37
Nguyen;Marc;32
Smith;Alicia;19
Amadi;Ahmed;29
...
import csv
with open("data.csv", 'r') as file:
    reader = csv.DictReader(file, delimiter=',')
    tableau = [dict(row) for row in reader]

# on travaille ensuite avec tableau

Il faut écrire une fonction find_age_inf(tableau, seuil) qui renvoie les rangs des items de tableau dont l'age est inférieur à seuil.

Recherche dans deux tableaux parallèles

On se donne deux tableaux A et B de même longueur de sorte que l'item A[i] va de paire avec B[i]. Par exemple A contient des années, B contient des températures moyennes. À l'indice 2 on trouve par exemple A[2] = 2018 et B[2] = 19 ce qui signifie que la température moyenne en 2018 est de 19.

On demande d'implémenter une fonction recherche_min(A,B) qui renvoie la valeur de B correspondant à la valeur de A minimum.

Si le minimum de A se trouve au rang 3, alors il faut renvoyer B[3].