⚓︎
Un Micro-contrôleur situé à bord du module européen Columbus de la station spatiale internationale permet d'effectuer des relevés de températures, d'accélérations, etc...
On dispose des données relevées pendant deux jours, regroupées dans un fichier CSV dont voici la struture :
| Attributs | Description | Type Python | Indice |
|---|---|---|---|
Date/Time |
Date et heure | str |
0 |
Latitude |
Latitude | float |
1 |
Longitude |
Longitude | float |
2 |
Temperature |
Température | float |
3 |
Humidity |
Humidité | float |
4 |
Pressure |
Pression | float |
5 |
Compass |
Direction du Nord | float |
6 |
MagX |
Intensité magnétique sur l'axe X | float |
7 |
MagY |
Intensité magnétique sur l'axe Y | float |
8 |
MagZ |
Intensité magnétique sur l'axe Z | float |
9 |
Pitch |
Tangage | int |
10 |
Roll |
Roulis | int |
11 |
Yaw |
Lacet | int |
12 |
AccelX |
Accélération sur l'axe X | float |
13 |
AccelY |
Accélération sur l'axe Y | float |
14 |
AccelZ |
Accélération sur l'axe Z | float |
15 |
R |
Composante rouge de la lumière | int |
16 |
G |
Composante verte de la lumière | int |
17 |
B |
Composante bleue de la lumière | int |
18 |
C |
Intensité de la lumière | int |
19 |
Motion |
Détection d'un mouvement | bool |
20 |
reset |
Redémarrage | int |
21 |
Types des données
Les données sont présentes dans le fichier CSV sous forme de chaîne de caractères. Avant de les traiter, il faudra impérativement les convertir en entier ou flottant.
Ces données ont été importées dans une liste Python nommée enregistrements. Chacun des éléments de cette liste est une liste contenant les relevés des capteurs à une date donnée ; l'indice associé à chaque grandeur est précisé dans le tableau ci-dessus.
Requêtes
Compléter le code ci-dessous en effectuant les requêtes proposées.
Types des données
Pour chaque réponse, les données sont attendus avec leur type initial, et non sous la forme de chaîne de caractères.
fonction maximale_temperatures
Écrire une fonction maximale_temperatures qui prend en paramètres un tableau de nombres flottants non vide, et qui renvoie sa valeur maximale.
Le tableau temperatures provient d'une requête réalisée à la question précédente, alors que le temperatures_50 correspond au 50 premières valeurs.
Exemple
>>> maximale_temperatures(temperatures)
35.0
Comparaison de nombres flottants
Lorsqu'on écrit a = x ou x est un nombre réel, la valeur de a enregistrée en machine est une valeur approchée de x (quelques fois la valeur exacte).
Cette valeur approchée a la forme d'un nombre flottant (le type float en Python). En conséquence, alors que des calculs et des comparaisons peuvent être effectués de manière exacte sur des réels, ils ne le sont que de manière approchée sur leur représentation en machine.
On peut donc obtenir par exemple, avec a = x et b = y, l'expression a == b évaluée à True alors que x et y sont différents.
C'est pourquoi les tests ne vérifient pas l'égalité des résultats et des valeurs attendues mais leur proximité.
Ainsi, on peut vérifier que \(\sqrt{2} \approx 1,414214\) en faisantassert abs(1.414214 - sqrt(2)) < 1e-6. Ce test vérifie que les deux valeurs sont proches à \(10^{-6}\) près.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
fonction moyenne_pressions
Écrire une fonction moyenne_pressions qui prend en paramètres un tableau de nombres flottants non vide, et qui renvoie sa valeur moyenne, arrondie au deuxième chiffre après la virgule.
Le tableau pressions provient d'une requête réalisée à la question précédente.
Exemple
>>> moyenne_pressions(pressions)
1015.05
round ?
La fonction intégrée round permet d'arrondir un nombre donné.
La fonction prend en paramètres un nombre à virgule ainsi qu'un nombre de décimales et renvoie la valeur arrondie à ce nombre de décimales près.
>>> round(65.1745, 2)
65.17
>>> round(65.1795, 1)
65.2
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
fonction dernier_redemarrage
La colonne reset indique une réinitialisation du processeur du micro-contrôleur.
La valeur est à 1000 lors de la fin de la réinitialisation.
Écrire une fonction dernier_redemarrage qui prend en paramètres un tableau de nombres flottants non vide, et qui renvoie sa valeur minimale.
Le tableau pressions provient d'une requête réalisée à la question précédente.
Exemple
>>> dernier_redemarrage(reste)
0
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)

# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)