Outils pour utilisateurs

Outils du site


nsi:tps:recherche_dans_tableau

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214

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

  • recherche(caractere:str, mot:str),
    caractere est un caractère et mot une chaîne. Renvoie le nombre d'occurrence de caractere dans mot.
  • maxi(tableau),
    Renvoie une tuple contenant le rang de la première occurrence du maximum 'élément maximum et la valeur du maximum
  • 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.
  • recherche(item, tableau),
    renvoie un list contenant les rangs des occurrences de item dans tableau
  • recherche_min_max(tableau),
    renvoie un dictionnaire de forme {"min":valeur_min, "max":valeur_max}
  • recherche_min(tableau),
    renvoie le rang de la première occurrence du minimum de tableau
  • recherche_min(tableau),
    renvoie le rang de la dernière occurrence du minimum de tableau
  • recherche_sup(seuil, tableau),
    renvoie le nombre d'items de tableau supérieurs à seuil
  • recherche_sup(seuil, tableau),
    renvoie la list des rangs des items de tableau supérieurs à seuil
  • recherche_sup(seuil, tableau),
    renvoie le rang de la première occurrence d'un item de tableau supérieur à seuil
  • recherche_sup(seuil, tableau),
    renvoie la list des items de tableau supérieurs à seuil.
  • recherche dichotomique sur tableau trié

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].
nsi/tps/recherche_dans_tableau.txt · Dernière modification : de goupillwiki