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
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
recherche(caractere:str, mot:str),
caractereest un caractère etmotune chaîne. Renvoie le nombre d'occurrence decaracteredansmot.maxi(tableau),
Renvoie unetuplecontenant 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
listmaistupleserait préférable.
recherche(item, tableau),
renvoie unlistcontenant les rangs des occurrences deitemdanstableaurecherche_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 detableaurecherche_min(tableau),
renvoie le rang de la dernière occurrence du minimum detableaurecherche_sup(seuil, tableau),
renvoie le nombre d'items detableausupérieurs àseuilrecherche_sup(seuil, tableau),
renvoie lalistdes rangs des items detableausupérieurs àseuilrecherche_sup(seuil, tableau),
renvoie le rang de la première occurrence d'un item detableausupérieur àseuilrecherche_sup(seuil, tableau),
renvoie lalistdes items detableausupé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 deAse trouve au rang3, alors il faut renvoyerB[3].
