Aller au contenu

Corrigé sujet 05 - Année : 2023⚓︎

Sujet 05 - 2022

Exercice 1⚓︎

Bug

La fonction lancer telle que définie dans l'énoncé renvoie un tableau mais ne produit a priori, pas d'affichage. Or, pendant les tests, on voit :

🐍 Console Python
>>> lancer1 = lancer(5)
[5, 6, 6, 2, 2]
On devrait plutôt avoir :
🐍 Console Python
>>> lancer1 = lancer(5)
>>> lancer1
[5, 6, 6, 2, 2]

🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from random import randint 

def lancer(n):
    resultats = []
    for i in range(n):
        de = randint(1,6)
        resultats.append(de)
    return resultats

def paire_6(lancers):
    nb_6 = 0
    for de in lancers:
        if de == 6:
            nb_6 += 1
            if nb_6 == 2:
                return True
    return False

Exercice 2⚓︎

🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def nbLig(image):
    '''renvoie le nombre de lignes de l'image'''
    return len(image) #(1)

def nbCol(image):
    '''renvoie la largeur de l'image'''
    return len(image[0]) #(2)

def negatif(image):
    '''renvoie le negatif de l'image sous la forme 
       d'une liste de listes'''
    L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))] 
# on cree une image de 0 aux memes dimensions que le parametre image 
    for i in range(nbLig(image)):
        for j in range(nbCol(image)): #(3)
            L[i][j] = 255-image[i][j] #(4)
    return L

def binaire(image, seuil):
    '''renvoie une image binarisee de l'image sous la forme 
       d'une liste de listes contenant des 0 si la valeur 
       du pixel est strictement inferieure au seuil 
       et 1 sinon'''
    L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))] # on cree une image de 0 aux memes dimensions que le parametre image 
    for i in range(len(image)):
        for j in range(nbCol(image)): 
            if image[i][j] < seuil : #(5)
                L[i][j] = 0
            else:
                L[i][j] = 1
    return L
  1. Comme indiqué dans l'énoncé, une image est une listes de listes (toutes de même longueur).la hauteur de l'image est le nombres de listes
  2. La largeur de l'image est la longueur d'une sous-liste (elles ont toute la même longueur).
  3. On utilise la fonction nbCol définie plus haut
  4. Se référer à l'énoncé : la somme du pixel et de son négatif doit faire 255.
  5. On applique l'algorithme donné en commentaire : le pixel est mis à 0 s'il est inférieur au seuil et à 1 sinon.