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

.128073.128013qnié4 p0Cts5vb(;)gIwFah:+xT2ce,fd67m=]3y_9u8[/1Plo-RrSk.050I0F0l0x0e0Y0m0h0E0Y0x0m0m0M010l0e0i010406050m0S0L0L0x0$0P040%0Z0Y0S0}0Z0d0h020x0L0i0r0h0#0F170$0c0S0F0m050V1416181a120i04051F1y1I0V1F120I0e0o0=0@0_0{0@0d0t0S0x0t0F0!0i0P0l0y1h0h0y0e0t0y0Y1.0y0l10050-0p0Y0F1R0^0`011-1/1;1/0l1`1|1^0l0$1G1)0=1d0m0i0x0d0{0D011~1T010H0/0F0d1l0F1^2g2i2n202q1|2t0L2v040b0h0X0$0Z0i0Z0m0e1g1i0+2e0$0$0F0E2Q1y2x0d1G0V1)2$2a2c2b1_0I2z1U0e0d2s2N1^1O1Q0?1 2:2=0d0Z2_1^0i2V1G2!2$36132h1i2{2o2 0$170Y1^0x1,2V0H0{030Q0Q0E300F1;2~0Z0!0j0!0W100h0W1y0x373a11392y3c203e3g3i3k0F3m013o3q3s3u2?3x0!2l040h0D3E3G2i3I2!2/013N0x3h1G3j0y3l3n3p3r0+3X2 3Z0O3B0O3)2Z3H123-3L0{3:3=053@3_3T3{3W2;3Y3y0g3B0g441z463J3b1S3M0Z3f3;3P3^3R3`3V3}4j3 3y0n3B0n4p36473a3.4b4z4f3U3|3t4F3w3y0J3B0J4L4r484u4a4w3O3?3Q3S4T4i3v3Z0K3B0K4$3+4N3K4)3/4+4y4-4A4/4h4E4=3y0T3B0T4`2#4|4t2|4 4x4c4e4B4g4D4V570!0R3B0R5c3,4O495h4,4d4.4C4U3~4X3z0j100W0j5u5e4P505j5B5m5D4W3Z0W3A045V5L4s5N5i4R5l4:564k3z3#0W3(0V3F454{5!5x4Q524S555o5+0W415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3d5O5%6o5S5p0W4Z5X4#6v381L341y2_2)0I2c2.5x4U2^1P1G330F353H6i1G4U6!2y0e0I0{3p2!5U3P6+6-6p5T3y3A0h2D0F6?6D5~1^6h6y200(100+0H6$665g0v3B79734a0H102V0E0y0F0$7k0F7e5w4~0 040q7q4}6l100:0l7w5f2o7t0G6$0h7a3d100B7C3.7t0s0z6$126w2#5!6=016.3a3Z3#5A7X5|6q3y2l6{2u6~6c4G3!715;7f017c3$0h7|7N5x0m0I10021u0Z0l0r830S858784867S7N7(0Q6/3y607%6,7Y6@5p417-2E7/5*7;8k727r5g803B7|0h0k0,0l1}0H1h2X0e1+2V0d0o0Z0e1}0C0$1v0h2O0h0B0h1w0l0h0I2i0;7A0G8!8$0w3;0m1}2O2 0d8e7U6)1i8g8i0!6e8l8t5}7;4m8r6}8n6 947?8{3.8A7{7|2J0f3r0d1O2Q0h0z8Y9n0h2;0l8,7A9q1;0m8$0,0h2a0e0f1}2s0h4w0I2V0=2K0e0_2i7B8`7T383-8}7!4H6;8m7)6^0!4I96927*9$9b7J209e8C2I2N0l9j9l8L1i9o0E8F8H8J9m8N8P8R8%0S9B0P0i1}0p0Z1d9E8^9R8f9Z8h9W0!6G91987:5F4Z9(an8uap9,7^9/8C888aaz86aB0r8_9T4O9V2i4?9Y9)9#4@ar9!5p4@2$3F9S6#9Uah8~594-8g995F59aP8o5+a!3)9:9-0{75040e788`7I7^0d0p7z2s7~7s107v8`a:3/7z9yb05g7P7Hb50Z100M0Mbc7^0L0e105Kb47^7t7RafboaHaYaj5ra#aha%3Z5ra*bA3ybxa.9:8Cb5a=2V0l0S0$ae36a`8y2o0(0E108/0:7pbsaG6*bvaJ6_5HbyaM6E5HbDao5Ub+bH7}a{100LbibT20be04bha_b5a|a~bQaWb}0{7tb3b$7D3Mb79Qcc7O100sb|7x2ob 0V0Vclcd0{bk105/4Mag6?8~5VaLas935FcBb:at5U5Wb@bScm7410a@cr4Pcfb97E100UcUce04b{btcNc9100NcR5xb bgc+677LcYc(04brcxc$8|b(0d5U7$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 020Y8ddYc8b6047MdRb1c@dp3+7Wc|5U90d0bzd23z95dzdw7;0W90d9dadF5xddbNbPc/7y047j7l7n7ldUcadU0ddMch5x7tdQemc:c!eacn100Aet20cu5Xeh100z0N7Gd(c%d*d,eqbacjd:7VaXdsb)3z6samd cF9%d~a+e0eTe3b^d)dHbZeBd/b#dqc{eQc}6_ald_d6e0aqeYbE3zale$bIbK7idee9eGdjekec2Wee7oe+cbe.cS047Ae+0Uc^fedSesd-eL04eEex4ac;focV04cke-d;0V6(1J6M0V6O1y0l6QfH2,2%0x1{6Z6N6W1E9c5x2V0L0Q0H0x0(0F0Q0y601q1s1u1w9n791L3I1F0a0h0u0Y0h170d1u0.8$1|0;056(bMdf1y6(0h0)g81J3IfF0,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

.128013fdq6nmi7é4=3y_ 9pu08Cts5/v1b(P)l;goEwF-ah:rTxS2cek,050c0X0w0O0h0G0x0p0W0G0O0x0x0l010w0h0r010406050x0s0g0g0O0R0n040U0J0G0s0@0J0f050z0~1012140|0r04051k1d1n0z1k0|0c0h0A0,0.0:0=0.0f0I0s0O0I0X0N0r0n0w0P1b0p0P0h0I0P0G1P0P0w0`050%0C0G0X1w0/0;011O1Q1S1Q0w1Y1!1W0w0R1l1K0,170x0r0O0f0=0V011$1y010b0)0X0f0O0g0X1W1{1}221(251!282a0`0a0p0E0R0J0r0J0x0h1a0f0p0#1_0R0R0X0W2v1d2d0f1l0z1K2I1=1@1?1X0c2f1z0h0f272s1W1t1v0-1%2S2U0f0J2Y1W0r2B1l2G2I2/0}1|2w2!232(0R110G1W0O1N2B0b0=030o0o0W2)0X1S2%0J0N0B3d0`0p0B1d0O2:2?0{2=2e2^1(2`2|2~300X32013436383a2V3d0N20040p0V3j3l1}3n2G2R013s0O2}1l2 0P313335370#3C2(3E0m3g0m3K2F3m0|3O3q0=3R3T053V3X3y3Z3B2T3D3e0k3g0k3,1e3.3o2@1x3r0J2{3S3u3W3w3Y3A3#3~3%3e0y3g0y442/3/2?3P3?4e3`3z3!394k3c3e0e3g0e4q463:493=4b3t3U3v3x4y3}3b3E0i3g0i4H3M4s3p4K3Q4M4d4O4f4Q3|4j4T3e0u3g0u4Y2H4!482#4%4c3@3_4g3{4i4A4/0N0q3g0q4@3N4t3;4|4N3^4P4h4z3$4C3d0t0`0B0t594_4u4(4~5g515i4B3E0B0B5n3i0z3k3-4Z475s4}4w504R4.3 3d3G0B3J5E3L4^5I5c4v4*4x4-535P0B3)045)5q5X4$5Z5f4+5h4S5(415+435U5G5W4J4{5:4 4,525j5z4n5+4p5|455H5 2_5t5L635x540B4E5+4G6a4r5.606f5!5M5$653e0B4V5+4X6o4I5b5/6s5;5#645y6x4;5+4?6C6c6E6r5K6t6h5@4l3d565+586P5~6R6e6T6H6u6J540V5m046/5-6d4a6*625?5O6X0V5B6;5D5F6b6%4#6S5e6`5w6W5k0V3G7c591o2-1d2Y2L0c1@2Q5c4z2X1u1l2,0X2.3m5}1l4z7v2e0h0c0=352G5z3u7C7E6-5(212j0X7K6i7M2I5F6@0=0Y0`0#0b7x6q230L3g7#7V3Q0b0`0X0x0w0o1|0h0R7*6(1(0_040D7_752_0`1c737A4`237|0Q7x0p7$3r0C0`2T0w7 867{0`0F8a8c0=0J0`0N020I0w0H8n7+0f8e040C0J178i3P887x0|845I7J017F2?3E3G5f8M6v6K3F7N297P8N7L6}1W5|7+7(3H0p8,8F5c0x0c0`020d0s0J8v8?8^8`8@8_8w848J2;3O8T0o7G3e5*8S7D8!7R6X3)0p7O7Q7a3(8%7U7`0=8:3g8,0p0v0$0w1#0b1b2D0h1M2B0f0A0J0h1#0S0R0s1#2t9g0p7/0w0p7?0R0Z0p0M3S0x9L2T1b8I8F95970N5_9a9i6|5k419g8Y9-5%6X9+8(9n019p8+8,2o0j370f1t2v0Q9N9P0p0s2w270@0X0R9R2s2u0h0b0p0J0s9g0s0G9$8K949b8O1}3E679,9c9j4m8X2a9?6w0Nay9`801(9}9r2n2s0wa2a49A0fa60.0p0A3S0X0saf2B0wam0R0f0j1#a82y0w0n0r1#8C17a,836pas4t9(8P4D7Iau8#5k4E9;aEaA9.3E6l3,7+aM9r0K0T0X0g0r1!0p89919%b29)6zaz8U544Vb68Zbu5Pbs5U927wat7K9)6Mbtb33E4;bxaF8VbIaJ8j9o8;9~0p8t8`8u0HbX0H9O7:7=0(0R0D0k8mboa|7Bbqa 55b1bO5456bNb89@5k6Zbc9{be8,9I9Kar93a}b=aw6x6:bJ9d5k5oaDbybKcc9l853Pc3bWbZb#b#b%7;9S0D0yb.a{c8b;bGb?5Ab^b}aGcFb|bz6XcF7Tcn8/bUaN9W0*0Xc7bEc9cDcb5QcGcLcg20cKckc#cO8o9|cR9rcscrbZcub)7@0D0tcz46b:2wa~c!5)c$c+d3c*cf5z99bRcoc:c49JcVb/cBd0ca0f5z9+2 95d86x9:9hcH8V0B9_3kbD3M8Ldk66d4dq3d4nd7aBdGcmc.cp8{8 dO8}8|90cAcXcC8!9)6kdEdJdZdIb96xbb5UaNc.7X041%ae8h848b8y828x9{8q04b#0ld`aK0=0g0h0`5pd?c.7|0Z8.4$0x6 02030m0q0Hab7:a9ab0fadaf2r2t0@akamao0GefehdTc~di0pd1dl6xbsdob2dF6ycib_5(bB3kd,7+d.aje0bS3Qd_e77+d|0ld eZ9{e3e5eb4{8HdhdVdjcZeF3dbIeIeNcMbMdtc%5zbQeQaN9rd-0`a%a#a`3md@9{0Y0W0`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/0wf;fAeW0f7.b(9SfP8k7}gI3=eYfKc.d|0Nf=5cfN5TeC5c7|c}5H8K0z7z7g7u7i7r1d0w7lg,2O2J0O1Zg)0z7j8J0#0%0)0x04.
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

.128013fdq6nmi74=]3y_ 9pu08ts5[/v1b(P)l;gowL-ah:+rS2cek.050c0V0v0N0h0G0w0p0U0G0N0w0w0k010v0h0r010406050w0s0g0g0N0R0n040S0J0G0s0=0J0f050z0|0~10120`0r04051i1b1l0z1i0`0c0h0A0*0,0.0:0,0f0I0s0N0I0V0M0r0n0v0O190p0O0h0I0O0G1N0O0v0^050#0C0G0V1u0-0/011M1O1Q1O0v1W1Y1U0v0R1j1I0*150w0r0N0f0:0T011!1w010b0%0V0f0N0g0V1U1_1{201$231Y26280^0a0p0E0R0J0r0J0w0h180f0p0Z1@0R0R0V0U2t1b2b0f1j0z1I2G1:1=1;1V0c2d1x0h0f252q1U1r1t0+1#2Q2S0f0J2W1U0r2z1j2E2G2-0{1`2u2Y212$0R0 0G1U0N1L2z0b0:030o0o0U2%0V1Q2#0J0M0T0M0B0^0B1b0N2.2;0_2:2c2?1$2^2`2|2~0V3001323436382T3b3b0^0T3h3j1{3l2E2P013q0N2{1j2}0O2 3133350Z3A2$3C0m0^0m3G2D3k0`3K3o0:3N3P053R3T3w3V3z2R3B3c0j0^0j3(1c3*3m2=1v3p0J2_3O3s3S3u3U3y3X3`3Z3c0x0^0x402-3+2;3L3/4a3?3x3W374g3a3c0e0^0e4m423,453.473r3Q3t3v4u3_393C0i0^0i4D3I4o3n4G3M4I494K4b4M3^4f4P3c0u0^0u4U2F4W442Z4Z483:3=4c3@4e4w4+0M0q0^0q4:2G2*0V2G2W2J0c1=2O3-014v2V1s1j572,3k3)3I054v5m2c0h0c0:332E3C3e4K5u5w4~3Y4y3d1 2h0V5D4v5F5z1U0z3i433L0W0^0Z0b5o2F5S5f0K0^0p5Y5s4?2@0b0^0G191A0V0s0R5)5!4Y0@040D5^4F4@0f0^1-0V0N0s5~4p5f5{0P5)5(5 2@0C5.0h0w0v674X4@5{0F6c5_4@0J0^0M020I0v0H6q6e3p6g042R6k415p6B0:6a5)0`6H5Z3K5C015x2;3C1~5B5v6S5E4x6V5I275K6Z5M6#3c6W3(6J015$040p6@5(6O5*3L0w0c0^020d0s0J6y70727471736z6`6N2/6Q6Y6T1{3!3s6R4)4 3{0M3#0p5J5L4O7n3#2G5R6:6}5%6^0L2}0b192B0h1K2z0f0A0J0h1Z0,0p5/1z0s5=0R2v1Z63656M6l2u7k0o5y3|7j7f6!503}7q6(7s4*7n3}7w6{5f7z6?6^75797 77767a4n7#0p7%7)0M4j6X7=7m4h8a6%288d5N4i5P3i6^6d684Y5U6E5X6`8p6m2@620N1X64668v6r216t040k0k6A8q6n0^0y0l6b7b86886U4z7+8j6,0M4A7:8i6*7t8f4A7_8o8o8F1$8s2z0v5?1a8E6:0g0h0^0t7!6`5S8U7h3c4R8c8(7?8f4R8$6)7l8k0M953G8.6:8s370w0V86690^8R85907e5D894-969d8Z4-9b8Y509x9h8-6@8/3.8z8B7Z9t8M8G0^0X9o4Y61042p0r9T8N5|6p8S9O5t7,89529y7-7n529C978e5G9,9G9H9J018;0!8@8L8x1$8{3fa05+1$8H0Qa54q5.5:7T5?9Z215{5}9(a69K047Y8D7d9P1$6o8 2/0z5r1m2+1b5a1b0v5caC2M2H8A1Y595j6N0Z0#0%0w04.
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

.128013fdq6nmi7é4=3y_ 9puC80ts5î/vè1b(P)l;gow-ah:+rxS2cekN,.050c0X0w0O0h0I0x0p0W0I0O0x0x0l010w0h0r010406050x0s0g0g0O0S0n040U0L0I0s0_0L0f050A101214160~0r04051m1f1p0A1m0~0c0h0B0.0:0=0@0:0f0K0s0O0K0X0N0r0n0w0P1d0p0P0h0K0P0I1R0P0w0|050)0E0I0X1y0;0?011Q1S1U1S0w1!1$1Y0w0S1n1M0.190x0r0O0f0@0V011(1A010b0+0X0f0O0g0X1Y1}1 241*271$2a2c0|0a0p0G0S0L0r0L0x0h1c0f0p0%1{0S0S0X0W2x1f2f0f1n0A1M2K1@1_1^1Z0c2h1B0h0f292u1Y1v1x0/1)2U2W0f0L2!1Y0r2D1n2I2K2;0 1~2y2$252*0S130I1Y0O1P2D0b0@030o0o0W2+0X1U2)0L0N0m0N0D0|0D1f0O2=2^0}2@2g2`1*2|2~30320X340136383a3c2X3f0N22040V3l3n1 3p2I2T013u0O2 1n310P333537390%3E2*3G0m0|0m3L2H3o0~3P3s0@3S3U053W3Y3A3!3D2V3F3g0k0|0k3-1g3/3q2_1z3t0L2}3T3w3X3y3Z3C3$3 3(3g0y0|0y452;3:2^3Q3@4f3{3B3#3b4l3e3g0e0|0e4r473;4a3?4c3v3V3x3z4z3~3d3G0i0|0i4I3N4t3r4L3R4N4e4P4g4R3}4k4U3g0u0|0u4Z2J4#492%4(4d3^3`4h3|4j4B4:0N0q0|0q4^2K2.0X2K2!2N0c1_2S3=014A2Z1w1n5c2:3o3.3N054A5r2g0h0c0@372I3G3i4P5z5B533%4D3h232l0X5I4A5K5E1Y0A3m483Q0Y0|0%0b5t2J5X5k0M0|0p5%5x4{2{0b0|2D0r0X0O0w5.5)4%0{040F5|4K4|0f0|1e465u63255 0Q5.5-6a3t0E0|2V5{685(6g0@5 0!6e5}640|0w0T6l2?6o016c6s6A0f6i040x1@624u5k5 0H6D6L4%0L0|0N020K0w0J6P4$646G6I0S6Z5:1*6C6m3p6-5X5H015C2^3G3I3_0p6;4.54403H5N2b5P6=5J4C6^5U5W6A5+040p7d5-6/6A0x0c0|020d0s0L6X7l7n7p7m7o6Y6-0~7g4u6|0o5D3g3*5G5A745R767D712c5Q4T6 7E3-7h7j7c7e0Q1~0S2b0p0f0Q2z1%0w0n5^0p290_0X0S0#0p0Z0L0g0E2D7%0p0b0L0h0-7m1%0I02030m0q0J1O2D390r0h82310W0P0O0z2W7{0W140O2F0C2D0x0#5.7x6z7z7G6?1 3G427F7N4/6 427!728E6~4m0N8C7R6Q4|7i5,7V7X7Z6w0w7$2A7)7+6%7;0t8h3 8l8n8p8r0p810p8385871O0c7~0w0p0S0j0r0j0w7/8t7w6K5y8y7B6@4n3w7A7I554o8I7M7H7O8M4o2K798Q258S7U7d7q7u9u7s7r7v4s962y7A7C0N4F8D9j8F8M4F9h736}5S4E789s6f9p1*5Z040h5$6-9T6!2{666)3Q6S040l0l9)5k0g0h0|0v9/5~0|6d957y975I9E4W9H9O7J0N4W9M8K9Pa59R7eac9#6*0@9W2D0w0s0S672;ae3Q0x5F84860Jas878u9B6{989E4=a275554=a79I8L5LaC3Lac6t259W3b0x0X9^4|6,9A9}9CaA9a569c989e6 57aHa355579n9SaN6Aah0(akam3oao5k65048XaU259+0Rb13t5?0X5^5`ay6M0|61aY4v9(9!aO1*9+0Nb50@9;3jbb9_046rbi6E6v6xbraV0|6O9|2?0A5w1q2/1f5f1f0w5hbL2Q2L0O1#5dbJ5o7x0%0)0+0x04.

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

.128013fdq6nmi74=3y_ 9pu08ts5U`/v1b(P)l;gow-ah:+rS2êcek050c0V0u0M0h0G0v0o0U0G0M0v0v0k010u0h0q010406050v0r0g0g0M0Q0m040R0J0G0r0;0J0f050z0{0}0 110_0q04051h1a1k0z1h0_0c0h0A0)0+0-0/0+0f0I0r0M0I0V0L0q0m0u0N180o0N0h0I0N0G1M0N0u0@050!0C0G0V1t0,0.011L1N1P1N0u1V1X1T0u0Q1i1H0)140v0q0M0f0/0S011Z1v010b0$0V0f0M0g0V1T1^1`1 1#221X25270@0a0o0E0Q0J0q0J0v0h170f0o0Y1?0Q0Q0V0U2s1a2a0f1i0z1H2F1/1;1:1U0c2c1w0h0f242p1T1q1s0*1!2P2R0f0J2V1T0q2y1i2D2F2,0`1_2t2X202#0Q0~0G1T0M1K2y0b0/030n0n0U2$0V1P2!0J0L0j0L0B0@0o0B1a0M2-2:0^2/2b2=1#2@2_2{2}0V2 01313335372S3a0L1}040o0S3h3j1`3l2D2O013q0M2`1i2|0N2~3032340Y3A2#3C0l3e0l3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0j3e0j3*1b3,3m2;1u3p0J2^3Q3s3U3u3W3y3Z3|3#3b0w3e0w422,3-2:3N3;4c3^3x3Y364i393b0e3e0e4o443.473:493r3S3t3v4w3{383C0i3e0i4F3K4q3n4I3O4K4b4M4d4O3`4h4R3b0t3e0t4W2E4Y462Y4#4a3=3@4e3_4g4y4-0L0p3e0p4=3L4r3/4`4L3?4N4f4x3!4A3c0s0@0B0s574@4s4$4|5e4 5g4z3C0B3d045y5o455q4{4u4~4P4,3}3c3E0B3H0z3i3+4X5D5a4t4(4v4+515K0B3%5A3)5P3J4?5T4!5V5d4)5f4Q5!3 5A415)5R5+4H4_5.4}4*505h5x4l5A4n5`435S5}2?5r5G615v520B4C5A4E682.1n2*1a2V2I0c1;2N5a4x2U1r1i2)0V2+3k5{1i4x6D2b0h0c0/322D5x3s6K6M625w3b3d0o2g0V6S6g5!1T5`6b1#0W0@0Y0b6F5,4_0K3e6/6)3:0b0@0u0J6|6@594!0?040D6 4Z5~0@19692E6:20720F0O6F0_7a6I2t6R016N2:3C3E5d7m5Y633b1}6X266Z7n6T527r6(706;3e0o7J754^200v0c0@020d0r6}0H7R7T0u7V7S7U0x2R0o0b182A0h1J0u361X0o7S1Y7g7j7i2.3M7t0n6O3b5$7s6L7B6#4j0L3%7y276!5=85805)7_6E7{827o1`3C5@818a5J853 887A7u6U3a6%5Q6^017O7I7J0L0o0y6|6|0D0s0F0y0o2y0f0A0J0h1Y0y02030l0p0H0s8V8X0H0y7h7L0o7|7~0L658n838b5i4l8s8o5Z858/7F767N7P3F7J0o8E8G6}0J0D0B8L8N248Q8S8F8#8Y8J0o0P0o8K9g8%8)7j5D8,7p4B6Q8i7C5K4C8^8;8p5i6j3*8z8B918D8F8H970S9a8O9d8T9n0D9i9k8K9j0o9U9l0F0F9n8(7^8*9s8k3b4T4M7|845i4T9A8u529.9F7G8 8C930o0Z0U0o0{0Q0o7:0g0T270o2)2Q0U0=0V9p7`4r9+0f3C4/9/9w9;am1~6Y8_7v0Lan3I8f3K9r9w8-54aoau8v549@9x85aE9{8~1#9H926Xa00v0u0o0r2t240;0Va52o2q0;6.9)9q8h6S8-5m9vaG6h5kaJaq6V5k2F8y9|aP90aR7W7Ub27Yb40Hah8gajaC9t3c5z8:9^5!6Wat9B8`5i5y8x3la,baa.bc5Na;bkavbua^8=5x7E3iaR7c6*0@0ha*2,0obF3:786FbL8z0J0@0k0kbPbM010g0h0@5nbqaO0/727@4p9*bb9,3c802|9:bA6V87bjbg855#boaRbE8z6+042y0u0r0Q79bKbX0v5z9n8!8W8Yb8aAa-7Ba/8mb=apb@3c8rb`aKbm8m5)c0a~0/c2360vagb%7M1#b*ch7bcj8jal6V8/cna=5!8@csa_3c8|bDb 7K8z0f0@0g6}bIbWbRbTc*cy3O6{968*5a7274cE4sbO7jbQc.bS040Lc-b(bYb!5Ac=710@0FcI7k8+b.cM3c9EcPbw8v6ias7zcQb|9EcwcYc}d3c2c4c6c83kdtcF0/cb7Qcf0H0D9nd2dB01c 0PdJc`04c%a)dO5adMdT4!dD049n9XdIc|bXdVd%c!c$c(bJdzd(0@dNd*c.dY9n9$dFdb1a6H1l6p0z6r1a0u6te32L2G0M1W6C6q6z7i0Y0!0$0v04.

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.9888qnié4 p0C!ts5vb(;)AgwFah:Tx2ce,fd67m=]3y_9àuç8[/è1Plo-RrSkD.050I0F0m0y0e0#0n0h0E0#0y0n0n0M010m0e0i010406050n0T0L0L0y0)0P040*0$0#0T110$0d0h020y0L0i0s0h0(0F1b0)0c0T0F0n050X181a1c1e160i04051J1C1M0X1J160I0e0p0_0{0}0 0{0d0v0T0y0v0F0%0i0P0m0z1l0h0z0e0v0z0#1=0z0m14050;0q0#0F1V0|0~011;1?1^1?0m1~201|0m0)1K1-0_1h0n0i0y0d0 0D01221X010H0?0F0d1p0F1|2k2m2r242u202x0L2z040a0h0!0)0$0i0$0n0e1k1m0/2i0)0)0F0E2U1C2B0d1K0X1-2*2e2g2f1}0I2D1Y0e0d2w2R1|1S1U0`232@2_0d0$2}1|0i2Z1K2(2*3a172l1m2 2s330)1b0#1|0y1:2Z0H0 030Q0Q0E340F1^320$0%0o0%0Z140h0Z1C0y3b3e153d2C3g243i3k3m3o0F3q013s3u3w3y2`3B0%2p040h0D3I3K2m3M2(2?013R0y3l1K3n0z3p3r3t3v0/3#333%0O3F0O3-2%3L163;3P0 3@3_053{3}3X3 3!2^3$3C0g3F0g481D4a3N3f1W3Q0$3j3^3T3|3V3~3Z414n433C0o3F0o4t3a4b3e3=4f4D4j3Y403x4J3A3C0J3F0J4P4v4c4y4e4A3S3`3U3W4X4m3z3%0K3F0K4*3/4R3O4-3?4/4C4;4E4?4l4I4_3C0V3F0V4~2)504x30534B4g4i4F4k4H4Z5b0%0R3F0R5g3:4S4d5l4:4h4=4G4Y424#3D0j140Z0j5y1N381C2}2-0I2g2=5B4Y2|1T1K370F393L493/054Y5)2C0e0I0 3t2(3%3E4;5;5?5r5I5_2q2H0F5}5H4!602*3J4w3=0+140/0H5+2)6a5B0w3F6g5/5j3h0H141A0m0Q2l3y0I2O2I6m6i5213040r6A4,5k0d140L0$0m6G5A6C140t0A6m164u5,3;5|015@3e3%3)5E6Z595s4o3(612y644^6-6(0X696H2s6k3*0h6~6O515k0n0I14021y6M0s760T787a780,0f0m0F3j4n0h2S0h6L0m0h6s0h0T1m6v2^6x0$2I7d0m79777B7A0s6U701m6*0Q5^3C455{5=6!5~667N6/2I6;5a6-7O3-6V3c6Y7Q6#2m3%4q7P7X6,4K0%4q0h627/5 4p1|6^6}6 6`246c040e6f6W2)0h6B6I0q142G7I3=6D6F866n4T6K6M8e5B6D0t6m88800 0$750#7B8r892s0L0e143,8i8A246D6T8i7$5*7(5}7M3B3T7K655t4M7@6:7R8U6-4M687~6~8)8H0 822Z0m0T0)0d8z8t010+0E140B0)1z7H8G8O7R8Q4%7.8Z6=7;4%8X7W967Y987|3J8)8s6P5k823x0n0F8n6Q048K4Q8e7K8Q4{956+7`0%4{9a639c7:5J9x3-9h9h8+8^14848?9j3h8l6N909R8I140W9p5k8C145O9V712s6D0N9Q9*248v040l0M9.6o3Q9T9!9+9Y9|9:140%9 0 9$043H9)9_0 9,9s4va80h9v6$5c8S7)7S5t5d9D7_7T0%5d8%9Kau9i9/8,148.8:8=8iawa98^8`040x3^9n8 7%4Sag7+3C5v9yal6-5vao9F9AaS9Jav9M9l0@9oae8o14ac4 9uak8Q5Najap5ta?aX9zaqa?atav9L8@8-0:aB9^8k046s6u3^7w6ya*aNax018ga33?9{a+9q9Zbm9#8Da6bj8Jbj9;a2bp8Bbra7bfaF9,8q8L6A0X5.5Q5(5S5#1C0m5VbO2:2+0y1 bL0X5T1I8j5B2Z0L0Q0H0y0+0F0Q0z7O1u1w1y1A0ha.6h1P3M0/0;0?0^5B337h0h0I0f0i1^0f2z0h2P2w8u0i2w144b191w1e0u1j2Z2X2Z2#0e1/2Q0}0ebV2%ci1Gb{1T3=1Z1#1%1)1+1-1/261@1_1{b!522F2w2y140!1,1.aC3c5%6n3.6hbJ917*0d0%0J3Da@aY66c,3Ea{aU43c;2q575G973Ac_8%a%6d3Vbj6|88by3Q6qb80n6t7v0d7x6zd7aa148hbCb77obt6Rb^3MaeaPc*c,6(3n8Tc}c+6.c?8!c^dBc{5qdDc~6.d08@0n3)7F7f7h7j2_7l0e7n6M7qdb7s7ubbdebd7FaM8NaOa;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;0M9@fNenbkeC8meE9~exbwfTbAdo049-f(bg0$6|2m0IfZ9Sdadcd$dfflfqf)biexfPf,fW9}04bogc24a5bBd+bgbuf/a1f;5Mf?0NbF9t8GbI3w2*cZbM0p3M1Jb:1c770d0^b=0h0{c30F0T0C0e0Y2I0h2l0)11210I0T885.f}1C5.0h6F5.b9ddg40r7o0W0Z0A3Dgsg%gx0t7@219n0)3n0f0p3^0Tc87q1mcUcI1mgJ7m5-gxg:0j0N0hf$dW0m0Wg@g_0/3*7rh1h30f0h0Sg!gx8|8~gwhpg)hs1i0y2UgT1c1A9n0T9n0t0-1Ndrb|0=0@cA2~520y0I6L0d2Tcr1m0w1ch#1!cg1L3=hYh!h$1l0%110m2c04gE1xhA1Q1L040b0h0k0:c20n1h1jh%hv0h0q0|gX213v0i0eif0h010n1^0E1A2q0r2e2m0E0zb?2w0h0Hg 0d0U0=0ng{0d007r2l0^3V2u0E0yip0G7@0$hM0h0p7i2OgHgT1i0^0;0)2=7t210L7g1.2Wc6iUiM0eiOip0h0yiW0EgKb?7wi?1AhPb`6VbY5S0:hT0n04.

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

.128013fdq6nmi7é4=3y_ pu0Cts5/vè1b(P;l)Agow-zahR:+rS2cekN,.050c0W0u0N0h0F0v0p0V0F0N0v0v0l010u0h0q010406050v0r0g0g0N0S0n040T0J0F0r0^0J0f0p020N0g0q0E0p0P0W120S0d0r0W0v050x0 1113150}0q04051A1t1D0x1A0}0c0h0y0-0/0;0?0/0f0I0r0N0I0W0L0q0n0u0O1c0p0O0h0I0O0F1)0O0u0{050(0B0F0W1M0:0=011(1*1,1*0u1=1@1:0u0S1B1!0-180v0q0N0f0?0U011_1O010b0*0W0f1g0W1:2b2d2i1{2l1@2o0g2q040a0p0D0S0J0q0J0v0h1b1d0$290S0S0W0V2L1t2s0f1B0x1!2X2527261;0c2u1P0h0f2n2I1:1J1L0.1`2+2-0f0J2;1:0q2Q1B2V2X310~2c1d2?2j2`0S120F1:0N1%2Q0b0?030o0o0V2{0W1,2_0J0L0A0s3s0{0A1t0N32350|342t371{393b3d3f0W3h013j3l3n3p2.3s3u2g040U3y3A2d3C2V2*013H0N3c1B3e0O3g3i3k3m0$3R2`3T0L0m0{0m3Y2U3B0}3$3F0?3)3+053-3/3N3;3Q2,3S3t0L0k0{0k3~1u403D361N3G0J3a3*3J3.3L3:3P3?4d3^4f0w0{0w4k3141353%454u493O3=3o4A3r4f0e0{0e4G4m424p444r3I3,3K3M4O4c3q3_0i0{0i4X3!1E2 1t2;2!0c272)43014P2:1K1B2~0W303B3 4?4P572t0h0c0?3k2V3_0A3J5e5g4y4Q4-4f5k0p2y0W5n4P3@4S3u5k2X3z4n3%0X0{0$0b592W5E4 0K0{0p5K5c4o2@3(0b0{0f0B2Q3l0O1m2,1s4l4?4Z5U0`040C5R5M4!3(5X5;5,2j5.0G0Q5R0}5*5L3$5m015h353_3V470p644b4z5q3U2h5u5w4,4e6g5C040p6p5Q5`1{5G040h5J616o5=5U0f5^6y6r4J4 0J0{0l0l5R6F3E5?0g0h3w5_6G5?5.5~6y6033635f650o5i4f3{4(6c5o5y3_3{5t2p6j6e6l3`1:0x3z6q6~6N5T2j6u2Q0u0r0S0f6M6A2j6Q6S6Y6T5d6$662d3_4h6,7h6.4R7k6h6?6%5x7p4f7l3Y6~7a6t0{4Q6x31704K6D7F7A0?6I046K796s0?7c3W7f711{6W5 7U6b7n6)3u4D7m6@5p6_4D6=2z7*6/4C6{6}6 6p7K01730%76786E7`7S3X7e6y5E6-7$0L4U7)7t6k4B3u4U7.5v8c6^8e897?6o6q7`6u3o0v0W7Z4 7X846!4J87674f4/8b6d7+8l4/8h7:7v3u8E7y7^7G4 7|75777P6U6B5X5Z0W5#5%0f5)8z6O5-0{5:857Q5@047 7J8:7M0L8W8+7b6R043x8/8X5{0{0G8{7V7L0{0R967H8=8!8$6Q8(8v6V8-9i8Y8=9b6H0{8`808:829l9304958y580x5b4@564_531t0u4|9H2%2Y0N1?9E0x4`1z5S3%2Q0g0o0b0N0X8#0O6+1l1n1p1r0p6X331G3C2;3%0N0c0g1c2K0h1$0c2d1V0S0{1z9=9@9_2L0L0^0u23040H212n2T9/9S0t0%0u1^0v181a9{1d0S0j0V762J0y1^2~2{0r2K0p0r1d250z0,0I0S2d2)2`0g8!0p0c000N0q0q8s0p1p0h5t001r0u0p2c0,0c0r0p0u0J1a0p3L2l0V0N0V0W0Z0-13aP9+a?0Fat0+7!ae0h9*0,am0fa$ar3*0h0v0j0,arat0Sav1maea%192J0Wau0p0b0Jbd0!0p0TaY0ya.0,ak0vak0M0-ajalan2La%a.0SaC1daIaK5t0JaN2Qa}0p1n0V5$0va`a^0/a%2Q0f0caJ0p0B0W0N0r3m0r0qbXak1hb$0pa.bs0Wb.010q1Qaka02D1Z1#0f0!1E3C1A0YbB0p0j751Jc11c0,c40rbC132)b)0~251c0I04aybR1wbL0c0n2yb51q2Ucw1R04ccag9F0y3C9Q0%0)0+04.

Crédits⚓︎

Franck Chambon