2022-2023/1NSI/Evaluations/DS_2023-05-22/DS5.ipynb

371 lines
9.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "ecd73354",
"metadata": {},
"source": [
"# DS 5\n",
"\n",
"Cette partie comporte deux parties:\n",
"\n",
"- Partie programmation\n",
"- Partie réseau\n",
"\n",
"Ces deux parties sont indépendantes et peuvent être traitées dans l'ordre que vous voulez."
]
},
{
"cell_type": "markdown",
"id": "f8136040",
"metadata": {},
"source": [
"## Partie programmation\n",
"\n",
"Une ville souhaite gérer son parc de vélos en location partagée. Lensemble de la flotte de vélos est stocké dans une table de données représentée en langage Python par un dictionnaire contenant des associations de type `id_velo : dict_velo` où `id_velo` est un nombre entier compris entre 1 et 199 qui correspond à l'identifiant unique du vélo et `dict_velo` est un dictionnaire dont les clés sont : \"type\", \"etat\", \"station\".\n",
"\n",
"Les valeurs associées aux clés \"type\", \"etat\", \"station\" de dict_velo sont de type chaînes de caractères ou nombre entier :\n",
"\n",
"- \"type\" : chaîne de caractères qui peut prendre la valeur \"electrique\" ou \"classique\"\n",
"- \"état\" : nombre entier qui peut prendre la valeur 1 si le vélo est disponible, 0 si le vélo est en déplacement, -1 si le vélo est en panne\n",
"- \"station\" : chaînes de caractères qui identifie la station où est garé le vélo.\n",
"\n",
"Dans le cas où le vélo est en déplacement ou en panne, \"station\" correspond à celle où il a été dernièrement stationné.\n",
"\n",
"Voici un extrait de la table de données :\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "295fb0ce",
"metadata": {},
"outputs": [],
"source": [
"flotte = {\n",
"12 : {\"type\" : \"electrique\", \"etat\" : 1, \"station\" : \"Prefecture\"},\n",
"80 : {\"type\" : \"classique\", \"etat\" : 0, \"station\" : \"Saint-Leu\"},\n",
"45 : {\"type\" : \"classique\", \"etat\" : 1, \"station\" : \"Baraban\"},\n",
"41 : {\"type\" : \"classique\", \"etat\" : -1, \"station\" : \"Citadelle\"},\n",
"26 : {\"type\" : \"classique\", \"etat\" : 1, \"station\" : \"Coliseum\"},\n",
"28 : {\"type\" : \"electrique\", \"etat\" : 0, \"station\" : \"Coliseum\"},\n",
"74 : {\"type\" : \"electrique\", \"etat\" : 1, \"station\" : \"Jacobins\"},\n",
"13 : {\"type\" : \"classique\", \"etat\" : 0, \"station\" : \"Citadelle\"},\n",
"83 : {\"type\" : \"classique\", \"etat\" : -1, \"station\" : \"Saint-Leu\"},\n",
"22 : {\"type\" : \"electrique\", \"etat\" : -1, \"station\" : \"Joffre\"}\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "d2282abe",
"metadata": {},
"source": [
"\n",
"`flotte` étant une variable globale du programme.\n",
"\n",
"1a. Comment obtenir les informations sur le vélo avec l'id 26?"
]
},
{
"cell_type": "raw",
"id": "a430f6b3",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "5951facb",
"metadata": {},
"source": [
"1b. Comment obtenir l'état du vélo avec l'id 83?"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "86feec80",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "4e28b9ae",
"metadata": {},
"source": [
"1c. Ajouter le vélo avec l'id 1 de type electrique, disponible à la station Joffre dans le dictionnaire `flotte`."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d4fd9d3d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "d7173496",
"metadata": {},
"source": [
"2. On définit la fonction `proposition`"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a13ebd11",
"metadata": {},
"outputs": [],
"source": [
"def proposition(choix):\n",
" for v in flotte:\n",
" if flotte[v][\"type\"] == choix and flotte[v][\"etat\"] == 1:\n",
" return flotte[v][\"station\"]"
]
},
{
"cell_type": "markdown",
"id": "8771166f",
"metadata": {},
"source": [
"2a. Quelles sont les valeurs possibles de la variable `choix`?"
]
},
{
"cell_type": "raw",
"id": "d43c9a4e",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "fb52e033",
"metadata": {},
"source": [
"2b. Ecrire deux tests pour vérifier le bon fonctionnement de la fonction `proposition`"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b8ab1c1a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "417fa333",
"metadata": {},
"source": [
"Dans la suite, tous vos programmes devront marcher même si le dictionnaire `flotte` change.\n",
"\n",
"3. Ecrire un programme qui compte le nombre de vélo de type electrique."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a9514e4",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "3f341db7",
"metadata": {},
"source": [
"4. Ecrire un programme qui affiche l'id des vélos de la station *Citadelle*."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "968408e5",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ff4efcca",
"metadata": {},
"source": [
"5. On dispose d'une table de données des positions GPS de toutes les stations,\n",
"dont un extrait est donné ci-dessous. Cette table est stockée sous forme dun\n",
"dictionnaire.\n",
"\n",
"Chaque élément du dictionnaire est du type: `nom de station: (latitude, longitude)`"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "19622d5e",
"metadata": {},
"outputs": [],
"source": [
"stations = {\n",
"'Prefecture' : (49.8905, 2.2967) ,\n",
"'Saint-Leu' : (49.8982, 2.3017),\n",
"'Coliseum' : (49.8942, 2.2874),\n",
"'Jacobins' : (49.8912, 2.3016)\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "0935a479",
"metadata": {},
"source": [
"On souhaite préparer les donner pour afficher la position de chaque vélo.\n",
"\n",
"Écrire un script qui créer un dictionnaire `flotte_position` avec en clé l'id des vélos et en clé la position (tuple de longitude et latitude) de la station à laquel il est associé."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "52c0f94e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "dac575d3",
"metadata": {},
"source": [
"## Partie réseau\n",
"\n",
"Une entreprise décide d'organiser son réseau de la manière suivante\n",
"\n",
"![reseau](./reseau.png)\n",
"\n",
"L'icone nuage représente le réseau internet.\n",
"\n",
"1. Quel matériel doit-elle utiliser pour les objets A, B et C?"
]
},
{
"cell_type": "raw",
"id": "9b2da650",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "43e7c4f0",
"metadata": {},
"source": [
"2. Identifier les sous réseaux que vous identifiez en précisant les équipements qui le constitue."
]
},
{
"cell_type": "raw",
"id": "87a8447d",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "ed133011",
"metadata": {},
"source": [
"3. Le poste 2 envoie la trame suivante au serveur web\n",
"\n",
"![trame](./trame.png)\n",
"\n",
"3a. Quel est le type de contenu qui est échangé entre le poste 2 et le serveur web?"
]
},
{
"cell_type": "raw",
"id": "1fa9aff6",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "257a51db",
"metadata": {},
"source": [
"3b. Quelles informations peut-on en tirer sur le poste 2?"
]
},
{
"cell_type": "raw",
"id": "4060a968",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "b7446e92",
"metadata": {},
"source": [
"3c. Quelles information peut-on en tirer sur le serveur WEB?"
]
},
{
"cell_type": "raw",
"id": "0b7913b5",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "d0fa236c",
"metadata": {},
"source": [
"3d. Supposons que la réponse à cette requète soit une page web volumineuse. Que va-t-il se passer au niveau de la couche transport? Expliquer l'interet d'une tel manoeuvre."
]
},
{
"cell_type": "raw",
"id": "080bdc35",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "a5c61806",
"metadata": {},
"source": [
"4. Expliquer en quelques mots le principe d'encapsulation du protocole TCP/IP et les bénéfices de ce choix technique."
]
},
{
"cell_type": "raw",
"id": "49138878",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}