bac 25
.
Exercice N°1 :
Enoncé | Exemple : |
---|---|
Écrire une fonction recherche qui prend en
paramètre un tableau de nombres entiers |
>>> 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)] |
REPONSE |
---|
def recherche(T): resultat=[] for i in range(int(len(T)-1)): if T[i+1]==T[i]+1: resultat.append((T[i],T[i+1])) return resultat |
Il faut utiliser idle et copier la commande ci-dessous et appuyer sur entrée |
#RESULTAT >>> 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)] >> |
.
Exercice
N°2 :
Chercher : | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Soit une image binaire représentée
dans un tableau à 2 dimensions. Les éléments
On souhaite, à partir d’un pixel égal
à 1 dans une image M, donner la valeur val à tous
Par exemple, { propager(M,2,1,3)erreur } RECTIFICATION propager(M, 1 , 2,3) donne :
Compléter le code récursif de la fonction propager donné ci-dessous :
def propager(M, i, j, val): if M[i][j]== ...: return M[i][j]=val # l'élément en haut fait partie de la composante if ((i-1) >= 0 and M[i-1][j] == ...): propager(M, i-1, j, val) # l'élément en bas fait partie de la composante if ((...) < len(M) and M[i+1][j] == 1): propager(M, ..., j, val) # l'élément à gauche fait partie de la composante if ((...) >= 0 and M[i][j-1] == 1): propager(M, i, ..., val) # l'élément à droite fait partie de la composante if ((...) < len(M) and M[i][j+1] == 1): propager(M, i, ..., val) Exemple : >>> M = [[0,0,1,0],[0,1,0,1],[1,1,1,0],[0,1,1,0]] >>> propager(M,2,1,3) >>> M [[0, 0, 1, 0], [0, 3, 0, 1], [3, 3, 3, 0], [0, 3, 3, 0]] |
.
REPONSE
.
RESULTAT Demandé | EXEMPLE de programme |
---|---|
M = [[0,0,1,0,], [0,1,0,1], [1,1,1,0], [0,1,1,0], [[0,0,1,0],[0,1,0,1],[1,1,1,0],[0,1,1,0]]def propager(M, i, j, val): if M[i][j] == 0: propager(M, j, i, val) return M M[i][j]=val # l'élément en haut fait partie de la composante if ((i-1) >= 0 and M[i-1][j] == 1): propager(M, i-1, j, val) # l'élément en bas fait partie de la composante if ((i+1) < len(M) and M[i+1][j] == 1): propager(M,i+1, j, val) # l'élément à gauche fait partie de la composante if ((j-1) >= 0 and M[i][j-1] == 1): propager(M, i, j-1, val) # l'élément à droite fait partie de la composante if ((j+1) < len(M) and M[i][j+1] == 1): propager(M, i, j+1, val) |
M = [[0,0,1,0,0], [0,1,1,0,1], [1,1,1,1,0], [0,1,1,1,0], [0,1,1,1,0]] def propager(M, i, j, val): if M[i][j] == 0: propager(M, j, i, val) return M[i][j]=val # l'élément en haut fait partie de la composante if ((i-1) >= 0 and M[i-1][j] == 1): propager(M, i-1, j, val) # l'élément en bas fait partie de la composante if ((i+1) < len(M) and M[i+1][j] == 1): propager(M,i+1, j, val) # l'élément à gauche fait partie de la composante if ((j-1) >= 0 and M[i][j-1] == 1): propager(M, i, j-1, val) # l'élément à droite fait partie de la composante if ((j+1) < len(M) and M[i][j+1] == 1): propager(M, i, j+1, val) if M[i][j]==val: return M |
Il faut utiliser idle et copier la commande ci-dessous et appuyer sur entrée |
Il faut utiliser idle et copier la commande ci-dessous et appuyer sur entrée |
>>> propager(M,1,2,3) [[0, 0, 1, 0], [0, 3, 0, 1], [3, 3, 3, 0], [0, 3, 3, 0]]
|
>>> propager(M,2,1,4) [[0, 0, 4, 0, 0], [0, 4, 4, 0, 1], [4, 4, 4, 4, 0], [0, 4, 4, 4, 0], [0, 4, 4, 4, 0]] |