Alien - Instructions conditionnelles
Les règles sont simples : l'alien 👽 se situe au départ au centre de la grille et peut être déplacé avec les fonctions haut, bas, gauche et droite.
L'objectif est de trouver la case finale de l'alien (et donc son parcours) après exécution du programme donné.
Nouvelles fonctions !
Trois autres fonctions permettent de situer l'alien dans la grille :
case() renvoie la case sur laquelle se trouve l'alien, de "A01" à "O15" ;
ligne() renvoie la ligne de la case sur laquelle se trouve l'alien, de "A" à "O" ;
colonne() renvoie la colonne de la case sur laquelle se trouve l'alien, "01" à "15".
Pour les questions suivantes, dessinez le parcours de l'alien en cliquant sur la case d'arrivée de chaque instruction exécutée. Vous pourrez ensuite valider votre parcours pour vérifier s'il est correct.
Instruction conditionnelle
Une instruction conditionnelle, ou instruction de test, permet de faire des choix en fonction de la valeur d'une condition. On parle souvent d'une instruction « si ... alors », ou « if ... else » en anglais.
Script Pythonif condition_1:
bloc_instructions_1
elif condition_2:
bloc_instructions_2
else:
bloc_instructions_3
Le code ci-dessus indique que si la condition_1 est vraie, on n'exécute que bloc_instruction_1, sinon on regarde si condition_2 est vraie, on n'exécute que bloc_instruction_2, et si les deux conditions sont fausses, on n'exécute que bloc_instruction_3
Les mots-clés « if », « elif » (contraction de else if) et « else » sont les traductions respectives de « si », « sinon si » et « sinon ».
Comparaison
Une condition est une instruction qui est soit vraie, soit fausse. On dit qu'il s'agit d'une expression booléenne.
Pour tester des inégalité larges (comme \(a \leqslant b\) et \(a \geqslant b\)) ou la différence (comme \(a\neq b\)) on utilise les syntaxes suivantes :
-
le signe <= pour inférieur ou égal ;
-
le signe >= pour supérieur ou égal ;
-
le signe != pour n'est pas égal à.
On peut résumer les tests possibles dans le tableau ci-dessous :
| Test |
Syntaxe Python |
| \(a=b\) |
a == b |
| \(a\neq b\) |
a != b |
| \(a<b\) |
a < b |
| \(a\leqslant b\) |
a <= b |
| \(a>b\) |
a > b |
| \(a\geqslant b\) |
a >= b |
| \(a<b<c\) |
a < b < c |
| \(a\leqslant b \leqslant c\) |
a <= b <= c |
| \(a<b\leqslant c\) |
a < b <= c |
Examples
>>> 15 >= 10
False
>>> 5 < 10
True
>>> 32 < 32
False
Comparaison de chaines de caractères
Lorsque l'on compare deux chaines de caractères entre elles, on les compare selon l'ordre alphabétique, caractère par caractère.
>>> "A" >= "B"
False
>>> "01" < "15"
True
>>> "code" < "mode"
True
>>> "2" < "15"
True
Source d'erreur classique
Le test d'égalité entre deux variables se fait avec un double égal == (car le simple = a un rôle différent : celui d'affecter une valeur à une variable).
Question 1 : Dessinez le parcours
| Script Python |
|---|
| gauche(2)
bas(3)
if case() == "K06":
droite(5)
else:
haut(5)
haut(2)
|
Dessinez le parcours
L'image est en train de se charger
Question 2 : Dessinez le parcours
| Script Python |
|---|
| haut(4)
if ligne() < "E" :
droite(6)
bas(3)
gauche(3)
if colonne() < "06" :
haut(2)
gauche(2)
|
Dessinez le parcours
L'image est en train de se charger
Question 3 : Dessinez le parcours
| Script Python |
|---|
| droite(4)
if colonne() < "05":
haut(3)
gauche(4)
else:
haut(4)
bas(2)
|
Dessinez le parcours
L'image est en train de se charger
Question 4 : Dessinez le parcours
| Script Python |
|---|
| gauche(4)
if case() == "H05":
haut(2)
gauche(3)
elif case() == "H04":
haut(3)
bas(2)
else:
haut(2)
|
Dessinez le parcours
L'image est en train de se charger
Pour les questions suivantes écrire le code nécessaire pour obtenir le déplacement souhaité (les numéros correspondent aux différentes étapes).
Question 5 : Codez le parcours
Figure attendue
Votre tracé sera ici
.128013tuhpA57Pbds)Ukfi0/612;:r(Sv8qc=3lm9nagyo 4e050k0R0b0L0q0H0l0P0E0H0L0l0l0F010b0q0e010406050l0c0I0I0L0y0N040A0O0H0c0,0O0K050s0?0^0`0|0;0e04051c151f0s1c0;0k0q0B0!0$0(0*0d0q0M0d0H1t0d0b0/050V0j0H0R1o0%0)011s1u1w1u0b1C1E1A0b0y1d0b0d0!0 0l0e0L0K0*0v011G1q010p0X0R0K0L0I0R1A1Z1#1*1I1-1E1:1=0/0a0P0i0y0O0e0O0l0q120K0P0T1X0y0y0R0E2a151^0K1d0s1V2n1S1U1T1B0k1`0*1w0K1/271A1l1n0#1H2x0q2z0K0O2D1A0e2g1d2l2n2R0=1!2b2F1+2K0y0_0H0/0P0u2k2V0:2U1_2X1I2Z2#2%0v2*1#2,2l2w012;0L2$040P0G2^2m0;2{2/0*2~300P0Q342`2V2|3a2%0g3e363g382}0O2!2 2%0t3l2-2W1p2:3q2=310h3v373y393A3s310C3E3n3G3p3r3b0J3M2.3O3i040u0r3T3x2G3P3B0u2)162+3m3U3$3W0u2@3+2_3-3#2Y3I300u333?2m1g2P152D2q0k1U2v3o0E2L1?1d441e422T3 1d4a0T2Q3N3/0/0M0L0c0E0d0R3e3w2|0.040z4w3F3$0I0q0/3k4i4x3o4z0m3e0P4P4Q4R4S4T4P4K3O0E0u0/030P0n2z0P0l0 110q130P260(0q1D4v4i3^2|0o0/0q0p4O4W4o041M2z4C4n1+4z0z4N4i0P501+0O0/020M0b0w4 4D1+0l1(04020D0c0O5j0f5r5t5j5l561I4z0x3l4R5d2:0/4@2R5c5m1I5f040F5A3.1+4F0/3=2R4_3o4{040R0Y5K2+5M5B0*5D5F4Q5H395J5S3_5O0/5R5b5;015V043~5Y5}0K0/0d4r0b555T5C0/4B4J5N5=5$695^5-0/5a626f2}0/0k24295)2_5}586i2|5 3L6e5,014M3!4`4|4~5|6o64044a0H13546C6a6k4A6m5*5}5P020H5z6K6D5o5g5s5u0w3Y5x6,5@4y0/5E4^5G6L0/6J5L6Y5`6;3o5 4I6n6D5#5%0l6u2m5+6T6E6?5/4V6`046|6X6o5P5{6}6o6A6G3o6M0j0%6y4L6c7w3V6{7z3$6F4^636q6s0b794m7c6x6S6j5~4G045X2+6w6l3v0s4k0R2n2O7!431m452q2t2o0L4?2n440;0s0T0V0X0l04.
Tracé du parcours (le vôtre à gauche, la solution à droite)
Le parcours de votre code et la solution attendue s'afficheront ici
Question 6 : Codez le parcours
Figure attendue
Votre tracé sera ici
.128013tuhp57Pbds)kfi0/612;:r(Sv8qc=3lmnagyo 4e050j0O0b0I0o0F0k0M0C0F0I0k0k0D010b0o0e010406050k0c0G0G0I0w0K040y0L0F0c0)0L0H050q0:0=0@0_0.0e040519121c0q190.0j0o0z0X0Z0#0%0d0o0J0d0F1q0d0b0,050S0i0F0O1l0!0$011p1r1t1r0b1z1B1x0b0w1a0b0d0X0|0k0e0I0H0%0t011D1n010n0U0O0H0I0G0O1x1W1Y1%1F1*1B1-1/0,0a0M0h0w0L0e0L0k0o0 0H0M0Q1U0w0w0O0C27121=0H1a0q1S2k1P1R1Q1y0j1@0%1t0H1,241x1i1k0Y1E2u0o2w0H0L2A1x0e2d1a2i2k2O0/1X282C1(2H0w0?0F0,0s2h2S0-2R1?2U1F2W2Y0,0t2$1Y2(2i2t012-0I2Z040E2;2j0.2@2+0%2`2|0N2 2?2S2^350,0f38313a332_0L2X2{0,0r3f2)2T1m2,3k2.040g3p323s343u3m040A381d2M122A2n0j1R2s3i0C2I1:1a3K1b3I2Q132%053Q0Q2N3h3A2_0,0I380M3q2^0L0,0D3-3/3i0G0o2/3y3(2D3*040i3@3z3 3;043?3Y2=3.441(3`3d3}2*3)0H0,0J0I0c0C0d0O3G4c1F0+040x4r3~4d3{042:492j3^3)4u0l4g3r3 0m0,0o0n434y2,0,3Q0F102w4x4h3 4u0x4I4D044b4R0%46020J0b0u4Q4Z1(0k1#04020B0c0L4:0p0N4{4}4:4Y4K1(4u0v3f0M5b4*4?4S410!552^4#5i3i4j415l4G0,4%2O3g5e0%4M040O0V4q4(4F4!0,594(065c5d565f0d4m0b5p5E4v5Q2V0,425C4s0%4H4J3b0,0j21265B2Q5Y015k5X4+403,5:5v5.5r3p0q3#0O2k2L5~3J1j3L2n2q2l0I1A610q3K0.6b0R0T0V04.
Tracé du parcours (le vôtre à gauche, la solution à droite)
Le parcours de votre code et la solution attendue s'afficheront ici
Question 7 : Codez le parcours
Figure attendue
Votre tracé sera ici
.128013tuhp57Pbds)kfi0x/612;:rJ(Sv8qc=3lm9nagyo 4e050j0R0b0L0o0H0k0P0E0H0L0k0k0F010b0o0e010406050k0c0I0I0L0x0N040A0O0H0c0,0O0K050r0?0^0`0|0;0e04051c151f0r1c0;0j0o0B0!0$0(0*0d0o0M0d0H1t0d0b0/050V0i0H0R1o0%0)011s1u1w1u0b1C1E1A0b0x1d0b0d0!0 0k0e0L0K0*0u011G1q010n0X0R0K0L0I0R1A1Z1#1*1I1-1E1:1=0/0a0P0h0x0O0e0O0k0o120K0P0T1X0x0x0R0E2a151^0K1d0r1V2n1S1U1T1B0j1`0*1w0K1/271A1l1n0#1H2x0o2z0K0O2D1A0e2g1d2l2n2R0=1!2b2F1+2K0x0_0H0/0P0t2k2V0:2U1_2X1I2Z2#2%0u2*1#2,2l2w012;0L2$040P0G2^2m0;2{2/0*2~300P0Q342`2V2|3a2%0f3e363g382}0O2!2 2%0s3l2-2W1p2:3q2=310g3v373y393A3s310C3E3n3G3p3r3b0J3M2.3O3i040t0p3T3x2G3P3B0t2)162+3m3U3$3W0t2@3+2_3-3#2Y3I300t333?353w3h3{0/0t3d3 3f3.3`3Q443k473^424b3X3u4e413o3:3D4k3F3/433X3L4p3N4r4h0t3S4v493z4h0u3Z471g2P152D2q0j1U2v3o0E2L1?1d4L1e4J2T4H4R0T2Q4w2Y0/0M0L0c0E0d0R3e4l3O0.040z4:4q1+0I0o0/462T4`1I4?0l3!3h0/0q3e0P4;3$0O0/0F595b1+0k1(04020D0c0O0b0v0y5m5o5q553o0m0/0o0n5g51390/1M2z4_4%520/0z54475a5D015d5l0H5v5O5h2:575I4C0*4?0w3l0P5*5P5J5E040i0%5!3_5K4@5=2|4|0/4d505-01535w3O5y040R1w5B5W5Q0K5F1t5H4H5Q4?5M5C5 5S020M5V2R5,5#2}5Z6f5 5%5)5+5X5.5:0k5_3o6h6D3O5{044j5~6r614B5?0*64660k4/6u6M0/5(4e5+6q6P6s5/5;6V6$6F6*5`4}044o6L6+0/5N2R064f4m0/0N6j6r5S5f695 5j0/5t5p0v0p0Q776o3,6z01645A6 6$6b044R0H136e6=2|6h6^2+6#2|6l5U0v7j56046~6-6E6X6x5*7f7l0d4+0b6G3$6,7r3o6I3=7S4=6@623$6R677B6|7m0 7p6U7W7Q5L7u2_7w3o6l6n7A736r7l7E7-1+6w6Z6y6a0/7M117P7 5L871I7U8a5$7Y817J83040j24297,2+7f7R8o5Q8c7F7X047:405Q7#6T8d607H8g7=3V0/8k0O8m8C8q2_7f8t7~5@8x0:6!7K847N8M898u3$8Q8r6v8f6_6{8H8j8l0b8n8O6g8!8R0*8%8=8)8w3v0r4!0R2n2O914K1m4M2q2t2o0L1D940r4L0;9e0U0W0Y04.
Tracé du parcours (le vôtre à gauche, la solution à droite)
Le parcours de votre code et la solution attendue s'afficheront ici
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)