Aller au contenu

Ep 05

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Écrire en python deux fonctions :

  • lancer de paramĂštre n, un entier positif, qui renvoie un tableau de type list de n entiers obtenus alĂ©atoirement entre 1 et 6 (1 et 6 inclus) ;

  • paire_6 de paramĂštre tab, un tableau de type list de n entiers entre 1 et 6 obtenus alĂ©atoirement, qui renvoie un boolĂ©en Ă©gal Ă  True si le nombre de 6 est supĂ©rieur ou Ă©gal Ă  2, False sinon.

On pourra utiliser la fonction randint(a,b) du module random pour laquelle la documentation officielle est la suivante :

Renvoie un entier aléatoire N tel que a <=N <= b.

Exemples :

🐍 Script Python
    >>> lancer1 = lancer(5)
    [5, 6, 6, 2, 2]
    >>> paire_6(lancer1)
    True
    >>> lancer2 = lancer(5)
    [6, 5, 1, 6, 6]
    >>> paire_6(lancer2)
    True
    >>> lancer3 = lancer(3)
    [2, 2, 6]
    >>> paire_6(lancer3)
    False
    >>> lancer4 = lancer(0)
    []
    >>> paire_6(lancer4)
    False
RĂ©ponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
from random import randintbksl-nlbksl-nldef lancer(n):bksl-nl return [randint(1,6) for py-und in range(n)]bksl-nlbksl-nldef pairepy-und6(tab):bksl-nl nb = 0bksl-nl for elt in tab:bksl-nl if elt == 6:bksl-nl nb += 1bksl-nl if nb >=2 :bksl-nl return Truebksl-nl else:bksl-nl return Falsebksl-nlbksl-nl



```

EXERCICE 2⚓

On considĂšre une image en 256 niveaux de gris que l’on reprĂ©sente par une grille de nombres, c’est-Ă -dire une liste composĂ©e de sous-listes toutes de longueurs identiques.

La largeur de l’image est donc la longueur d’une sous-liste et la hauteur de l’image est le nombre de sous-listes.

Chaque sous-liste reprĂ©sente une ligne de l’image et chaque Ă©lĂ©ment des sous-listes est un entier compris entre 0 et 255, reprĂ©sentant l’intensitĂ© lumineuse du pixel.

Le nĂ©gatif d’une image est l’image constituĂ©e des pixels x_n tels que x_n + x_i = 255 oĂč x_i est le pixel correspondant de l’image initiale.

Compléter le programme suivant :

RĂ©ponse

Complétez le code ci-dessous

###
def nbLig(image):bksl-nl '''renvoie le nombre de lignes de l'image'''bksl-nl return ...bksl-nlbksl-nldef nbCol(image):bksl-nl '''renvoie la largeur de l'image'''bksl-nl return ...bksl-nlbksl-nldef negatif(image):bksl-nl '''renvoie le negatif de l'image sous la formebksl-nl d'une liste de listes'''bksl-nlbksl-nl # on cree une image de 0 aux memes dimensions que le parametre imagebksl-nl L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))]bksl-nlbksl-nl for i in range(nbLig(image)):bksl-nl for j in range(...):bksl-nl L[i][j] = ...bksl-nl return Lbksl-nlbksl-nldef binaire(image, seuil):bksl-nl '''renvoie une image binarisee de l'image sous la formebksl-nl d'une liste de listes contenant des 0 si la valeurbksl-nl du pixel est strictement inferieure au seuilbksl-nl et 1 sinon'''bksl-nlbksl-nl # on cree une image de 0 aux memes dimensions que le parametre imagebksl-nl L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))]bksl-nlbksl-nl for i in range(nbLig(image)):bksl-nl for j in range(...):bksl-nl if image[i][j] < ... :bksl-nl L[i][j] = ...bksl-nl else:bksl-nl L[i][j] = ...bksl-nl return Lbksl-nlbksl-nl



Solution

###
bksl-nldef nbLig(image):bksl-nl '''renvoie le nombre de lignes de l'image'''bksl-nl return len(image)bksl-nlbksl-nldef nbCol(image):bksl-nl '''renvoie la largeur de l'image'''bksl-nl return len(image[0])bksl-nlbksl-nldef negatif(image):bksl-nl '''renvoie le negatif de l'image sous la formebksl-nl d'une liste de listes'''bksl-nlbksl-nl # on cree une image de 0 aux memes dimensions que le parametre imagebksl-nl L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))]bksl-nlbksl-nl for i in range(nbLig(image)):bksl-nl for j in range(nbCol(image)):bksl-nl L[i][j] = 255 - image[i][j]bksl-nl return Lbksl-nlbksl-nldef binaire(image, seuil):bksl-nl '''renvoie une image binarisee de l'image sous la formebksl-nl d'une liste de listes contenant des 0 si la valeurbksl-nl du pixel est strictement inferieure au seuilbksl-nl et 1 sinon'''bksl-nlbksl-nl # on cree une image de 0 aux memes dimensions que le parametre imagebksl-nl L = [[0 for k in range(nbCol(image))] for i in range(nbLig(image))]bksl-nlbksl-nl for i in range(nbLig(image)):bksl-nl for j in range(nbCol(image)):bksl-nl if image[i][j] < seuil :bksl-nl L[i][j] = 0bksl-nl else:bksl-nl L[i][j] = 1bksl-nl return Lbksl-nl