Retour
2021
2021 Metropole Septembre Sujet 2
Session 2021
Durée : 3h30
5 Exercices
"Sujet officiel."
EXERCICE 1 : (4 points)
Thème : Principaux thèmes abordés protocoles de communication, architecture d’un réseau et4 points
(4 points) Principaux thèmes abordés : protocoles de communication, architecture d’un réseau et protocoles de routage. Les parties A et B sont indépendantes. Partie A : Réseau
1
Voir le sujet complet pour les détails.
EXERCICE 2 : (4 points)
Thème : Principaux thèmes abordés structure de données (tableaux, dictionnaires) et langages4 points
(4 points) Principaux thèmes abordés : structure de données (tableaux, dictionnaires) et langages et programmation (spécification). Objectif de l’exercice : Les Aventuriers du Rail© est un jeu de société dans lequel les joueurs doivent construire des lignes de chemin de fer entre différentes villes d'un pays. La carte des liaisons possibles dans la région Occitanie est donnée en annexe 1 de l’exercice 2. Dans l’annexe 2 de l’exercice 2, les liaisons possédées par le joueur 1 sont en noir, et celles du joueur 2 en blanc. Les liaisons en gris sont encore en jeu. Codages des structures de données utilisées : • Liste des liaisons d'un joueur : Toutes les liaisons directes (sans ville intermédiaire) construites par un joueur seront enregistrées dans une variable de type "tableau de tableaux". Remarque : Seules les liaisons directes existent, par exemple ["Toulouse","Muret"] ou ["Muret","Toulouse"]. Par contre, le tableau ["Toulouse","Mazamet"] n'existe pas, puisque la ligne Toulouse-Mazamet passe par Castres. • Dictionnaire associé à un joueur : On code la liste des villes et des trajets possédée par un joueur en utilisant un dictionnaire de tableaux. Chaque clef de ce dictionnaire est une ville de départ, et chaque valeur est un tableau contenant les villes d'arrivée possibles en fonction des liaisons possédées par le joueur. Le dictionnaire de tableaux du joueur 1 est donné ci-contre : DictJoueur1 = { "Toulouse":["Muret","Montauban"], "Montauban":["Toulouse"], "Gaillac":["St Sulpice"], "St Sulpice":["Gaillac"], "Muret":["Toulouse","Pamiers"], "Pamiers":["Muret"]}
1
Voir le sujet complet pour les détails.
EXERCICE 3 : (4 points)
Thème : Principaux thèmes abordés bases de données (modèle relationnel, base de données4 points
(4 points) Principaux thèmes abordés : bases de données (modèle relationnel, base de données relationnelle et langage SQL). Dans notre monde, l’information a de plus en plus de valeur et d’importance mais nous sommes de plus en plus confrontés à l’infobésité. Considérons l’utilisation des données issues de la table de Mendeleïev (tableau périodique des éléments). Il est contraignant de faire des recherches sur des moteurs dédiés à chaque fois qu’une valeur est nécessaire (masse volumique, rayon de covalence, point de fusion…). Les lignes 3, 4 et 5 de cette table Mendeleïev ont permis de construire, en annexe 1 de l’exercice 3, une base de données des différents atomes correspondants.
1
Voir le sujet complet pour les détails.
EXERCICE 4 : (4 points)
Thème : Principaux thèmes abordés structure de données (programmation objet) et langages et4 points
(4 points) Principaux thèmes abordés : structure de données (programmation objet) et langages et programmation (spécification). Une entreprise fabrique des yaourts qui peuvent être soit nature (sans arôme), soit aromatisés (fraise, abricot ou vanille). Pour pouvoir traiter informatiquement les spécificités de ce produit, on va donc créer une classe Yaourt qui possèdera un certain nombre d’attributs : • Son genre : nature ou aromatisé • Son arôme : fraise, abricot, vanille ou aucun • Sa date de durabilité minimale (DDM) exprimée par un entier compris entre 1 et 365 (on ne gère pas les années bissextiles). Par exemple, si la DDM est égale à 15, la date de durabilité minimale est le 15 janvier. On va créer également des méthodes permettant d’interagir avec l’objet Yaourt pour attribuer un arôme ou récupérer un genre par exemple. On peut représenter cette classe par le tableau de spécifications ci-dessous : Yaourt ATTRIBUTS: - genre - arome - duree METHODES: - Construire(arome,duree) - Obtenir_Arome() - Obtenir_Genre() - Obtenir_Duree() - Attribuer_Arome(arome) - Attribuer_Duree(duree) - Attribuer_Genre(arome)
1
Voir le sujet complet pour les détails.
EXERCICE 5 : (4 points)
Thème : Principaux thèmes abordés Traitement de données en tables (CSV) et langages et4 points
(4 points) Principaux thèmes abordés : Traitement de données en tables (CSV) et langages et programmation (spécification). Afin d’améliorer l’ergonomie d’un logiciel de traitement des inscriptions dans une université, un programmeur souhaite exploiter l’intelligence artificielle pour renseigner certains champs par auto-complétion. Il s’intéresse au descripteur « genre » (masculin, féminin ou indéterminé). Pour cela il propose d’exploiter les dernières lettres du prénom pour proposer automatiquement le genre. Pour vérifier son hypothèse, il récupère un fichier CSV associant plus de 60 000 prénoms du monde entier au genre de la personne portant ce prénom. En utilisant seulement la dernière lettre, le taux de réussite de sa démarche est de 72,9% avec la fonction définie ci-dessous : 1 def genre(prenom): 2 liste_M = ['f', 'd', 'c', 'b', 'o', 'n', 'm', 'l', 'k', 3 'j', 'é', 'h', 'w', 'v', 'u', 't', 's', 'r', 4 'q', 'p', 'i', 'þ', 'z', 'x', 'ç', 'ö', 'ã', 5 'â', 'ï', 'g'] 6 liste_F = ['e', 'a', 'ä', 'ü', 'y', 'ë'] 7 8 if prenom[len(prenom)-1].lower() in liste_M : 9 return "M" 10 elif prenom[len(prenom)-1].lower() in liste_F : 11 return "F" 12 else : 13 return "I" # Pour rappel, C.lower() convertit le caractère C en minuscule.
1
Voir le sujet complet pour les détails.