Zoom matrice image
Exercice conseillé en version À compléter
- Les exercices conseillés en version "Vide" sont conçus pour ressembler à un "exercice 1" des épreuves pratiques au baccalauréat de Terminale NSI.
- Les exercices conseillés en version "À compléter" sont conçus pour ressembler à un "exercice 2" des épreuves pratiques au baccalauréat de Terminale NSI.
La difficulté de l'exercice a été choisie en partant du principe qu'il est fait dans la version indiquée.
Dessin de coeur
On travaille sur des dessins en noir et blanc obtenu à partir de pixels noirs et blancs : La figure « cœur » ci-dessus va servir d'exemple. On la représente par une grille de nombres, c'est-à-dire par une liste composée de sous-listes de même longueur. Chaque sous-liste représentera donc une ligne du dessin.
La fonction zoom_liste
prend en arguments une liste liste_depart
et un entier k
. Elle renvoie une liste où chaque élément de liste_depart
est dupliqué k
fois.
Exemple
>>> ligne = [0, 1, 0]
>>> zoom_liste(ligne, 2)
[0, 0, 1, 1, 0, 0]
La fonction zoom_dessin
prend en argument la grille dessin
et renvoie une grille où toutes les lignes de dessin
sont zoomées k
fois et répétées k
fois.
Exemple
>>> croix = [[0, 1, 0],
... [1, 1, 1],
... [0, 1, 0]
... ]
>>> zoom_dessin(croix, 2)
[[0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0]]
fonction affiche
La fonction affiche
permet d'afficher le dessin. Les pixels noirs (1 dans la grille) seront représentés par le caractère "*" et les blancs (0 dans la grille) par deux espaces.
>>> coeur = [
... [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
... [0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0],
... [0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0],
... [0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0],
... [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
... [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
... [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
... [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0],
... [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0],
... [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
... [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
... [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
... ]
>>> affiche(coeur)
* * * *
* * * *
* * *
* *
* *
* *
* *
* *
* *
*
>>> affiche(zoom_dessin(coeur,3))
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * *
* * *
* * *
fonction affiche_pixel
La fonction affiche_pixel
permet d'afficher le dessin avec la représentation des pixels noirs et blancs.
Compléter le code dans l'IDE pour obtenir les résultats ci-dessus :
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Dessin en pixel
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)