Exercice 1 (50% des points)
Un professeur de NSI décide de gérer les résultats de sa classe sous la forme d’un dictionnaire :
- les clefs sont les noms des élèves ;
- les valeurs sont des dictionnaires dont les clefs sont les types d’épreuves et les valeurs sont les notes obtenues associées à leurs coefficients. Avec :
|
|
L’élève dont le nom est Durand a ainsi obtenu au DS2 la note de 8 avec un coefficient 4. Le professeur crée une fonction moyenne
qui prend en paramètre le nom d’un de ces élèves et lui renvoie sa moyenne arrondie au dixième.
Compléter le code du professeur ci-dessous :
|
|
- Remarque
- J’ai (DL) rendu cet exercice un peu plus difficile à résoudre que la version initiale proposée.
Exercice 2 (50% des points)
Soit une image binaire représentée dans un tableau à 2 dimensions. Les éléments M[i][j]
, appelés pixels, sont égaux soit à 0 soit à 1.
Une composante d’une image est un sous-ensemble de l’image constitué uniquement de 1 et de 0 qui sont côte à côte, soit horizontalement soit verticalement. Par exemple, les composantes de : $$ M = \left( \begin{matrix} 0 & 0 & 1 & 0 \cr 0 & 1 & 0 & 1 \cr 1 & 1 & 1 & 0 \cr 0 & 1 & 1 & 0 \cr \end{matrix}\right) $$ sont $$ M = \left( \begin{matrix} \color{blue}{0} & \color{blue}{0} & \color{hotpink}{1} & \color{orange}{0} \cr \color{blue}{0} & \color{orangered}{1} & \color{purple}{0} & \color{darkgray}{1} \cr \color{orangered}{1} & \color{orangered}{1} & \color{orangered}{1} & \color{green}{0} \cr \color{peru}{0} & \color{orangered}{1} & \color{orangered}{1} & \color{green}{0} \cr \end{matrix}\right) $$
On souhaite, à partir d’un pixel égal à 1 dans une image M
, donner la valeur val
à tous les pixels de la composante à laquelle appartient ce pixel.
La fonction propager
prend pour paramètre une image M
, deux entiers i
et j
et une valeur entière val
. Elle met à la valeur val
tous les pixels de la composante du pixel M[i][j]
s’il vaut 1 et ne fait rien s’il vaut 0.
Par exemple, propager(M,2,1,3)
donne :
$$
M = \left( \begin{matrix}
\color{blue}{0} & \color{blue}{0} & \color{hotpink}{1} & \color{orange}{0} \cr
\color{blue}{0} & \color{orangered}{3} & \color{purple}{0} & \color{darkgray}{1} \cr
\color{orangered}{3} & \color{orangered}{3} & \color{orangered}{3} & \color{green}{0} \cr
\color{peru}{0} & \color{orangered}{3} & \color{orangered}{3} & \color{green}{0} \cr
\end{matrix}\right)
$$
Compléter le code récursif de la fonction propager
donné ci-dessous et écrire un programme qui teste cette fonction.
|
|