Aller au contenu

Exercices - série 2

Exercice 1 : recherche dichotomique⚓︎

Recherche dichotomique

Bob a voulu écrire une version récursive de la recherche par dichotomie.
Malheureusement son code ne fonctionne pas. Corrigez-le.

###(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 : 5/5

.128013.128073Ta3=gvuth0x[/q8k).Féb6r7 +pcR5l:Sf(Cms1_i2n]ow;eyd4I9P,-050Z0X0j0d0Q0G0N0A0D0G0d0N0N0f010j0Q0C010406050N0i0M0M0d0y0Y040I0U0G0i0}0U0S0A020d0M0C0W0A0E0X170y0p0i0X0N050o1416181a120C04051F1y1I0o1F120Z0Q0h0=0@0_0{0@0S0g0i0d0g0X0)0C0Y0j0k1h0A0k0Q0g0k0G1.0k0j10050-0w0G0X1R0^0`011-1/1;1/0j1`1|1^0j0y1G1)0=1d0N0C0d0S0{0R011~1T010J0/0X0S1l0X1^2g2i2n202q1|2t0M2v040a0A0%0y0U0C0U0N0Q1g1i0+2e0y0y0X0D2Q1y2x0S1G0o1)2$2a2c2b1_0Z2z1U0Q0S2s2N1^1O1Q0?1 2:2=0S0U2_1^0C2V1G2!2$36132h1i2{2o2 0y170G1^0d1,2V0J0{030P0P0D300X1;2~0U0)0l0)0O100A0O1y0d373a11392y3c203e3g3i3k0X3m013o3q3s3u2?3x0)2l040A0R3E3G2i3I2!2/013N0d3h1G3j0k3l3n3p3r0+3X2 3Z0e3B0e3)2Z3H123-3L0{3:3=053@3_3T3{3W2;3Y3y0!3B0!441z463J3b1S3M0U3f3;3P3^3R3`3V3}4j3 3y0F3B0F4p36473a3.4b4z4f3U3|3t4F3w3y0x3B0x4L4r484u4a4w3O3?3Q3S4T4i3v3Z0z3B0z4$3+4N3K4)3/4+4y4-4A4/4h4E4=3y0q3B0q4`2#4|4t2|4 4x4c4e4B4g4D4V570)0$3B0$5c3,4O495h4,4d4.4C4U3~4X3z0l100O0l5u5e4P505j5B5m5D4W3Z0O3A045V5L4s5N5i4R5l4:564k3z3#0O3(0o3F454{5!5x4Q524S555o5+0O415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3d5O5%6o5S5p0O4Z5X4#6v381L341y2_2)0Z2c2.5x4U2^1P1G330X353H6i1G4U6!2y0Q0Z0{3p2!5U3P6+6-6p5T3y3A0A2D0X6?6D5~1^6h6y200r100+0J6$665g0V3B79734a0J102V0D0k0X0y7k0X7e5w4~0 040K7q4}6l100:0j7w5f2o7t0(6$0A7a3d100m7C3.7t0s0H6$126w2#5!6=016.3a3Z3#5A7X5|6q3y2l6{2u6~6c4G3!715;7f017c3$0A7|7N5x0N0Z10021u0U0j0W830i858784867S7N7(0P6/3y607%6,7Y6@5p417-2E7/5*7;8k727r5g803B7|0A0L0,0j1}0J1h2X0Q1+2V0S0h0U0Q1}0c0y1v0A2O0A0m0A1w0j0A0Z2i0;7A0(8!8$0u3;0N1}2O2 0S8e7U6)1i8g8i0)6e8l8t5}7;4m8r6}8n6 947?8{3.8A7{7|2J0v3r0S1O2Q0A0H8Y9n0A2;0j8,7A9q1;0N8$0,0A2a0Q0v1}2s0A4w0Z2V0=2K0Q0_2i7B8`7T383-8}7!4H6;8m7)6^0)4I96927*9$9b7J209e8C2I2N0j9j9l8L1i9o0D8F8H8J9m8N8P8R8%0i9B0Y0C1}0w0U1d9E8^9R8f9Z8h9W0)6G91987:5F4Z9(an8uap9,7^9/8C888aaz86aB0W8_9T4O9V2i4?9Y9)9#4@ar9!5p4@2$3F9S6#9Uah8~594-8g995F59aP8o5+a!3)9:9-0{75040Q788`7I7^0S0w7z2s7~7s107v8`a:3/7z9yb05g7P7Hb50U100f0fbc7^0M0Q105Kb47^7t7RafboaHaYaj5ra#aha%3Z5ra*bA3ybxa.9:8Cb5a=2V0j0i0yae36a`8y2o0r0D108/0:7pbsaG6*bvaJ6_5HbyaM6E5HbDao5Ub+bH7}a{100MbibT20be04bha_b5a|a~bQaWb}0{7tb3b$7D3Mb79Qcc7O100sb|7x2ob 0o0oclcd0{bk105/4Mag6?8~5VaLas935FcBb:at5U5Wb@bScm7410a@cr4Pcfb97E100ncUce04b{btcNc9100TcR5xb bgc+677LcYc(04brcxc$8|b(0S5U7$3ja$b;6_7,6|b-5~7$63bIbJ7^bL0,bOc63+cMcs01bV108T1vaFc7b%czaj5 cCaQ5~8qd5cD9*duaT9fdi3.a=4Va^bRc3cTc`ci04cXdN5^b`c=017tc*c27^b 020G8ddYc8b6047MdRb1c@dp3+7Wc|5U90d0bzd23z95dzdw7;0O90d9dadF5xddbNbPc/7y047j7l7n7ldUcadU0SdMch5x7tdQemc:c!eacn100Bet20cu5Xeh100H0T7Gd(c%d*d,eqbacjd:7VaXdsb)3z6samd cF9%d~a+e0eTe3b^d)dHbZeBd/b#dqc{eQc}6_ald_d6e0aqeYbE3zale$bIbK7idee9eGdjekec2Wee7oe+cbe.cS047Ae+0nc^fedSesd-eL04eEex4ac;focV04cke-d;0o6(1J6M0o6O1y0j6QfH2,2%0d1{6Z6N6W1E9c5x2V0M0P0J0d0r0X0P0k601q1s1u1w9n791L3I1F0b0A0#0G0A170S1u0.8$1|0;056(bMdf1y6(0A0tg81J3IfF0,0.0:04.

Exercice 2 : parité⚓︎

Parité

Compléter la fonction suivante qui doit être une fonction récursive.

⚠️ Il est interdit d'utiliser %

###(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 : 5/5

.1280136Tra37 =pcgvu5l:EtShf0(Cx/ms1_iq2n8owke)y4d;F9P,éb-050R0N0s0e0F0p0C0h0k0p0e0C0C0i010s0F0j010406050C0n0B0B0e0d0P040t0K0p0n0@0K0I050A0~1012140|0j04051k1d1n0A1k0|0R0F0m0,0.0:0=0.0I0l0n0e0l0N0Z0j0P0s0u1b0h0u0F0l0u0p1P0u0s0`050%0Y0p0N1w0/0;011O1Q1S1Q0s1Y1!1W0s0d1l1K0,170C0j0e0I0=0H011$1y010v0)0N0I0e0B0N1W1{1}221(251!282a0`0a0h0V0d0K0j0K0C0F1a0I0h0#1_0d0d0N0k2v1d2d0I1l0A1K2I1=1@1?1X0R2f1z0F0I272s1W1t1v0-1%2S2U0I0K2Y1W0j2B1l2G2I2/0}1|2w2!232(0d110p1W0e1N2B0v0=030E0E0k2)0N1S2%0K0Z0D3d0`0h0D1d0e2:2?0{2=2e2^1(2`2|2~300N32013436383a2V3d0Z20040h0H3j3l1}3n2G2R013s0e2}1l2 0u313335370#3C2(3E0f3g0f3K2F3m0|3O3q0=3R3T053V3X3y3Z3B2T3D3e0Q3g0Q3,1e3.3o2@1x3r0K2{3S3u3W3w3Y3A3#3~3%3e0o3g0o442/3/2?3P3?4e3`3z3!394k3c3e0b3g0b4q463:493=4b3t3U3v3x4y3}3b3E0g3g0g4H3M4s3p4K3Q4M4d4O4f4Q3|4j4T3e0J3g0J4Y2H4!482#4%4c3@3_4g3{4i4A4/0Z0U3g0U4@3N4t3;4|4N3^4P4h4z3$4C3d0w0`0D0w594_4u4(4~5g515i4B3E0D0D5n3i0A3k3-4Z475s4}4w504R4.3 3d3G0D3J5E3L4^5I5c4v4*4x4-535P0D3)045)5q5X4$5Z5f4+5h4S5(415+435U5G5W4J4{5:4 4,525j5z4n5+4p5|455H5 2_5t5L635x540D4E5+4G6a4r5.606f5!5M5$653e0D4V5+4X6o4I5b5/6s5;5#645y6x4;5+4?6C6c6E6r5K6t6h5@4l3d565+586P5~6R6e6T6H6u6J540H5m046/5-6d4a6*625?5O6X0H5B6;5D5F6b6%4#6S5e6`5w6W5k0H3G7c591o2-1d2Y2L0R1@2Q5c4z2X1u1l2,0N2.3m5}1l4z7v2e0F0R0=352G5z3u7C7E6-5(212j0N7K6i7M2I5F6@0=0M0`0#0v7x6q230L3g7#7V3Q0v0`0N0C0s0E1|0F0d7*6(1(0_040x7_752_0`1c737A4`237|0q7x0h7$3r0Y0`2T0s7 867{0`0O8a8c0=0K0`0Z020l0s0S8n7+0I8e040Y0K178i3P887x0|845I7J017F2?3E3G5f8M6v6K3F7N297P8N7L6}1W5|7+7(3H0h8,8F5c0C0R0`020G0n0K8v8?8^8`8@8_8w848J2;3O8T0E7G3e5*8S7D8!7R6X3)0h7O7Q7a3(8%7U7`0=8:3g8,0h0y0$0s1#0v1b2D0F1M2B0I0m0K0F1#0c0d0n1#2t9g0h7/0s0h7?0d0W0h0T3S0C9L2T1b8I8F95970Z5_9a9i6|5k419g8Y9-5%6X9+8(9n019p8+8,2o0X370I1t2v0q9N9P0h0n2w270@0N0d9R2s2u0F0v0h0K0n9g0n0p9$8K949b8O1}3E679,9c9j4m8X2a9?6w0Zay9`801(9}9r2n2s0sa2a49A0Ia60.0h0m3S0N0naf2B0sam0d0I0X1#a82y0s0P0j1#8C17a,836pas4t9(8P4D7Iau8#5k4E9;aEaA9.3E6l3,7+aM9r0r0z0N0B0j1!0h89919%b29)6zaz8U544Vb68Zbu5Pbs5U927wat7K9)6Mbtb33E4;bxaF8VbIaJ8j9o8;9~0h8t8`8u0SbX0S9O7:7=0(0d0x0Q8mboa|7Bbqa 55b1bO5456bNb89@5k6Zbc9{be8,9I9Kar93a}b=aw6x6:bJ9d5k5oaDbybKcc9l853Pc3bWbZb#b#b%7;9S0x0ob.a{c8b;bGb?5Ab^b}aGcFb|bz6XcF7Tcn8/bUaN9W0*0Nc7bEc9cDcb5QcGcLcg20cKckc#cO8o9|cR9rcscrbZcub)7@0x0wcz46b:2wa~c!5)c$c+d3c*cf5z99bRcoc:c49JcVb/cBd0ca0I5z9+2 95d86x9:9hcH8V0D9_3kbD3M8Ldk66d4dq3d4nd7aBdGcmc.cp8{8 dO8}8|90cAcXcC8!9)6kdEdJdZdIb96xbb5UaNc.7X041%ae8h848b8y828x9{8q04b#0id`aK0=0B0F0`5pd?c.7|0W8.4$0C6 02030f0U0Sab7:a9ab0Iadaf2r2t0@akamao0pefehdTc~di0hd1dl6xbsdob2dF6ycib_5(bB3kd,7+d.aje0bS3Qd_e77+d|0id eZ9{e3e5eb4{8HdhdVdjcZeF3dbIeIeNcMbMdtc%5zbQeQaN9rd-0`a%a#a`3md@9{0M0k0`c5dgdUdAbFdXcEc0e_du6jb{e}d5c0d+f3eS7.1S7!e(e1eX04f83MfafBe#e%2/fGeWe*5+e,870`bnfh2HdBe=8Qcdfne~3e6/eMfo5Pf$cOf2fvfbf50$f7eV3Pfc0`cT9YcWficYfkc!6~d!d(3F5Bd%b~8Q6 3KeRf.0439f`c 8GfRf{fUfjave?7cg1g6f#c)frdFgnf+f,fLf?f/0sf;fAeW0I7.b(9SfP8k7}gI3=eYfKc.d|0Zf=5cfN5TeC5c7|c}5H8K0A7z7g7u7i7r1d0s7lg,2O2J0e1Zg)0A7j8J0#0%0)0C04.
Indice pour la parité

n et n - 2 ont la même parité (tous les deux pairs, ou tous les deux impairs)

Exercice 3 : longueur d'une liste⚓︎

Longueur de liste

Compléter la fonction suivante qui doit être une fonction récursive.

⚠️ Il est interdit d'utiliser len

###(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 : 5/5

.1280136ra37 =+pcgvu5l:tShf0([/ms1_iq2n8]owLke)y4d;.9Péb-050R0N0r0d0D0p0A0g0k0p0d0A0A0h010r0D0j010406050A0n0z0z0d0c0P040s0J0p0n0?0J0G050y0}0 11130{0j04051j1c1m0y1j0{0R0D0m0+0-0/0;0-0G0l0n0d0l0N0Y0j0P0r0t1a0g0t0D0l0t0p1O0t0r0_050$0X0p0N1v0.0:011N1P1R1P0r1X1Z1V0r0c1k1J0+160A0j0d0G0;0F011#1x010u0(0N0G0d0z0N1V1`1|211%241Z27290_0a0g0V0c0J0j0J0A0D190G0g0!1^0c0c0N0k2u1c2c0G1k0y1J2H1;1?1=1W0R2e1y0D0G262r1V1s1u0,1$2R2T0G0J2X1V0j2A1k2F2H2.0|1{2v2Z222%0c100p1V0d1M2A0u0;030C0C0k2(0N1R2$0J0Y0F0Y0B0_0g0B1c0d2/2=0`2;2d2@1%2_2{2}2 0N3101333537392U3c3c3g0F3j3l1|3n2F2Q013s0d2|1k2~0t303234360!3C2%3E0e3g0e3I2E3m0{3M3q0;3P3R053T3V3y3X3B2S3D3d0Q3g0Q3*1d3,3o2?1w3r0J2`3Q3u3U3w3W3A3Z3|3#3d0o3g0o422.3-2=3N3;4c3^3z3Y384i3b3d0b3g0b4o443.473:493t3S3v3x4w3{3a3E0f3g0f4F3K4q3p4I3O4K4b4M4d4O3`4h4R3d0H3g0H4W2G4Y462!4#4a3=3@4e3_4g4y4-0Y0U3g0U4=3L4r3/4`4L3?4N4f4x3!4A3e0v0_0B0v571n2,1c2X2K0R1?2P5a4x2W1t1k2+0N2-3m3+3K054x5E2d0D0R0;342F3E3f4M5M5O505h5R202i0N5V5g4z5Y2H3k453N0M0_0!0u5G2G5,5a0K3g5=5K4^2^0u0_0p1a1B0N0n0c5{5@4!0^040w674H4_0G0_1.0N0d0n6d59690_0q5{0g686f0X600D0A0r6m4Z4_6a0O6r6t220J0_0Y020l0r0S6F6e2^6v042S6z435H6Q1%6a6q6W4?6A2v5U015P2=3E1 5T5N6+5W5(3d1 0g5!5$4Q3}3F5*5|3N5_040g756s6$715a0A0R0_020E0n0J6N7e7g7i7f7h6O780{785,6*6,1|3$3u7t6?523%6`285#6=5%7A1V0y5+6Y0;7b3g760L2~0u1a2C0D1L2A0G0m0J0D1!0-0g611A0n640c2w1!6i6k5{7q2:3M7y5Q3~7x6;4+516~3 7C296|4,807I7K6n4_7N74767j7n8e7l7k7o4p6(0g7_6-4k7|847 4j0Y4l827E7~5X8p70766s7L3O0_360j7#0C7:6l788D896H0_0h6P8P3r6S1R6y8l5a6a6c7r8E6g048L8Z6o046E8N6G1%0k5S032m0J656`1!1{0*0R0W1;0n0D2A0g8+7p8l8n7v4B8q7F6}8t4C8w8r8z0Y4C8B768;0;5.6T5;8:8(8G2p8J972.8O6B8Q040h8S9u8U0;6a0x0I6#8k8%4r9a0G4S9d8y6@0Y4T9i9e858t4T9n8C759p019r2A0r651b9H9C1%0z0D0_5n989P5L7}0C7`0Y4/6:9j9W4/9Z9V52a33I8C9+9r380A0N8,6C6p7=999 a154a49!8s5i54a87z6~aqac9)9*9v048H9y0d1Y6j8M7@9I016I040Taj2^0_2q0jaR6Z0_0w8/9OaL9~5Va15m9Uax8ta*aw7G6~a*9(9)ae0_9.9:8T9?0;9^5la|5}1%aO0ib14s60627+65aW9JaYbc8FaE9x0N8KaH1Z7;9}b2bd8.am7r0y5J5p5D5r5A1c0r5ubA2N2Iblbx0y5s7q0!0$0(0A04.
Indice pour la longueur d'une liste

Vous pouvez utiliser .pop()

Exercice 4 : bégaiement⚓︎

bégaiement

Ecrire une fonction récursive repeat qui prendra en argument un entier n et une chaine de caractère txt, et qui renvoie une chaine de caractères qui contient n fois la chaine de caractères txt juxtaposées.

Exemple: repeat(5, "bla") renvoie blablablablabla

###(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 : 5/5

.1280136ra37 =Npcg+vèu5l:tShf(0Cxî/ms1_iq2n8owke)y4d;.9P,éb-050T0P0t0d0H0r0E0g0k0r0d0E0E0h010t0H0j010406050E0p0D0D0d0c0R040u0M0r0p0_0M0K050C101214160~0j04051m1f1p0C1m0~0T0H0n0.0:0=0@0:0K0l0p0d0l0P0#0j0R0t0v1d0g0v0H0l0v0r1R0v0t0|050)0!0r0P1y0;0?011Q1S1U1S0t1!1$1Y0t0c1n1M0.190E0j0d0K0@0J011(1A010w0+0P0K0d0D0P1Y1}1 241*271$2a2c0|0a0g0X0c0M0j0M0E0H1c0K0g0%1{0c0c0P0k2x1f2f0K1n0C1M2K1@1_1^1Z0T2h1B0H0K292u1Y1v1x0/1)2U2W0K0M2!1Y0j2D1n2I2K2;0 1~2y2$252*0c130r1Y0d1P2D0w0@030G0G0k2+0P1U2)0M0#0e0#0F0|0F1f0d2=2^0}2@2g2`1*2|2~30320P340136383a3c2X3f0#22040J3l3n1 3p2I2T013u0d2 1n310v333537390%3E2*3G0e0|0e3L2H3o0~3P3s0@3S3U053W3Y3A3!3D2V3F3g0S0|0S3-1g3/3q2_1z3t0M2}3T3w3X3y3Z3C3$3 3(3g0q0|0q452;3:2^3Q3@4f3{3B3#3b4l3e3g0b0|0b4r473;4a3?4c3v3V3x3z4z3~3d3G0f0|0f4I3N4t3r4L3R4N4e4P4g4R3}4k4U3g0L0|0L4Z2J4#492%4(4d3^3`4h3|4j4B4:0#0W0|0W4^2K2.0P2K2!2N0T1_2S3=014A2Z1w1n5c2:3o3.3N054A5r2g0H0T0@372I3G3i4P5z5B533%4D3h232l0P5I4A5K5E1Y0C3m483Q0O0|0%0w5t2J5X5k0N0|0g5%5x4{2{0w0|2D0j0P0d0t5.5)4%0{040x5|4K4|0K0|1e465u63255 0s5.5-6a3t0!0|2V5{685(6g0@5 0Y6e5}640|0t0A6l2?6o016c6s6A0K6i040E1@624u5k5 0Q6D6L4%0M0|0#020l0t0U6P4$646G6I0c6Z5:1*6C6m3p6-5X5H015C2^3G3I3_0g6;4.54403H5N2b5P6=5J4C6^5U5W6A5+040g7d5-6/6A0E0T0|020I0p0M6X7l7n7p7m7o6Y6-0~7g4u6|0G5D3g3*5G5A745R767D712c5Q4T6 7E3-7h7j7c7e0s1~0c2b0g0K0s2z1%0t0R5^0g290_0P0c0V0g0i0M0D0!2D7%0g0w0M0H0-7m1%0r02030e0W0U1O2D390j0H82310k0v0d0B2W7{0k140d2F0o2D0E0V5.7x6z7z7G6?1 3G427F7N4/6 427!728E6~4m0#8C7R6Q4|7i5,7V7X7Z6w0t7$2A7)7+6%7;0z8h3 8l8n8p8r0g810g8385871O0T7~0t0g0c0Z0j0Z0t7/8t7w6K5y8y7B6@4n3w7A7I554o8I7M7H7O8M4o2K798Q258S7U7d7q7u9u7s7r7v4s962y7A7C0#4F8D9j8F8M4F9h736}5S4E789s6f9p1*5Z040H5$6-9T6!2{666)3Q6S040h0h9)5k0D0H0|0y9/5~0|6d957y975I9E4W9H9O7J0#4W9M8K9Pa59R7eac9#6*0@9W2D0t0p0c672;ae3Q0E5F84860Uas878u9B6{989E4=a275554=a79I8L5LaC3Lac6t259W3b0E0P9^4|6,9A9}9CaA9a569c989e6 57aHa355579n9SaN6Aah0(akam3oao5k65048XaU259+0mb13t5?0P5^5`ay6M0|61aY4v9(9!aO1*9+0#b50@9;3jbb9_046rbi6E6v6xbraV0|6O9|2?0C5w1q2/1f5f1f0t5hbL2Q2L0d1#5dbJ5o7x0%0)0+0E04.

Exercice 5 : La tête à Toto⚓︎

La tête à Toto

Compléter la fonction récursive toto telle que :

  • toto(0) renvoie '0'
  • toto(1) renvoie '(0 + 0)'
  • toto(2) renvoie '((0 + 0) + (0 + 0))'
  • etc sur le même principe

On garantit que n est un entier positif ou nul.

Compléter ci-dessous

###(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 : 5/5

.1280136ra37 =+pcg`vu5l:tShf0(U/êms1_iq2n8owke)y4d;9Pb-050R0N0s0d0F0q0C0g0k0q0d0C0C0h010s0F0j010406050C0o0B0B0d0c0P040t0K0q0o0;0K0I050z0{0}0 110_0j04051h1a1k0z1h0_0R0F0n0)0+0-0/0+0I0l0o0d0l0N0W0j0P0s0u180g0u0F0l0u0q1M0u0s0@050!0V0q0N1t0,0.011L1N1P1N0s1V1X1T0s0c1i1H0)140C0j0d0I0/0H011Z1v010v0$0N0I0d0B0N1T1^1`1 1#221X25270@0a0g0U0c0K0j0K0C0F170I0g0Y1?0c0c0N0k2s1a2a0I1i0z1H2F1/1;1:1U0R2c1w0F0I242p1T1q1s0*1!2P2R0I0K2V1T0j2y1i2D2F2,0`1_2t2X202#0c0~0q1T0d1K2y0v0/030E0E0k2$0N1P2!0K0W0Q0W0D0@0g0D1a0d2-2:0^2/2b2=1#2@2_2{2}0N2 01313335372S3a0W1}040g0H3h3j1`3l2D2O013q0d2`1i2|0u2~3032340Y3A2#3C0e3e0e3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0Q3e0Q3*1b3,3m2;1u3p0K2^3Q3s3U3u3W3y3Z3|3#3b0p3e0p422,3-2:3N3;4c3^3x3Y364i393b0b3e0b4o443.473:493r3S3t3v4w3{383C0f3e0f4F3K4q3n4I3O4K4b4M4d4O3`4h4R3b0J3e0J4W2E4Y462Y4#4a3=3@4e3_4g4y4-0W0T3e0T4=3L4r3/4`4L3?4N4f4x3!4A3c0w0@0D0w574@4s4$4|5e4 5g4z3C0D3d045y5o455q4{4u4~4P4,3}3c3E0D3H0z3i3+4X5D5a4t4(4v4+515K0D3%5A3)5P3J4?5T4!5V5d4)5f4Q5!3 5A415)5R5+4H4_5.4}4*505h5x4l5A4n5`435S5}2?5r5G615v520D4C5A4E682.1n2*1a2V2I0R1;2N5a4x2U1r1i2)0N2+3k5{1i4x6D2b0F0R0/322D5x3s6K6M625w3b3d0g2g0N6S6g5!1T5`6b1#0M0@0Y0v6F5,4_0L3e6/6)3:0v0@0s0K6|6@594!0?040x6 4Z5~0@19692E6:20720O0r6F0_7a6I2t6R016N2:3C3E5d7m5Y633b1}6X266Z7n6T527r6(706;3e0g7J754^200C0R0@020G0o6}0S7R7T0s7V7S7U0y2R0g0v182A0F1J0s361X0g7S1Y7g7j7i2.3M7t0E6O3b5$7s6L7B6#4j0W3%7y276!5=85805)7_6E7{827o1`3C5@818a5J853 887A7u6U3a6%5Q6^017O7I7J0W0g0m6|6|0x0w0O0m0g2y0I0n0K0F1Y0m02030e0T0S0w8V8X0S0m7h7L0g7|7~0W658n838b5i4l8s8o5Z858/7F767N7P3F7J0g8E8G6}0K0x0D8L8N248Q8S8F8#8Y8J0g0i0g8K9g8%8)7j5D8,7p4B6Q8i7C5K4C8^8;8p5i6j3*8z8B918D8F8H970H9a8O9d8T9n0x9i9k8K9j0g9U9l0O0O9n8(7^8*9s8k3b4T4M7|845i4T9A8u529.9F7G8 8C930g0Z0k0g0{0c0g7:0B0A270g2)2Q0k0=0N9p7`4r9+0I3C4/9/9w9;am1~6Y8_7v0Wan3I8f3K9r9w8-54aoau8v549@9x85aE9{8~1#9H926Xa00C0s0g0o2t240;0Na52o2q0;6.9)9q8h6S8-5m9vaG6h5kaJaq6V5k2F8y9|aP90aR7W7Ub27Yb40Sah8gajaC9t3c5z8:9^5!6Wat9B8`5i5y8x3la,baa.bc5Na;bkavbua^8=5x7E3iaR7c6*0@0Fa*2,0gbF3:786FbL8z0K0@0h0hbPbM010B0F0@5nbqaO0/727@4p9*bb9,3c802|9:bA6V87bjbg855#boaRbE8z6+042y0s0o0c79bKbX0C5z9n8!8W8Yb8aAa-7Ba/8mb=apb@3c8rb`aKbm8m5)c0a~0/c2360Cagb%7M1#b*ch7bcj8jal6V8/cna=5!8@csa_3c8|bDb 7K8z0I0@0B6}bIbWbRbTc*cy3O6{968*5a7274cE4sbO7jbQc.bS040Wc-b(bYb!5Ac=710@0OcI7k8+b.cM3c9EcPbw8v6ias7zcQb|9EcwcYc}d3c2c4c6c83kdtcF0/cb7Qcf0S0x9nd2dB01c 0idJc`04c%a)dO5adMdT4!dD049n9XdIc|bXdVd%c!c$c(bJdzd(0@dNd*c.dY9n9$dFdb1a6H1l6p0z6r1a0s6te32L2G0d1W6C6q6z7i0Y0!0$0C04.

Exercice 6 : Test de palindrome⚓︎

Palindrome

Un mot est un palindrome s'il se lit de la même façon de droite à gauche comme de gauche à droite.

Exercice

Écrire une fonction récursive est_palindrome qui prend en paramètre une chaine de caractères mot et renvoie le booléen True si mot est un palindrome ou False sinon.

Premiers indices
  • Le premier caractère de la chaine mot est mot[0]
  • Le dernier caractère de la chaine mot est mot[-1]
  • Pour une copie d'une tranche ("slice" en anglais) du second jusqu'à l'avant-dernier caractère d'une chaine mot, on peut écrire mot[1:-1]
Derniers indices
  • Si la chaine fait zéro ou un caractère, c'est un palindrome.
  • Sinon on peut comparer le premier et le dernier caractère.
  • Enfin, un appel récursif permet de répondre sur le reste de la chaine.
Palindrome

Compléter ci-dessous

###(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 : 5/5

.128013.9888DTa3=gvèuth0x[A/àq8kç).Féb6r7 pcR!5l:Sf(Cms1_i2n]ow;eyd49P,-050(0$0l0e0V0L0S0F0H0L0e0S0S0g010l0V0G010406050S0k0R0R0e0D0%040N0Z0L0k110Z0X0F020e0R0G0#0F0I0$1b0D0t0k0$0S050r181a1c1e160G04051J1C1M0r1J160(0V0i0_0{0}0 0{0X0h0k0e0h0$0-0G0%0l0m1l0F0m0V0h0m0L1=0m0l14050;0B0L0$1V0|0~011;1?1^1?0l1~201|0l0D1K1-0_1h0S0G0e0X0 0W01221X010O0?0$0X1p0$1|2k2m2r242u202x0R2z040a0F0+0D0Z0G0Z0S0V1k1m0/2i0D0D0$0H2U1C2B0X1K0r1-2*2e2g2f1}0(2D1Y0V0X2w2R1|1S1U0`232@2_0X0Z2}1|0G2Z1K2(2*3a172l1m2 2s330D1b0L1|0e1:2Z0O0 030U0U0H340$1^320Z0-0K0-0T140F0T1C0e3b3e153d2C3g243i3k3m3o0$3q013s3u3w3y2`3B0-2p040F0W3I3K2m3M2(2?013R0e3l1K3n0m3p3r3t3v0/3#333%0f3F0f3-2%3L163;3P0 3@3_053{3}3X3 3!2^3$3C0)3F0)481D4a3N3f1W3Q0Z3j3^3T3|3V3~3Z414n433C0K3F0K4t3a4b3e3=4f4D4j3Y403x4J3A3C0C3F0C4P4v4c4y4e4A3S3`3U3W4X4m3z3%0E3F0E4*3/4R3O4-3?4/4C4;4E4?4l4I4_3C0u3F0u4~2)504x30534B4g4i4F4k4H4Z5b0-0*3F0*5g3:4S4d5l4:4h4=4G4Y424#3D0n140T0n5y1N381C2}2-0(2g2=5B4Y2|1T1K370$393L493/054Y5)2C0V0(0 3t2(3%3E4;5;5?5r5I5_2q2H0$5}5H4!602*3J4w3=0v140/0O5+2)6a5B0!3F6g5/5j3h0O141A0l0U2l3y0(2O2I6m6i5213040P6A4,5k0X140R0Z0l6G5A6C140x0M6m164u5,3;5|015@3e3%3)5E6Z595s4o3(612y644^6-6(0r696H2s6k3*0F6~6O515k0S0(14021y6M0#760k787a780c0A0l0$3j4n0F2S0F6L0l0F6s0F0k1m6v2^6x0Z2I7d0l79777B7A0#6U701m6*0U5^3C455{5=6!5~667N6/2I6;5a6-7O3-6V3c6Y7Q6#2m3%4q7P7X6,4K0-4q0F627/5 4p1|6^6}6 6`246c040V6f6W2)0F6B6I0B142G7I3=6D6F866n4T6K6M8e5B6D0x6m88800 0Z750L7B8r892s0R0V143,8i8A246D6T8i7$5*7(5}7M3B3T7K655t4M7@6:7R8U6-4M687~6~8)8H0 822Z0l0k0D0X8z8t010v0H140d0D1z7H8G8O7R8Q4%7.8Z6=7;4%8X7W967Y987|3J8)8s6P5k823x0S0$8n6Q048K4Q8e7K8Q4{956+7`0-4{9a639c7:5J9x3-9h9h8+8^14848?9j3h8l6N909R8I140p9p5k8C145O9V712s6D0Y9Q9*248v040J0g9.6o3Q9T9!9+9Y9|9:140-9 0 9$043H9)9_0 9,9s4va80F9v6$5c8S7)7S5t5d9D7_7T0-5d8%9Kau9i9/8,148.8:8=8iawa98^8`040z3^9n8 7%4Sag7+3C5v9yal6-5vao9F9AaS9Jav9M9l0@9oae8o14ac4 9uak8Q5Najap5ta?aX9zaqa?atav9L8@8-0:aB9^8k046s6u3^7w6ya*aNax018ga33?9{a+9q9Zbm9#8Da6bj8Jbj9;a2bp8Bbra7bfaF9,8q8L6A0r5.5Q5(5S5#1C0l5VbO2:2+0e1 bL0r5T1I8j5B2Z0R0U0O0e0v0$0U0m7O1u1w1y1A0Fa.6h1P3M0/0;0?0^5B337h0F0(0A0G1^0A2z0F2P2w8u0G2w144b191w1e0q1j2Z2X2Z2#0V1/2Q0}0VbV2%ci1Gb{1T3=1Z1#1%1)1+1-1/261@1_1{b!522F2w2y140+1,1.aC3c5%6n3.6hbJ917*0X0-0C3Da@aY66c,3Ea{aU43c;2q575G973Ac_8%a%6d3Vbj6|88by3Q6qb80S6t7v0X7x6zd7aa148hbCb77obt6Rb^3MaeaPc*c,6(3n8Tc}c+6.c?8!c^dBc{5qdDc~6.d08@0S3)7F7f7h7j2_7l0V7n6M7qdb7s7ubbdebd7FaM8NaOa;6$c,7!dxakdIdA45dCdzd/c`4Wa|4_d{8%8M6Xd,8Pd.7=c.d~3$c,7?7^c/d e75FdHd`e7a 7 9Way83853aaE4T8b048ddhbhdjbj6J04dnex8pb65B9;028x7GaD9Ma58Fdla,9rd*e35:d-7+c,8$6)d=ej8Wede9dE8WdG4@9ddJeZ7}b0d104aA8;eG528_8{8}beaddldtdA94e!a^eac+7V9Ee)dJ99e,fbf39f8(e?9me eUbDa-eT6hc(7Le69Id;f6dE9Ce(c@dJ9CfefAdA9Ie;a$b2azb4e_eM8@eBeDeQbnbja59(fR5k9,e`5k9;0g9@fNenbkeC8meE9~exbwfTbAdo049-f(bg0Z6|2m0(fZ9Sdadcd$dfflfqf)biexfPf,fW9}04bogc24a5bBd+bgbuf/a1f;5Mf?0YbF9t8GbI3w2*cZbM0i3M1Jb:1c770X0^b=0F0{c30$0k0o0V0j2I0F2l0D11210(0k885.f}1C5.0F6F5.b9ddg40P7o0p0T0M3Dgsg%gx0x7@219n0D3n0A0i3^0kc87q1mcUcI1mgJ7m5-gxg:0n0Y0Ff$dW0l0pg@g_0/3*7rh1h30A0F0sg!gx8|8~gwhpg)hs1i0e2UgT1c1A9n0k9n0x0y1Ndrb|0=0@cA2~520e0(6L0X2Tcr1m0!1ch#1!cg1L3=hYh!h$1l0-110l2c04gE1xhA1Q1L040b0F0Q0:c20S1h1jh%hv0F0B0|gX213v0G0Vif0F010S1^0H1A2q0P2e2m0H0mb?2w0F0Og 0X0w0=0Sg{0X007r2l0^3V2u0H0eip0,7@0ZhM0F0i7i2OgHgT1i0^0;0D2=7t210R7g1.2Wc6iUiM0ViOip0F0eiW0HgKb?7wi?1AhPb`6VbY5S0:hT0S04.

Exercice 7 : triangles⚓︎

A faire

Écrire deux fonctions (procédures) récursives triangle_bas, puis triangle_haut prenant un entier n non nul en paramètre et qui affichent un triangle. Ces fonctions ne renvoient rien.

Python Console Session
>>> triangle_bas(4)  # affiche un triangle tête en bas
####
###
##
#
Python Console Session
>>> triangle_haut(4)  # affiche un triangle tête en haut
#
##
###
####
Triangles

Compléter ci-dessous

###(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

Solution

Attention

L'ordre des instructions est bien sûr important !

Python
def triangle_bas(n):
    """Affiche un triangle tête en bas"""
    if n > 0:
        print("#" * n)
        triangle_bas(n - 1)

def triangle_haut(n):
    """Affiche un triangle tête en haut"""
    if n > 0:
        triangle_haut(n - 1)
        print("#" * n)

Exercice 8 : Si vous avez du temps ... problème de la grenouille⚓︎

🐸

Une grenouille doit monter un escalier. Quand elle saute pour monter, elle monte de 1 ou 2 marches.
Combien de chemins différents existent-ils pour un escalier de n marches ?

Vous êtes en complète autonomie pour cet exercice facultatif.

👉 Montrer au professeur votre solution, ou vos tentatives.

La fonction nbre_chemins prend en paramètre un entier n que l'on garantit strictement supérieur à zéro.

Compléter ci-dessous

###(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 : 20/20

.1280136ra37 =+pcRgNvèu5zl:tShf0(CA/ms1_iq2now;ekyd4).P,éb-050S0P0v0d0I0t0F0g0k0t0d0F0F0h010v0I0j010406050F0q0E0E0d0c0R040w0M0t0q0^0M0L0g020d0E0j0O0g0l0P120c0J0q0P0F050D0 1113150}0j04051A1t1D0D1A0}0S0I0o0-0/0;0?0/0L0m0q0d0m0P0!0j0R0v0x1c0g0x0I0m0x0t1)0x0v0{050(0Z0t0P1M0:0=011(1*1,1*0v1=1@1:0v0c1B1!0-180F0j0d0L0?0K011_1O010y0*0P0L1g0P1:2b2d2i1{2l1@2o0E2q040a0g0W0c0M0j0M0F0I1b1d0$290c0c0P0k2L1t2s0L1B0D1!2X2527261;0S2u1P0I0L2n2I1:1J1L0.1`2+2-0L0M2;1:0j2Q1B2V2X310~2c1d2?2j2`0c120t1:0d1%2Q0y0?030H0H0k2{0P1,2_0M0!0G0z3s0{0G1t0d32350|342t371{393b3d3f0P3h013j3l3n3p2.3s3u2g040K3y3A2d3C2V2*013H0d3c1B3e0x3g3i3k3m0$3R2`3T0!0e0{0e3Y2U3B0}3$3F0?3)3+053-3/3N3;3Q2,3S3t0!0T0{0T3~1u403D361N3G0M3a3*3J3.3L3:3P3?4d3^4f0r0{0r4k3141353%454u493O3=3o4A3r4f0b0{0b4G4m424p444r3I3,3K3M4O4c3q3_0f0{0f4X3!1E2 1t2;2!0S272)43014P2:1K1B2~0P303B3 4?4P572t0I0S0?3k2V3_0G3J5e5g4y4Q4-4f5k0g2y0P5n4P3@4S3u5k2X3z4n3%0Q0{0$0y592W5E4 0N0{0g5K5c4o2@3(0y0{0L0Z2Q3l0x1m2,1s4l4?4Z5U0`040A5R5M4!3(5X5;5,2j5.0U0u5R0}5*5L3$5m015h353_3V470g644b4z5q3U2h5u5w4,4e6g5C040g6p5Q5`1{5G040I5J616o5=5U0L5^6y6r4J4 0M0{0h0h5R6F3E5?0E0I3w5_6G5?5.5~6y6033635f650H5i4f3{4(6c5o5y3_3{5t2p6j6e6l3`1:0D3z6q6~6N5T2j6u2Q0v0q0c0L6M6A2j6Q6S6Y6T5d6$662d3_4h6,7h6.4R7k6h6?6%5x7p4f7l3Y6~7a6t0{4Q6x31704K6D7F7A0?6I046K796s0?7c3W7f711{6W5 7U6b7n6)3u4D7m6@5p6_4D6=2z7*6/4C6{6}6 6p7K01730%76786E7`7S3X7e6y5E6-7$0!4U7)7t6k4B3u4U7.5v8c6^8e897?6o6q7`6u3o0F0P7Z4 7X846!4J87674f4/8b6d7+8l4/8h7:7v3u8E7y7^7G4 7|75777P6U6B5X5Z0P5#5%0L5)8z6O5-0{5:857Q5@047 7J8:7M0!8W8+7b6R043x8/8X5{0{0U8{7V7L0{0i967H8=8!8$6Q8(8v6V8-9i8Y8=9b6H0{8`808:829l9304958y580D5b4@564_531t0v4|9H2%2Y0d1?9E0D4`1z5S3%2Q0E0H0y0d0Q8#0x6+1l1n1p1r0g6X331G3C2;3%0d0S0E1c2K0I1$0S2d1V0c0{1z9=9@9_2L0!0^0v23040C212n2T9/9S0B0%0v1^0F181a9{1d0c0Y0k762J0o1^2~2{0q2K0g0q1d250p0,0m0c2d2)2`0E8!0g0S000d0j0j8s0g1p0I5t001r0v0g2c0,0S0q0g0v0M1a0g3L2l0k0d0k0P0X0-13aP9+a?0tat0+7!ae0I9*0,am0La$ar3*0I0F0Y0,arat0cav1maea%192J0Pau0g0y0Mbd0V0g0waY0oa.0,ak0Fak0s0-ajalan2La%a.0caC1daIaK5t0MaN2Qa}0g1n0k5$0Fa`a^0/a%2Q0L0SaJ0g0Z0P0d0q3m0q0jbXak1hb$0ga.bs0Pb.010j1Qaka02D1Z1#0L0V1E3C1A0nbB0g0Y751Jc11c0,c40qbC132)b)0~251c0m04aybR1wbL0S0R2yb51q2Ucw1R04ccag9F0o3C9Q0%0)0+04.

Autres exercices :⚓︎

Exercices CodEx sur la récursivité

Crédits⚓︎

Franck Chambon