Examen_2024
Examen_2024
Examen_2024
- Si un étudiant vient de repérer ce qui peut lui sembler être une erreur d’énoncé, il le signalera sur sa copie et
poursuivra sa composition en expliquant les raisons des initiatives qu’il a été amené à prendre.
Questions de cours :
1. Comment python résoudre le problème de conflits d’héritages multiplie
………………………………………………………………………………………………………………..
2. Quelle est la différence entre fetchall, fetchone et fetchmany
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
3. Que va afficher le code suivant
import re
phrase = "Les codes de pays sont [USA], [A], [FRA], [GBR], [CAN] et [AG]."
pattern = r'\[(\w{2,})\]'
correspondances = re.findall(pattern, phrase)
print(correspondances)
…………………………………………………………………………………………………………………
4. C’est quoi l’effet de bord :
…………………………………………………………………………………………………………………
5. La signification de l’immuabilité :
…………………………………………………………………………………………………………………
6. Citez quatre principes de la programmation fonctionnelle.
…………………………………………………………………………………………………………………
Exercice 1 :
Vous avez pour mission de développer une application qui gère la compression des images. Pour cela, vous
devez :
1. Créer une classe Pixel qui gère les couleurs de base de chaque pixel à savoir la couleur rouge (valR), la
couleur vert (valG) et la couleur bleu (valB).
⃝ Pour être conforme aux codes RGB des couleurs, on souhaitera que le constructeur vérifier les valeurs
prises par les variables valR, valG, valB de tel sort qu’elles soient comprises entre 0 et 255. Sinon,
une exception est générée.
⃝ Définie les getters et les setters de la classe pixel
Pr. RAGRAGUI Anouar
1
⃝ Surcharger l’operateur de comparaison
⃝ Surcharger la méthode qui permet d’afficher un pixel
2. Implémentez la classe Image avec les caractéristiques suivantes :
• Attributs :
⃝ width : largeur de l'image
⃝ height : hauteur de l'image
⃝ pixels : liste de pixels de la classe Pixel
• Méthodes :
⃝ Constructeur : initialise l'image avec une largeur, une hauteur, et une liste de pixels. Le constructeur
doit vérifier que le nombre de pixels dans la liste correspond à la taille de l'image (width * height).
Sinon, une exception est générée.
⃝ get_width(self) : retourne la largeur de l'image.
⃝ get_height(self) : retourne la hauteur de l'image.
⃝ Surcharger l’opérateur d'addition (+) afin de permettre la comparaison des tailles (largeur et
hauteur) de deux images. Cette fonction doit retourner True si elles ont la même taille, False sinon.
⃝ Surcharger l’opérateur de comparaison (==) pour vérifier si deux images sont égales. Deux
images sont égales si elles ont la même largeur, hauteur et liste de pixels.
⃝ Surcharger la méthode qui permet d’afficher le contenu de l'image en parcourant tous les pixels
et en affichant leurs valeurs RGB (rouge, vert, bleu).
⃝ Une méthode de classe appelée compteur_images() qui compte le nombre total de images créées
3. Exemple d'utilisation :
Code Exécution
# Création de quelques pixels Contenu de l'image 1:
p1 = Pixel(255, 0, 0) Image 2x2:
p2 = Pixel(0, 255, 0) Pixel(R: 255, G: 0, B: 0)
p3 = Pixel(0, 0, 255) Pixel(R: 0, G: 255, B: 0)
p4 = Pixel(255, 255, 0) Pixel(R: 0, G: 0, B: 255)
# Création d'une image avec ces pixels Pixel(R: 255, G: 255, B: 0)
pixels = [p1, p2, p3, p4]
image1 = Image(2, 2, pixels)
Contenu de l'image 2:
print("Contenu de l'image 1:")
Image 2x2:
print(image1)
Pixel(R: 255, G: 0, B: 0)
# Création d'une autre image identique
Pixel(R: 0, G: 255, B: 0)
image2 = Image(2, 2, pixels)
Pixel(R: 0, G: 0, B: 255)
print("\nContenu de l'image 2:")
Pixel(R: 255, G: 255, B: 0)
print(image2)
# Comparaison des images
Les images 1 et 2 : True
print("\nLes images 1 et 2 :", image1 == image2)
# Comparaison des tailles des images
Les images 1 et 2 : True
1. Dans la fenêtre de connexion, l'utilisateur sera invité à saisir son nom d'utilisateur et son mot de passe
pour accéder à la fenêtre du formulaire. Pour cela :
2. La fenêtre du formulaire affichera des champs pour saisir différentes informations telles que le nom, le
prénom, l'adresse e-mail, l'âge, et le genre. Une fois les informations saisies, l'utilisateur pourra les
enregistrer en appuyant le buton Enregistrer ou les initialiser en appuyant sur le bouton Initialiser.
⃝ Enregistrer" pour enregistrer les informations saisies dans une base de données. Affichez un
message de confirmation une fois que les données ont été correctement enregistrées dans la
base de données et les champs doivent être vider. Si les champs sont vide un message
d’avertissement doit être afficher
Indication :
• Les noms des classes, des attributs et des méthodes doivent commencer par votre nom pour les deux
exercices
• Pour l’exercice 1, créer une base donnée et les tables en respectant les informations suivantes :
# Connexion à la base de données
conn = {
'host': "localhost",
'user': "TDIA",
'password': "123456",
'database': "UserDatabase",
}
• Créer la table utilisateur_pw en utilisant la requête suivante :
CREATE TABLE utilisateurs_pw (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
mot_de_passe VARCHAR(255) NOT NULL
);
• Créer la table utilisateurs :
CREATE TABLE utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
age INT NOT NULL,
genre VARCHAR(10) NOT NULL
);