Programme officiel

Contenus Capacités attendues Commentaires
Paradigme de programmation Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet.
Choisir le paradigme de programmation selon le champ d’application d’un programme. Avec un même langage de programmation, on peut utiliser des paradigmes différents. Dans un même programme, on peut utiliser des paradigmes différents.

Consigne

L’objectif de l’exercice est d’implémenter un mini réseau social.
  1. Télécharger l’annexe et extraire le dossier reseau-social-eleve. Il est composé de trois fichiers.
    Le fichier test.py est le programme principal. Il présente un scénario de création du réseau social en utilisant les classes qui seront construites dans les autres fichiers.
À retenir

À la fin du développement, l’exécution du fichier test ne doit lever aucune erreur d’assertion.

  1. Dans le fichier utilisateur.py, compléter la classe Utilisateur avec:
    son constructeur qui acceptera trois paramètres:
  • une chaîne de caractère: le pseudo de l’utilisateur,
  • une chaîne de caractère: le mot de passe de l’utilisateur,
  • un entier: l’année de naissance de l’utilisateur.
Ces trois paramètres initialiseront trois attributs: pseudo, mdp, naissance. Enfin un quatrième attribut amis référencera un tableau vide.
    trois accesseurs:
  • get_pseudo
  • get_mdp
  • get_naissance
un mutateur: set_mdp qui permettra de modifier le mot de passe seulement si le nouveau mot de passe a une longueur supérieure ou égale à 10.
Cette méthode renverra True si le mot de passe a été modifié, False sinon.

une méthode ajouter_ami qui acceptera une instance d’Utilisateur pour paramètre. Cette méthode ajoutera l’ami dans l’attribut amis seulement s’il n’est pas déjà présent dans le tableau. La méthode renverra une chaîne de caractère:
  • si l’ajout est effectué: pseudo est ton nouvel ami.
  • sinon: pseudo est déjà ton ami.
À retenir

La syntaxe des chaînes de caractère doit être respectée strictement pour pouvoir passer les tests.

    3. Dans le fichier reseau.py, construire la classe Reseau avec:
  • son constructeur, sans paramètre, mais avec un attribut utilisateurs, qui référencera un tableau vide.
  • une méthode get_utilisateur qui acceptera un paramètre: un pseudo d’utilisateur. Cette méthode renverra l’instance d’Utilisateur correspondant au pseudo et présente dans le tableau utilisateurs. Elle renverra None s’il n’est pas présent.
  • une méthode existe qui acceptera un paramètre: un pseudo d’utilisateur. Cette méthode renverra True si l’utilisateur est présent dans le tableau utilisateurs, False sinon.
  • une méthode inscrire qui acceptera trois paramètres:
  • une chaîne de caractère: le pseudo de l’utilisateur,
  • une chaîne de caractère: le mot de passe de l’utilisateur,
  • un entier: l’année de naissance de l’utilisateur.
  • Cette méthode renverra une chaîne de caractère:
  • si le pseudo existe déjà dans le tableau des utilisateurs: pseudo est déjà inscrit.
  • si la personne est trop jeune: pseudo est trop jeune.
  • si la personne est éligible, on ajoutera ce nouvel utilisateur dans le tableau utilisateurs et on renverra: pseudo est maintenant inscrit.
  • À retenir

    Pour vérifier l’âge de la personne, on se contentera de regarder l’année de naissance. Un utilisateur pourra s’inscrire s’il a 15 ans ou plus. On utilisera la documentation ci-dessous pour déterminer l’année en cours.

      4. À l’aide d’un commentaire dans le fichier test.py expliquer ce qu’il se passe lors de l’exécution de la dernière ligne du fichier:
                        
                      assert not prof.set_mdp("12345")
                    
      5. Renommer le dossier sous le nom eval_poo_votre_nom (sans accent, sans espace), le compresser et le déposer dans le casier numérique.

Annexes

Documentation

classmethod datetime.today()

    Return the current local datetime, with tzinfo None.
                
datetime.today()
datetime.datetime(2023, 9, 7, 14, 33, 20, 515979)
            

year

    Extract the year from a datetime's instance
                
>>> maintenant = datetime.today()
>>> maintenant.year
2024
            

Pièces jointes

Le code

    Pour démarrer