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

.128013s3o8bcdufvg/0lyàq n7apSr1me,(P2=4jtwki]D[5hx)é6050h0B0J0v0M0o0b0s0g0o0v0b0b0G010J0M0w010406050b0i0A0A0v0y0p040x0d0o0i0:0d0t050m0`0|0~100^0w04191g051j0m1j1l1g0^0h0M0k0(0*0,0.0R0M0l0R0o1z0R0J0?050Z0f0o0B1u0+0-011y1A1C1A0J1I1K1G0J0f0d0h101H0y1h0J0R0(130b0w0v0t0.0F011M1w010j0#0B0t0v0A0B1G1.1:1^1O1{1K1~200?0a0s0E0y0d0w0d0b0M160t0s0X1,0y0y0B0g2l19230t1h0m1*2y0J1(1%1)0h250.1C0t1}2i1G1r1t0)1N2I0M2K0t1!1s1G0w2r1h2w2y2$0_1/2m2Q1_2V0y0}0o0?0z2v2*0@2)242,1O2.2:0?0F2@1:2_2w2H012~0v2;040c322x0^352|0.383a0H3d342*363j0?0Q3m3f3o3h370d2/390?0V3t2`2+1v2}3y2 040u3D3g3G3i3I3A040e3m1i2!192O2B0h2F360g1!211h3Y1k3W2(1a2^053%0X2#3v3O010g0z0?030s0O0U0J0B2/2T430s1K0%0k390B0i0y0%2o420A0w0U0y0v0J4d1L0`0y470B4f4c0S0s0I0d4d0b3M3^2R370?4h0w434m4o4B3/330s3E360d0?0G3m4P3N4E0=040P3U4X2-0f0?0j0o0d4m4$4D1_4Z0D4/2{3_0t0?1}2r0l0M0b2C0B200t0J4M2(4%1O4Z4#4N2x4Q3w4`040L4@3F4Y0?0N5b574:1O0A0M0?3c5c3@4^5l040N0T4V5e3_0L4*3y5D583i0?5i5w4W5q0.0d0K0?2T5J5Q374)044l0t0l0B5j364=5)5f5Z285,3_5+5w5E4E5g4|0B4~502r53555:5z0T0T0N3t3u5y1_3{3}3 41435s2K4r480s4a1K4A2n1L2Z4t2j170s4q4s4u0i4w4y4A4C682}0?6p0,0M17562^5P6C5R4T5W6M015a614(4*4,4.5?5K6R0?4?6Y5X5_0t4}4 515 6J335@4;0?5o3:6Z5g5N5p6Q4Z5n6T5r5t043s6%6}5m5C5O6;1O5G040j5I796_5M6P5k1_5S5U187g6(5Z5#5%700.5=6|7k2}5.1}7u6!046$7x3p4{6*5{6,5~1}60757y7v0?63655w06677Q3`3|043~4042446g470v6j4b4d2n0i0s2r0b0Y0s7^0*2n4m1L0q7+0r0i0B0o1K0s0#6t6o2f0h0i2k6B7Y5g7?0Y7j4R6O7p764!7F6^6(7I6+5}527N6/5d6Z6S7P7H5h7C6~6@6:6Z5s0?0n8E5m0C7C0t5Z2T0J8M7E8P8s7K8u6.8U8G8y8r8D8B3w8F7C8J040F2?8*5;77782$6L7Y7c7e0y8j5f7i8m7Y7m045V923p7r1:7t8=5z8p8H7q0?5/9c6=8V9j6D045`5|6-8w8U7T3D0m3=0B2y6p2y3+2z3!192C2B1Z1#2B0v1J9y3X1s2_0m0X0Z0#0b04.
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

.128013s3o_;bcdufvg/0ly n7apSr1me,(P2=4:twki][5hx)6050i0A0I0u0L0p0b0r0h0p0u0b0b0F010I0L0v010406050b0j0z0z0u0x0q040w0d0p0j0-0d0s050n0@0_0{0}0=0v04161d051g0n1g1i1d0=0i0L0l0#0%0)0+0P0L0m0P0p1w0P0I0:050W0g0p0A1r0(0*011v1x1z1x0I1F1H1D0I0g0d0i0}1E0x1e0I0P0#100b0v0u0s0+0E011J1t010k0Y0A0s0u0z0A1D1+1-1=1L1^1H1{1}0:0a0r0D0x0d0v0d0b0L130s0r0U1)0x0x0A0h2i16200s1e0n1%2v0I1#1!1$0i220+1z0s1`2f1D1o1q0$1K2F0L2H0s1X1p1D0v2o1e2t2v2Z0?1,2j2N1?2S0x0`0p0:0y2s2%0;2$212)1L2+2-0:0E2;1-2?2t2E012{0u2.040c2 2u0=322_0+35370G3a312%333g0:0O3j3c3l3e340d2,360:0S3q2@2(1s2`3v2|040t3j1f2X162L2y0i2C330h1X1~1e3N1h3L2#172=053S0U2Y3s3D0+0K0:0U0k3J3d3+010J0:0r3;3*2O340k0:0`0Q0L0z0^0e0I0A0z0v0A0x0u0I0j2o3{2^3?0/040C4h3C3}0s0:1S0A0u0j4n334k0R0H3q060r4D3`3=4p0:0l360A4f0e413j4F3|1?0d0:0F4w3t4q044s4u4W4j0:0N4$3}0z0L0:0o4*1?4k0M3q4E4Q4i3}3-040k3v4P3B3m0:0L504G4S3^042Q554R2`0g0:4c0s0m0A4:1L4k4m3!30513t4,2/5k0+4k0B5u345e04255y5m5y4Y4!4v5o2u5q4%040R4z4@4^4E5L4{533:5J044_4o2*4r0u1G4t5I2#565l4(5F535D0:4?5X5Z334T04020m0I0f5b4`5#044J1H4M4O5X5T4;0:4A5X4C5R6f692`4I4K660u0Q605!1L5`4V5@6h3f5$5(4#685,5v5.6z5c6v595;045?2Z6e4D6u014|2o4e0x156t6A346j650x4N6m3A0n3%0A2v2W6)3M1p3O2y2A2w1W1Y2y5%1H2v3N0=0n0U0W0Y0b04.
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

.128013s3o_bcdufvg/0ly napSr1me,(P2=4:+twki5h)6050h0y0H0s0K0o0b0q0g0o0s0b0b0D010H0K0t010406050b0i0x0x0s0v0p040u0d0o0i0)0d0r050m0:0=0@0_0.0t041219051c0m1c1e190.0h0K0k0X0Z0#0%0M0K0l0M0o1s0M0H0,050S0f0o0y1n0!0$011r1t1v1t0H1B1D1z0H0f0d0h0_1A0v1a0H0M0X0|0b0t0s0r0%0C011F1p010j0U0y0r0s0x0y1z1%1)1.1H1;1D1@1_0,0a0q0B0v0d0t0d0b0K0 0r0q0Q1#0v0v0y0g2e121|0r1a0m1Z2r0H1X1W1Y0h1~0%1v0r1?2b1z1k1m0Y1G2B0K2D0r1T1l1z0t2k1a2p2r2V0/1(2f2J1/2O0v0?0o0,0w2o2Z0-2Y1}2#1H2%2)0,0C2-1)2/2p2A012@0s2*040c2{2q0.2~2=0%31330E362}2Z2 3c0,0L3f383h3a300d2(320,0O3f1b2T122H2u0h2y2 0g1T1`1a3A1d3y2X132.053F0Q2U3o1o1H0J0,0Q0j3w393U0%0I0,0q3!3T2K300j0,0x0d0p1?2D0e2S0y0#0K100b3+2;3$010+040A402!420r0,1O0y0s0i472 440N0F3m060q4n3*3#3-4a040b0d0=0y3f4p3,1/0d0,0D4y2:483-0x0K0,0n3m4o4z413-3W040j3r4F4q2$0,0k320y0i0v4W4A1H0d3(042M4)4Q4Y044c4e4g3p444k3N2|4m4O4o4G3i0,4u4w4:4H4B0,0G4E4}2q4P582?4Z4#4%4N514X3V0,2k0H4%115d045f3i0f5p0d0i0r0h4_4244465u523p4s551_572 4C040m5O5K5y04215E3-5G5Y4=4@4f5I5n0%4i0z5T424J2_5#1H4i3m123Q0y2r3`2r3J2s3C122v2u1S1U2u0s1C5{3z1l2/0m0Q0S0U0b04.
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

.128013s3o_bcdufvg/0ly n7apSr1me(P2=4:Ntwki][5h)6050h0z0H0t0K0o0b0q0g0o0t0b0b0D010H0K0u010406050b0i0y0y0t0w0p040v0d0o0i0+0d0r050m0=0@0_0{0:0u04141b051e0m1e1g1b0:0h0K0k0Z0#0%0)0O0K0l0O0o1u0O0H0.050U0f0o0z1p0$0(011t1v1x1v0H1D1F1B0H0f0d0h0{1C0w1c0H0O0Z0~0b0u0t0r0)0C011H1r010j0W0z0r0t0y0z1B1)1+1:1J1?1F1_1{0.0a0q0B0w0d0u0d0b0K110r0q0S1%0w0w0z0g2g141~0r1c0m1#2t0H1Z1Y1!0h200)1x0r1^2d1B1m1o0!1I2D0K2F0r1V1n1B0u2m1c2r2t2X0;1*2h2L1;2Q0w0^0o0.0x2q2#0/2!1 2%1J2)2+0.0C2/1+2;2r2C012_0t2,040c2}2s0:302@0)33350E382 2#313e0.0N3h3a3j3c320d2*340.0Q3o2=2$1q2^3t2`040s3h1d2V142J2w0h2A310g1V1|1c3L1f3J2Z152:053Q0S2W3q3B0)0J0.0S0j3H3b3)010I0.0q3/3(2M320j3,0z0w0r0K3 0e2m0S0^2l0t0l0z3_2?3;0-040A4c3A3{0r0.1Q0z0t0i4i314f0P0F3o060q4y3^3:4k3,0t0H4b3Y2~4A3`1;0d0.0D3h4J4d3{0J0g0.0G124G2X4x4z3z313+040j3t4P4$3r4l041^2m0l0K0b2x0z1{0r0H4,4B4L3?042O4~4K2^4m0t1E4o4q4H2s4-4e0.4v5c0/4z5k4Q4j1;4(0K3.5i5m3k0.4;0z4?4^2m4{4}5i5e3{4f0M4r3r0y0K2-5I5f040L544R4L4N4O5s5E1;5K2-0n5#5N5F5g3o5l5+5t4.4D4F5R5n1J4M045V2X5-3;4/5w5y4_5B5%1;5G621J5Z040n650)4f5Q5s4!4y5X1J4(2m0H0i405;5u040h4E4Y2:0:0m3#0z2t2U6y3K1n3M2w2y2u1U1W2w581F2t3L6v0S0U0W0b04.