Aller au contenu

⚓︎

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...

le module Columbus

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.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013pbvà(40i2Dedmx3s7= 1jo5wlSnatf)h]6,qcrg[éyPku8/050m0l0D0C0i0z0q0t0L0z0C0q0q0s010D0i0b010406050q0T0n0n0C0M0Q040A0w0z0T0:0w0B050V0`0|0~100^0b04191g051j0V1j1l1g0^0m0i0d0(0*0,0.0G0i0N0G0z1z0G0D0?050Z0c0z0l1u0+0-011y1A1C1A0D1I1K1G0D0c0w0m101H0M1h0D0G0(130q0b0C0B0.0j011M1w010E0#0l0B0C0n0l1G1.1:1^1O1{1K1~200?0a0t0R0M0w0b0w0q0i160B0t0X1,0M0M0l0L2l19230B1h0V1*2y0D1(1%1)0m250.1C0B1}2i1G1r1t0)1N2I0i2K0B1!1s1G0b2r1h2w2y2$0_1/2m2Q1_2V0M0}0z0?0u2v2*0@2)242,1O2.2:0?0j2@1:2_2w2H012~0C2;040p322x0^352|0.383a0g3d342*363j0?0x3m3f3o3h370w2/390?0I3t2`2+1v2}3y2 040r3D3g3G3i3I3A040U3m1i2!192O2B0m2F360L1!211h3Y1k3W2(1a2^053%0X2#3v3O010L0u0?030t0k0P0D0l2/2T430t1K0%0d390l0T0M0%2o420n0b0P0M0C0D4d1L0`0M470l4f4c0o0t0v0w4d0q3M3^2R370?4h0b434m4o4B3/330t3E360w0?0s3m4P3N4E0=040O3U4X2-0c0?0E0z0w4m4$4D1_4Z0f4/2{3_0B0?1}2r0N0i0q2C0l200B0D4M2(4%1O4Z4#4N2x4Q3w4`040S4@3F4Y0?0H5b574:1O0n0i0?3c5c3@4^5l040H0F4V5e3_0S4*3y5D583i0?5i5w4W5q0.0w0y0?2T5J5Q374)044l0B0N0l5j364=5)5f5Z285,3_5+5w5E4E5g4|0l4~502r53555:5z0F0F0H3t3u5y1_3{3}3 41435s2K4r480t4a1K4A2n1L2Z4t2j170t4q4s4u0T4w4y4A4C682}0?6p0,0i17562^5P6C5R4T5W6M015a614(4*4,4.5?5K6R0?4?6Y5X5_0B4}4 515 6J335@4;0?5o3:6Z5g5N5p6Q4Z5n6T5r5t043s6%6}5m5C5O6;1O5G040E5I796_5M6P5k1_5S5U187g6(5Z5#5%700.5=6|7k2}5.1}7u6!046$7x3p4{6*5{6,5~1}60757y7v0?63655w06677Q3`3|043~4042446g470C6j4b4d2n0T0t2r0q0Y0t7^0*2n4m1L0e7+0K0T0l0z1K0t0#6t6o2f0m0T2k6B7Y5g7?0Y7j4R6O7p764!7F6^6(7I6+5}527N6/5d6Z6S7P7H5h7C6~6@6:6Z5s0?0h8E5m0J7C0B5Z2T0D8M7E8P8s7K8u6.8U8G8y8r8D8B3w8F7C8J040j2?8*5;77782$6L7Y7c7e0M8j5f7i8m7Y7m045V923p7r1:7t8=5z8p8H7q0?5/9c6=8V9j6D045`5|6-8w8U7T3D0V3=0l2y6p2y3+2z3!192C2B1Z1#2B0C1J9y3X1s2_0V0X0Z0#0q04.
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.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013:pbv(40i2edxm3;s7= 1o5w_lSnatf)h]6,crg[yPku/050l0k0D0C0i0z0q0t0K0z0C0q0q0s010D0i0c010406050q0R0n0n0C0L0O040A0v0z0R0-0v0B050S0@0_0{0}0=0c04161d051g0S1g1i1d0=0l0i0e0#0%0)0+0G0i0M0G0z1w0G0D0:050W0d0z0k1r0(0*011v1x1z1x0D1F1H1D0D0d0v0l0}1E0L1e0D0G0#100q0c0C0B0+0j011J1t010E0Y0k0B0C0n0k1D1+1-1=1L1^1H1{1}0:0a0t0P0L0v0c0v0q0i130B0t0U1)0L0L0k0K2i16200B1e0S1%2v0D1#1!1$0l220+1z0B1`2f1D1o1q0$1K2F0i2H0B1X1p1D0c2o1e2t2v2Z0?1,2j2N1?2S0L0`0z0:0u2s2%0;2$212)1L2+2-0:0j2;1-2?2t2E012{0C2.040o2 2u0=322_0+35370g3a312%333g0:0w3j3c3l3e340v2,360:0I3q2@2(1s2`3v2|040r3j1f2X162L2y0l2C330K1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0Q0:0U0E3J3d3+010x0:0t3;3*2O340E0:0`0m0i0n0^0y0D0k0n0c0k0L0C0D0R2o3{2^3?0/040f4h3C3}0B0:1S0k0C0R4n334k0F0b3q060t4D3`3=4p0:0e360k4f0y413j4F3|1?0v0:0s4w3t4q044s4u4W4j0:0N4$3}0n0i0:0h4*1?4k0H3q4E4Q4i3}3-040E3v4P3B3m0:0i504G4S3^042Q554R2`0d0:4c0B0M0k4:1L4k4m3!30513t4,2/5k0+4k0J5u345e04255y5m5y4Y4!4v5o2u5q4%040F4z4@4^4E5L4{533:5J044_4o2*4r0C1G4t5I2#565l4(5F535D0:4?5X5Z334T04020M0D0p5b4`5#044J1H4M4O5X5T4;0:4A5X4C5R6f692`4I4K660C0m605!1L5`4V5@6h3f5$5(4#685,5v5.6z5c6v595;045?2Z6e4D6u014|2o4e0L156t6A346j650L4N6m3A0S3%0k2v2W6)3M1p3O2y2A2w1W1Y2y5%1H2v3N0=0S0U0W0Y0q04.
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.

🐍 Console Python
>>> round(65.1745, 2)
65.17
>>> round(65.1795, 1)
65.2

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013:pbv(40i2+edm3s= 1o5w_lSnatf)h6,crgyPku/050m0l0B0A0i0x0p0r0H0x0A0p0p0q010B0i0c010406050p0N0n0n0A0I0K040y0t0x0N0)0t0z050O0:0=0@0_0.0c041219051c0O1c1e190.0m0i0e0X0Z0#0%0E0i0J0E0x1s0E0B0,050S0d0x0l1n0!0$011r1t1v1t0B1B1D1z0B0d0t0m0_1A0I1a0B0E0X0|0p0c0A0z0%0j011F1p010C0U0l0z0A0n0l1z1%1)1.1H1;1D1@1_0,0a0r0L0I0t0c0t0p0i0 0z0r0Q1#0I0I0l0H2e121|0z1a0O1Z2r0B1X1W1Y0m1~0%1v0z1?2b1z1k1m0Y1G2B0i2D0z1T1l1z0c2k1a2p2r2V0/1(2f2J1/2O0I0?0x0,0s2o2Z0-2Y1}2#1H2%2)0,0j2-1)2/2p2A012@0A2*040o2{2q0.2~2=0%31330g362}2Z2 3c0,0u3f383h3a300t2(320,0F3f1b2T122H2u0m2y2 0H1T1`1a3A1d3y2X132.053F0Q2U3o1o1H0M0,0Q0C3w393U0%0v0,0r3!3T2K300C0,0n0t0K1?2D0w2S0l0#0i100p3+2;3$010+040f402!420z0,1O0l0A0N472 440D0b3m060r4n3*3#3-4a040p0t0=0l3f4p3,1/0t0,0q4y2:483-0n0i0,0h3m4o4z413-3W040C3r4F4q2$0,0e320l0N0I4W4A1H0t3(042M4)4Q4Y044c4e4g3p444k3N2|4m4O4o4G3i0,4u4w4:4H4B0,0k4E4}2q4P582?4Z4#4%4N514X3V0,2k0B4%115d045f3i0d5p0t0N0z0m4_4244465u523p4s551_572 4C040O5O5K5y04215E3-5G5Y4=4@4f5I5n0%4i0G5T424J2_5#1H4i3m123Q0l2r3`2r3J2s3C122v2u1S1U2u0A1C5{3z1l2/0O0Q0S0U0p04.
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

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013:pbv(40i2edm3sN7= 1o5w_lSnatf)h]6crg[yPku/050l0k0C0B0i0y0o0s0I0y0B0o0o0r010C0i0c010406050o0P0m0m0B0J0M040z0u0y0P0+0u0A050Q0=0@0_0{0:0c04141b051e0Q1e1g1b0:0l0i0e0Z0#0%0)0F0i0K0F0y1u0F0C0.050U0d0y0k1p0$0(011t1v1x1v0C1D1F1B0C0d0u0l0{1C0J1c0C0F0Z0~0o0c0B0A0)0j011H1r010D0W0k0A0B0m0k1B1)1+1:1J1?1F1_1{0.0a0s0N0J0u0c0u0o0i110A0s0S1%0J0J0k0I2g141~0A1c0Q1#2t0C1Z1Y1!0l200)1x0A1^2d1B1m1o0!1I2D0i2F0A1V1n1B0c2m1c2r2t2X0;1*2h2L1;2Q0J0^0y0.0t2q2#0/2!1 2%1J2)2+0.0j2/1+2;2r2C012_0B2,040n2}2s0:302@0)33350g382 2#313e0.0v3h3a3j3c320u2*340.0H3o2=2$1q2^3t2`040q3h1d2V142J2w0l2A310I1V1|1c3L1f3J2Z152:053Q0S2W3q3B0)0O0.0S0D3H3b3)010w0.0s3/3(2M320D3,0k0J0A0i3 0x2m0S0^2l0B0K0k3_2?3;0-040f4c3A3{0A0.1Q0k0B0P4i314f0E0b3o060s4y3^3:4k3,0B0C4b3Y2~4A3`1;0u0.0r3h4J4d3{0O0I0.0p124G2X4x4z3z313+040D3t4P4$3r4l041^2m0K0i0o2x0k1{0A0C4,4B4L3?042O4~4K2^4m0B1E4o4q4H2s4-4e0.4v5c0/4z5k4Q4j1;4(0i3.5i5m3k0.4;0k4?4^2m4{4}5i5e3{4f0L4r3r0m0i2-5I5f040G544R4L4N4O5s5E1;5K2-0h5#5N5F5g3o5l5+5t4.4D4F5R5n1J4M045V2X5-3;4/5w5y4_5B5%1;5G621J5Z040h650)4f5Q5s4!4y5X1J4(2m0C0P405;5u040l4E4Y2:0:0Q3#0k2t2U6y3K1n3M2w2y2u1U1W2w581F2t3L6v0S0U0W0o04.