Travail sur les missions particulières

Il faut impérativement s’investir pendant les congés suite à cette séquence, étape par étape, progresser !

Une note d’investissement dans ce projet sera posée avant la fin du trimestre !

cm 2020-02-05 NSI ProjetLaby missions particulièresOn commence par

 

Exercices sur les équations diophantiennes, code barre

Correction des exercices 41 et 49 page 57 et 61 page 59.

 


 

Exercices 62 page 59 et 79 page 61.

 


 

  • Travail pour le mardi 3 mars : terminer l’exercice 79 page 61, faire l’exercice « introduction » sur la feuille de cryptographie, et DM4.
  • Travail pour le mardi 10 mars : DS3 sur les équations diophantiennes et le début de la cryptographie.

 


 

A télécharger : un exercice d’entrainement personnel sur les équations Diophantiennes (en contexte) et son corrigé.

Dictionnaires. TP carnet d’adresses v3

Cours :

On se base sur le document distribué la semaine dernière, document national publié sur le site d’accompagnement pour les nouveaux programmes de NSI :

Ce qu’en dit le programme :

Dictionnaires par clés et valeurs.
Construire une entrée de dictionnaire. Itérer sur les éléments d’un dictionnaire.
Il est possible de présenter les données EXIF d’une image sous la forme d’un enregistrement. En Python, les p-uplets nommés sont implémentés par des dictionnaires. Utiliser les méthodes
keys(), values() et items().

Application :

Ce nouveau « type construit » est idéal pour reprendre et finir notre TP « Carnet d’adresses »

On change de structure de données. On avait :

repertoire = [["Pierre", 42, " 06.07.08.09.10 ", "3 allée des bois LILLE"],
["Marie", 37, " 06.10.09.08.07 ", "42 rue des fraises STRASBOURG"],
["John Malkovich", 65, " 01.02.03.04.05 ", "HOLLYWOOD"]]

On va transformer notre répertoire en dictionnaire.
En effet, c’est une excellente structure de données pour une première base de données.

On reprend notre fonction de lecture du fichier contacts.csv de notre TP « Carnet d’adresses » et on la réécrit ainsi :

def charge() :
    # initialisation : liste vide
    rep = {}
    # ouverture du fichier en lecture -> 'r'
    with open("contacts.csv", 'r') as fichier:
        # on récupère le contenu
        texte = fichier.read()
        # on le separe en lignes
        lignes = texte.split(sep = '\n')
        # print(lignes)
        # on parcourt les lignes
        for phrase in lignes:
            contact = phrase.split(sep = ";")
            # contact valable ? contact est une liste
            if len(contact) == 4:
                new = {}
                new['adresse'] = contact[3]
                new['tel'] = contact[2]
                # conversion de l'age en entier
                new['age'] = int(contact[1])
                # ajout du contact au repertoire avec comme clé le nom
                nom = contact[0]
                rep[nom] = new
        fichier.close()
        #print(rep)
    return rep

Ainsi, la succession d’instructions

repertoire = charge()
# menu()
print(repertoire)

affiche :

{'Pierre': {'adresse': '3 allee des bois LILLE',
                'tel': '06.07.08.09.10', 
                'age': 42},
 'Marie': {'adresse': '42 rue des fraises STRASBOURG', 
               'tel': '06.10.09.08.07', 
               'age': 37},
 'John Malkovich': {'adresse': 'HOLLYWOOD', 
                        'tel': '01.02.03.04.05', 
                        'age': 65},
 'Marchant': {'adresse': 'RUDLOFF', 
                  'tel': '06.36.80.93.99', 
                  'age': 46}, 
 'Nathan': {'adresse': "La-bas si j'y suis.", 
                'tel': '06.07.08.02.05', 
                'age': 17}}
>>>

(J’ai rajouté quelques retours à la ligne pour plus de lisibilité 😉 )
Ainsi, avec un tél dictionnaire repertoire :

>>> repertoire['Pierre']
>>> {'adresse': '3 allee des bois LILLE',
                'tel': '06.07.08.09.10', 
                'age': 42}
>>> repertoire['Marie']['age']
>>> 37
>>>

Pour lundi de la rentrée :

  • implémenter la fonction d’affichage d’un contact dont on connaît le nom,
  • implémenter la fonction d’affichage de tout le répertoire,
  • implémenter la fonction d’ajout d’un contact,
  • implémenter la fonction de sauvegarde du fichier contacts.csv

À venir lundi à la rentrée :

  • implémenter une fonction de recherche globale.

Un premier QCM

On passe un premier QCM.

Comme c’est important, et que ça stresse, parce que :

  • celles et ceux qui arrêtent la spécialité en fin de première passent un QCM,
  • parce qu’il y aura des points négatifs,
  • que c’est une épreuve particulière qui s’entraîne
    • procéder par élimination,
    • gérer un risque ou une absence de réponse….

je vous accompagne avec deux mesures :

  1. Je vous laisse réviser et discuter une vingtaine de minutes.
  2. Je ne compte pas aujourd’hui les points négatifs mais vous vous souviendrez des « risques » que vous avez pris. On corrigera dans la foulée !