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.
.128073.128013]ik[v8o-)yqxb.I+g=mT4rs97f,d :FC5hwtcl0p_P3(a;R/eS612énu050D0Y0L0U0d0N0y0E0M0N0U0y0y0t010L0d0P010406050y0)0u0u0U0x0l040Z0i0N0)0}0i0(0E020U0u0P0V0E0W0Y170x0m0)0Y0y050X1416181a120P04051F1y1I0X1F120D0d0g0=0@0_0{0@0(0s0)0U0s0Y0j0P0l0L0J1h0E0J0d0s0J0N1.0J0L10050-0o0N0Y1R0^0`011-1/1;1/0L1`1|1^0L0x1G1)0=1d0y0P0U0(0{0$011~1T010B0/0Y0(1l0Y1^2g2i2n202q1|2t0u2v040b0E0R0x0i0P0i0y0d1g1i0+2e0x0x0Y0M2Q1y2x0(1G0X1)2$2a2c2b1_0D2z1U0d0(2s2N1^1O1Q0?1 2:2=0(0i2_1^0P2V1G2!2$36132h1i2{2o2 0x170N1^0U1,2V0B0{030Q0Q0M300Y1;2~0i0j0O0j0#100E0#1y0U373a11392y3c203e3g3i3k0Y3m013o3q3s3u2?3x0j2l040E0$3E3G2i3I2!2/013N0U3h1G3j0J3l3n3p3r0+3X2 3Z0S3B0S3)2Z3H123-3L0{3:3=053@3_3T3{3W2;3Y3y0w3B0w441z463J3b1S3M0i3f3;3P3^3R3`3V3}4j3 3y0I3B0I4p36473a3.4b4z4f3U3|3t4F3w3y0!3B0!4L4r484u4a4w3O3?3Q3S4T4i3v3Z0A3B0A4$3+4N3K4)3/4+4y4-4A4/4h4E4=3y0h3B0h4`2#4|4t2|4 4x4c4e4B4g4D4V570j0z3B0z5c3,4O495h4,4d4.4C4U3~4X3z0O100#0O5u5e4P505j5B5m5D4W3Z0#3A045V5L4s5N5i4R5l4:564k3z3#0#3(0X3F454{5!5x4Q524S555o5+0#415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3d5O5%6o5S5p0#4Z5X4#6v381L341y2_2)0D2c2.5x4U2^1P1G330Y353H6i1G4U6!2y0d0D0{3p2!5U3P6+6-6p5T3y3A0E2D0Y6?6D5~1^6h6y200e100+0B6$665g0K3B79734a0B102V0M0J0Y0x7k0Y7e5w4~0 040T7q4}6l100:0L7w5f2o7t0C6$0E7a3d100n7C3.7t0k0F6$126w2#5!6=016.3a3Z3#5A7X5|6q3y2l6{2u6~6c4G3!715;7f017c3$0E7|7N5x0y0D10021u0i0L0V830)858784867S7N7(0Q6/3y607%6,7Y6@5p417-2E7/5*7;8k727r5g803B7|0E0H0,0L1}0B1h2X0d1+2V0(0g0i0d1}0v0x1v0E2O0E0n0E1w0L0E0D2i0;7A0C8!8$0G3;0y1}2O2 0(8e7U6)1i8g8i0j6e8l8t5}7;4m8r6}8n6 947?8{3.8A7{7|2J0%3r0(1O2Q0E0F8Y9n0E2;0L8,7A9q1;0y8$0,0E2a0d0%1}2s0E4w0D2V0=2K0d0_2i7B8`7T383-8}7!4H6;8m7)6^0j4I96927*9$9b7J209e8C2I2N0L9j9l8L1i9o0M8F8H8J9m8N8P8R8%0)9B0l0P1}0o0i1d9E8^9R8f9Z8h9W0j6G91987:5F4Z9(an8uap9,7^9/8C888aaz86aB0V8_9T4O9V2i4?9Y9)9#4@ar9!5p4@2$3F9S6#9Uah8~594-8g995F59aP8o5+a!3)9:9-0{75040d788`7I7^0(0o7z2s7~7s107v8`a:3/7z9yb05g7P7Hb50i100t0tbc7^0u0d105Kb47^7t7RafboaHaYaj5ra#aha%3Z5ra*bA3ybxa.9:8Cb5a=2V0L0)0xae36a`8y2o0e0M108/0:7pbsaG6*bvaJ6_5HbyaM6E5HbDao5Ub+bH7}a{100ubibT20be04bha_b5a|a~bQaWb}0{7tb3b$7D3Mb79Qcc7O100kb|7x2ob 0X0Xclcd0{bk105/4Mag6?8~5VaLas935FcBb:at5U5Wb@bScm7410a@cr4Pcfb97E100fcUce04b{btcNc9100ccR5xb bgc+677LcYc(04brcxc$8|b(0(5U7$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 020N8ddYc8b6047MdRb1c@dp3+7Wc|5U90d0bzd23z95dzdw7;0#90d9dadF5xddbNbPc/7y047j7l7n7ldUcadU0(dMch5x7tdQemc:c!eacn100ret20cu5Xeh100F0c7Gd(c%d*d,eqbacjd:7VaXdsb)3z6samd cF9%d~a+e0eTe3b^d)dHbZeBd/b#dqc{eQc}6_ald_d6e0aqeYbE3zale$bIbK7idee9eGdjekec2Wee7oe+cbe.cS047Ae+0fc^fedSesd-eL04eEex4ac;focV04cke-d;0X6(1J6M0X6O1y0L6QfH2,2%0U1{6Z6N6W1E9c5x2V0u0Q0B0U0e0Y0Q0J601q1s1u1w9n791L3I1F0a0E0q0N0E170(1u0.8$1|0;056(bMdf1y6(0E0pg81J3IfF0,0.0:04.
Exercice 2 : parité
Parité
Compléter la fonction suivante qui doit être une fonction récursive.
⚠️ Il est interdit d'utiliser %
.128013witkcv8o-)yl0bqpx_P3(a;gE=/mT4rse97Sf,d 612:FC5nuéh050N0H0d0w0c0m0G0O0f0m0w0G0G0A010d0c0q010406050G0X0C0C0w0F0l040K0i0m0X0@0i0W050B0~1012140|0q04051k1d1n0B1k0|0N0c0g0,0.0:0=0.0W0y0X0w0y0H0j0q0l0d0Z1b0O0Z0c0y0Z0m1P0Z0d0`050%0o0m0H1w0/0;011O1Q1S1Q0d1Y1!1W0d0F1l1K0,170G0q0w0W0=0R011$1y010L0)0H0W0w0C0H1W1{1}221(251!282a0`0a0O0t0F0i0q0i0G0c1a0W0O0#1_0F0F0H0f2v1d2d0W1l0B1K2I1=1@1?1X0N2f1z0c0W272s1W1t1v0-1%2S2U0W0i2Y1W0q2B1l2G2I2/0}1|2w2!232(0F110m1W0w1N2B0L0=030s0s0f2)0H1S2%0i0j0Q3d0`0O0Q1d0w2:2?0{2=2e2^1(2`2|2~300H32013436383a2V3d0j20040O0R3j3l1}3n2G2R013s0w2}1l2 0Z313335370#3C2(3E0u3g0u3K2F3m0|3O3q0=3R3T053V3X3y3Z3B2T3D3e0E3g0E3,1e3.3o2@1x3r0i2{3S3u3W3w3Y3A3#3~3%3e0V3g0V442/3/2?3P3?4e3`3z3!394k3c3e0P3g0P4q463:493=4b3t3U3v3x4y3}3b3E0J3g0J4H3M4s3p4K3Q4M4d4O4f4Q3|4j4T3e0h3g0h4Y2H4!482#4%4c3@3_4g3{4i4A4/0j0I3g0I4@3N4t3;4|4N3^4P4h4z3$4C3d0n0`0Q0n594_4u4(4~5g515i4B3E0Q0Q5n3i0B3k3-4Z475s4}4w504R4.3 3d3G0Q3J5E3L4^5I5c4v4*4x4-535P0Q3)045)5q5X4$5Z5f4+5h4S5(415+435U5G5W4J4{5:4 4,525j5z4n5+4p5|455H5 2_5t5L635x540Q4E5+4G6a4r5.606f5!5M5$653e0Q4V5+4X6o4I5b5/6s5;5#645y6x4;5+4?6C6c6E6r5K6t6h5@4l3d565+586P5~6R6e6T6H6u6J540R5m046/5-6d4a6*625?5O6X0R5B6;5D5F6b6%4#6S5e6`5w6W5k0R3G7c591o2-1d2Y2L0N1@2Q5c4z2X1u1l2,0H2.3m5}1l4z7v2e0c0N0=352G5z3u7C7E6-5(212j0H7K6i7M2I5F6@0=0e0`0#0L7x6q230b3g7#7V3Q0L0`0H0G0d0s1|0c0F7*6(1(0_040v7_752_0`1c737A4`237|0S7x0O7$3r0o0`2T0d7 867{0`0k8a8c0=0i0`0j020y0d0x8n7+0W8e040o0i178i3P887x0|845I7J017F2?3E3G5f8M6v6K3F7N297P8N7L6}1W5|7+7(3H0O8,8F5c0G0N0`020p0X0i8v8?8^8`8@8_8w848J2;3O8T0s7G3e5*8S7D8!7R6X3)0O7O7Q7a3(8%7U7`0=8:3g8,0O0U0$0d1#0L1b2D0c1M2B0W0g0i0c1#0D0F0X1#2t9g0O7/0d0O7?0F0M0O0T3S0G9L2T1b8I8F95970j5_9a9i6|5k419g8Y9-5%6X9+8(9n019p8+8,2o0Y370W1t2v0S9N9P0O0X2w270@0H0F9R2s2u0c0L0O0i0X9g0X0m9$8K949b8O1}3E679,9c9j4m8X2a9?6w0jay9`801(9}9r2n2s0da2a49A0Wa60.0O0g3S0H0Xaf2B0dam0F0W0Y1#a82y0d0l0q1#8C17a,836pas4t9(8P4D7Iau8#5k4E9;aEaA9.3E6l3,7+aM9r0z0r0H0C0q1!0O89919%b29)6zaz8U544Vb68Zbu5Pbs5U927wat7K9)6Mbtb33E4;bxaF8VbIaJ8j9o8;9~0O8t8`8u0xbX0x9O7:7=0(0F0v0E8mboa|7Bbqa 55b1bO5456bNb89@5k6Zbc9{be8,9I9Kar93a}b=aw6x6:bJ9d5k5oaDbybKcc9l853Pc3bWbZb#b#b%7;9S0v0Vb.a{c8b;bGb?5Ab^b}aGcFb|bz6XcF7Tcn8/bUaN9W0*0Hc7bEc9cDcb5QcGcLcg20cKckc#cO8o9|cR9rcscrbZcub)7@0v0ncz46b:2wa~c!5)c$c+d3c*cf5z99bRcoc:c49JcVb/cBd0ca0W5z9+2 95d86x9:9hcH8V0Q9_3kbD3M8Ldk66d4dq3d4nd7aBdGcmc.cp8{8 dO8}8|90cAcXcC8!9)6kdEdJdZdIb96xbb5UaNc.7X041%ae8h848b8y828x9{8q04b#0Ad`aK0=0C0c0`5pd?c.7|0M8.4$0G6 02030u0I0xab7:a9ab0Wadaf2r2t0@akamao0mefehdTc~di0Od1dl6xbsdob2dF6ycib_5(bB3kd,7+d.aje0bS3Qd_e77+d|0Ad eZ9{e3e5eb4{8HdhdVdjcZeF3dbIeIeNcMbMdtc%5zbQeQaN9rd-0`a%a#a`3md@9{0e0f0`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/0df;fAeW0W7.b(9SfP8k7}gI3=eYfKc.d|0jf=5cfN5TeC5c7|c}5H8K0B7z7g7u7i7r1d0d7lg,2O2J0w1Zg)0B7j8J0#0%0)0G04.
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
.128013w]itkc[v8o-)yl0bqp_.PL3(a;+g=/m4rse97Sfd 612:é5nuh050O0J0e0z0d0o0I0P0g0o0z0I0I0D010e0d0s010406050I0X0F0F0z0H0n040M0k0o0X0?0k0W050E0}0 11130{0s04051j1c1m0E1j0{0O0d0i0+0-0/0;0-0W0C0X0z0C0J0l0s0n0e0Y1a0P0Y0d0C0Y0o1O0Y0e0_050$0q0o0J1v0.0:011N1P1R1P0e1X1Z1V0e0H1k1J0+160I0s0z0W0;0S011#1x010N0(0J0W0z0F0J1V1`1|211%241Z27290_0a0P0v0H0k0s0k0I0d190W0P0!1^0H0H0J0g2u1c2c0W1k0E1J2H1;1?1=1W0O2e1y0d0W262r1V1s1u0,1$2R2T0W0k2X1V0s2A1k2F2H2.0|1{2v2Z222%0H100o1V0z1M2A0N0;030t0t0g2(0J1R2$0k0l0S0l0R0_0P0R1c0z2/2=0`2;2d2@1%2_2{2}2 0J3101333537392U3c3c3g0S3j3l1|3n2F2Q013s0z2|1k2~0Y303234360!3C2%3E0x3g0x3I2E3m0{3M3q0;3P3R053T3V3y3X3B2S3D3d0G3g0G3*1d3,3o2?1w3r0k2`3Q3u3U3w3W3A3Z3|3#3d0V3g0V422.3-2=3N3;4c3^3z3Y384i3b3d0Q3g0Q4o443.473:493t3S3v3x4w3{3a3E0L3g0L4F3K4q3p4I3O4K4b4M4d4O3`4h4R3d0j3g0j4W2G4Y462!4#4a3=3@4e3_4g4y4-0l0K3g0K4=3L4r3/4`4L3?4N4f4x3!4A3e0p0_0R0p571n2,1c2X2K0O1?2P5a4x2W1t1k2+0J2-3m3+3K054x5E2d0d0O0;342F3E3f4M5M5O505h5R202i0J5V5g4z5Y2H3k453N0f0_0!0N5G2G5,5a0b3g5=5K4^2^0N0_0o1a1B0J0X0H5{5@4!0^040y674H4_0W0_1.0J0z0X6d59690_0T5{0P686f0q600d0I0e6m4Z4_6a0m6r6t220k0_0l020C0e0A6F6e2^6v042S6z435H6Q1%6a6q6W4?6A2v5U015P2=3E1 5T5N6+5W5(3d1 0P5!5$4Q3}3F5*5|3N5_040P756s6$715a0I0O0_020r0X0k6N7e7g7i7f7h6O780{785,6*6,1|3$3u7t6?523%6`285#6=5%7A1V0E5+6Y0;7b3g760w2~0N1a2C0d1L2A0W0i0k0d1!0-0P611A0X640H2w1!6i6k5{7q2:3M7y5Q3~7x6;4+516~3 7C296|4,807I7K6n4_7N74767j7n8e7l7k7o4p6(0P7_6-4k7|847 4j0l4l827E7~5X8p70766s7L3O0_360s7#0t7:6l788D896H0_0D6P8P3r6S1R6y8l5a6a6c7r8E6g048L8Z6o046E8N6G1%0g5S032m0k656`1!1{0*0O0U1;0X0d2A0P8+7p8l8n7v4B8q7F6}8t4C8w8r8z0l4C8B768;0;5.6T5;8:8(8G2p8J972.8O6B8Q040D8S9u8U0;6a0h0c6#8k8%4r9a0W4S9d8y6@0l4T9i9e858t4T9n8C759p019r2A0e651b9H9C1%0F0d0_5n989P5L7}0t7`0l4/6:9j9W4/9Z9V52a33I8C9+9r380I0J8,6C6p7=999 a154a49!8s5i54a87z6~aqac9)9*9v048H9y0z1Y6j8M7@9I016I040uaj2^0_2q0saR6Z0_0y8/9OaL9~5Va15m9Uax8ta*aw7G6~a*9(9)ae0_9.9:8T9?0;9^5la|5}1%aO0Bb14s60627+65aW9JaYbc8FaE9x0J8KaH1Z7;9}b2bd8.am7r0E5J5p5D5r5A1c0e5ubA2N2Iblbx0E5s7q0!0$0(0I04.
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
.128013witkcvN8o-)ylxbqp0_.P3(a;+g=/m4rse97Sf,dî è612:C5nuéh050O0I0d0y0c0n0H0Q0f0n0y0H0H0C010d0c0r010406050H0Z0E0E0y0G0m040L0j0n0Z0_0j0Y050D101214160~0r04051m1f1p0D1m0~0O0c0g0.0:0=0@0:0Y0B0Z0y0B0I0k0r0m0d0#1d0Q0#0c0B0#0n1R0#0d0|050)0p0n0I1y0;0?011Q1S1U1S0d1!1$1Y0d0G1n1M0.190H0r0y0Y0@0U011(1A010M0+0I0Y0y0E0I1Y1}1 241*271$2a2c0|0a0Q0v0G0j0r0j0H0c1c0Y0Q0%1{0G0G0I0f2x1f2f0Y1n0D1M2K1@1_1^1Z0O2h1B0c0Y292u1Y1v1x0/1)2U2W0Y0j2!1Y0r2D1n2I2K2;0 1~2y2$252*0G130n1Y0y1P2D0M0@030t0t0f2+0I1U2)0j0k0w0k0T0|0T1f0y2=2^0}2@2g2`1*2|2~30320I340136383a3c2X3f0k22040U3l3n1 3p2I2T013u0y2 1n310#333537390%3E2*3G0w0|0w3L2H3o0~3P3s0@3S3U053W3Y3A3!3D2V3F3g0F0|0F3-1g3/3q2_1z3t0j2}3T3w3X3y3Z3C3$3 3(3g0X0|0X452;3:2^3Q3@4f3{3B3#3b4l3e3g0S0|0S4r473;4a3?4c3v3V3x3z4z3~3d3G0K0|0K4I3N4t3r4L3R4N4e4P4g4R3}4k4U3g0i0|0i4Z2J4#492%4(4d3^3`4h3|4j4B4:0k0J0|0J4^2K2.0I2K2!2N0O1_2S3=014A2Z1w1n5c2:3o3.3N054A5r2g0c0O0@372I3G3i4P5z5B533%4D3h232l0I5I4A5K5E1Y0D3m483Q0e0|0%0M5t2J5X5k0b0|0Q5%5x4{2{0M0|2D0r0I0y0d5.5)4%0{040x5|4K4|0Y0|1e465u63255 0V5.5-6a3t0p0|2V5{685(6g0@5 0N6e5}640|0d0o6l2?6o016c6s6A0Y6i040H1@624u5k5 0l6D6L4%0j0|0k020B0d0z6P4$646G6I0G6Z5:1*6C6m3p6-5X5H015C2^3G3I3_0Q6;4.54403H5N2b5P6=5J4C6^5U5W6A5+040Q7d5-6/6A0H0O0|020q0Z0j6X7l7n7p7m7o6Y6-0~7g4u6|0t5D3g3*5G5A745R767D712c5Q4T6 7E3-7h7j7c7e0V1~0G2b0Q0Y0V2z1%0d0m5^0Q290_0I0G0u0Q0h0j0E0p2D7%0Q0M0j0c0-7m1%0n02030w0J0z1O2D390r0c82310f0#0y0P2W7{0f140y2F0R2D0H0u5.7x6z7z7G6?1 3G427F7N4/6 427!728E6~4m0k8C7R6Q4|7i5,7V7X7Z6w0d7$2A7)7+6%7;0W8h3 8l8n8p8r0Q810Q8385871O0O7~0d0Q0G0!0r0!0d7/8t7w6K5y8y7B6@4n3w7A7I554o8I7M7H7O8M4o2K798Q258S7U7d7q7u9u7s7r7v4s962y7A7C0k4F8D9j8F8M4F9h736}5S4E789s6f9p1*5Z040c5$6-9T6!2{666)3Q6S040C0C9)5k0E0c0|0s9/5~0|6d957y975I9E4W9H9O7J0k4W9M8K9Pa59R7eac9#6*0@9W2D0d0Z0G672;ae3Q0H5F84860zas878u9B6{989E4=a275554=a79I8L5LaC3Lac6t259W3b0H0I9^4|6,9A9}9CaA9a569c989e6 57aHa355579n9SaN6Aah0(akam3oao5k65048XaU259+0Ab13t5?0I5^5`ay6M0|61aY4v9(9!aO1*9+0kb50@9;3jbb9_046rbi6E6v6xbraV0|6O9|2?0D5w1q2/1f5f1f0d5hbL2Q2L0y1#5dbJ5o7x0%0)0+0H04.
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
.128013w`itkcv8o-)yl0bqp_P3(a;+g=/mUê4rse97Sfd 612:5nuh050N0I0e0w0d0n0H0O0g0n0w0H0H0A010e0d0r010406050H0V0C0C0w0G0m040L0j0n0V0;0j0U050B0{0}0 110_0r04051h1a1k0B1h0_0N0d0h0)0+0-0/0+0U0z0V0w0z0I0k0r0m0e0W180O0W0d0z0W0n1M0W0e0@050!0p0n0I1t0,0.011L1N1P1N0e1V1X1T0e0G1i1H0)140H0r0w0U0/0R011Z1v010M0$0I0U0w0C0I1T1^1`1 1#221X25270@0a0O0t0G0j0r0j0H0d170U0O0Y1?0G0G0I0g2s1a2a0U1i0B1H2F1/1;1:1U0N2c1w0d0U242p1T1q1s0*1!2P2R0U0j2V1T0r2y1i2D2F2,0`1_2t2X202#0G0~0n1T0w1K2y0M0/030s0s0g2$0I1P2!0j0k0F0k0Q0@0O0Q1a0w2-2:0^2/2b2=1#2@2_2{2}0I2 01313335372S3a0k1}040O0R3h3j1`3l2D2O013q0w2`1i2|0W2~3032340Y3A2#3C0u3e0u3I2C3k0_3M3o0/3P3R053T3V3w3X3z2Q3B3b0F3e0F3*1b3,3m2;1u3p0j2^3Q3s3U3u3W3y3Z3|3#3b0T3e0T422,3-2:3N3;4c3^3x3Y364i393b0P3e0P4o443.473:493r3S3t3v4w3{383C0K3e0K4F3K4q3n4I3O4K4b4M4d4O3`4h4R3b0i3e0i4W2E4Y462Y4#4a3=3@4e3_4g4y4-0k0J3e0J4=3L4r3/4`4L3?4N4f4x3!4A3c0o0@0Q0o574@4s4$4|5e4 5g4z3C0Q3d045y5o455q4{4u4~4P4,3}3c3E0Q3H0B3i3+4X5D5a4t4(4v4+515K0Q3%5A3)5P3J4?5T4!5V5d4)5f4Q5!3 5A415)5R5+4H4_5.4}4*505h5x4l5A4n5`435S5}2?5r5G615v520Q4C5A4E682.1n2*1a2V2I0N1;2N5a4x2U1r1i2)0I2+3k5{1i4x6D2b0d0N0/322D5x3s6K6M625w3b3d0O2g0I6S6g5!1T5`6b1#0f0@0Y0M6F5,4_0b3e6/6)3:0M0@0e0j6|6@594!0?040v6 4Z5~0@19692E6:20720l0S6F0_7a6I2t6R016N2:3C3E5d7m5Y633b1}6X266Z7n6T527r6(706;3e0O7J754^200H0N0@020q0V6}0x7R7T0e7V7S7U0D2R0O0M182A0d1J0e361X0O7S1Y7g7j7i2.3M7t0s6O3b5$7s6L7B6#4j0k3%7y276!5=85805)7_6E7{827o1`3C5@818a5J853 887A7u6U3a6%5Q6^017O7I7J0k0O0c6|6|0v0o0l0c0O2y0U0h0j0d1Y0c02030u0J0x0o8V8X0x0c7h7L0O7|7~0k658n838b5i4l8s8o5Z858/7F767N7P3F7J0O8E8G6}0j0v0Q8L8N248Q8S8F8#8Y8J0O0y0O8K9g8%8)7j5D8,7p4B6Q8i7C5K4C8^8;8p5i6j3*8z8B918D8F8H970R9a8O9d8T9n0v9i9k8K9j0O9U9l0l0l9n8(7^8*9s8k3b4T4M7|845i4T9A8u529.9F7G8 8C930O0Z0g0O0{0G0O7:0C0E270O2)2Q0g0=0I9p7`4r9+0U3C4/9/9w9;am1~6Y8_7v0kan3I8f3K9r9w8-54aoau8v549@9x85aE9{8~1#9H926Xa00H0e0O0V2t240;0Ia52o2q0;6.9)9q8h6S8-5m9vaG6h5kaJaq6V5k2F8y9|aP90aR7W7Ub27Yb40xah8gajaC9t3c5z8:9^5!6Wat9B8`5i5y8x3la,baa.bc5Na;bkavbua^8=5x7E3iaR7c6*0@0da*2,0ObF3:786FbL8z0j0@0A0AbPbM010C0d0@5nbqaO0/727@4p9*bb9,3c802|9:bA6V87bjbg855#boaRbE8z6+042y0e0V0G79bKbX0H5z9n8!8W8Yb8aAa-7Ba/8mb=apb@3c8rb`aKbm8m5)c0a~0/c2360Hagb%7M1#b*ch7bcj8jal6V8/cna=5!8@csa_3c8|bDb 7K8z0U0@0C6}bIbWbRbTc*cy3O6{968*5a7274cE4sbO7jbQc.bS040kc-b(bYb!5Ac=710@0lcI7k8+b.cM3c9EcPbw8v6ias7zcQb|9EcwcYc}d3c2c4c6c83kdtcF0/cb7Qcf0x0v9nd2dB01c 0ydJc`04c%a)dO5adMdT4!dD049n9XdIc|bXdVd%c!c$c(bJdzd(0@dNd*c.dY9n9$dFdb1a6H1l6p0B6r1a0e6te32L2G0w1W6C6q6z7i0Y0!0$0H04.
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
.9888.128013]ik[v8o-)yqxb.g=DmTç4rs97f,d :FC5hwtcl0p_!P3(a;R/àeèS612énuA050D0!0L0V0d0N0y0E0M0N0V0y0y0r010L0d0P010406050y0,0t0t0V0x0l040$0i0N0,110i0+0E020V0t0P0W0E0X0!1b0x0m0,0!0y050Y181a1c1e160P04051J1C1M0Y1J160D0d0g0_0{0}0 0{0+0q0,0V0q0!0j0P0l0L0J1l0E0J0d0q0J0N1=0J0L14050;0o0N0!1V0|0~011;1?1^1?0L1~201|0L0x1K1-0_1h0y0P0V0+0 0)01221X010B0?0!0+1p0!1|2k2m2r242u202x0t2z040b0E0S0x0i0P0i0y0d1k1m0/2i0x0x0!0M2U1C2B0+1K0Y1-2*2e2g2f1}0D2D1Y0d0+2w2R1|1S1U0`232@2_0+0i2}1|0P2Z1K2(2*3a172l1m2 2s330x1b0N1|0V1:2Z0B0 030Q0Q0M340!1^320i0j0I0j0(140E0(1C0V3b3e153d2C3g243i3k3m3o0!3q013s3u3w3y2`3B0j2p040E0)3I3K2m3M2(2?013R0V3l1K3n0J3p3r3t3v0/3#333%0T3F0T3-2%3L163;3P0 3@3_053{3}3X3 3!2^3$3C0w3F0w481D4a3N3f1W3Q0i3j3^3T3|3V3~3Z414n433C0I3F0I4t3a4b3e3=4f4D4j3Y403x4J3A3C0%3F0%4P4v4c4y4e4A3S3`3U3W4X4m3z3%0A3F0A4*3/4R3O4-3?4/4C4;4E4?4l4I4_3C0h3F0h4~2)504x30534B4g4i4F4k4H4Z5b0j0z3F0z5g3:4S4d5l4:4h4=4G4Y424#3D0O140(0O5y1N381C2}2-0D2g2=5B4Y2|1T1K370!393L493/054Y5)2C0d0D0 3t2(3%3E4;5;5?5r5I5_2q2H0!5}5H4!602*3J4w3=0e140/0B5+2)6a5B0K3F6g5/5j3h0B141A0L0Q2l3y0D2O2I6m6i5213040U6A4,5k0+140t0i0L6G5A6C140k0F6m164u5,3;5|015@3e3%3)5E6Z595s4o3(612y644^6-6(0Y696H2s6k3*0E6~6O515k0y0D14021y6M0W760,787a780s0*0L0!3j4n0E2S0E6L0L0E6s0E0,1m6v2^6x0i2I7d0L79777B7A0W6U701m6*0Q5^3C455{5=6!5~667N6/2I6;5a6-7O3-6V3c6Y7Q6#2m3%4q7P7X6,4K0j4q0E627/5 4p1|6^6}6 6`246c040d6f6W2)0E6B6I0o142G7I3=6D6F866n4T6K6M8e5B6D0k6m88800 0i750N7B8r892s0t0d143,8i8A246D6T8i7$5*7(5}7M3B3T7K655t4M7@6:7R8U6-4M687~6~8)8H0 822Z0L0,0x0+8z8t010e0M140u0x1z7H8G8O7R8Q4%7.8Z6=7;4%8X7W967Y987|3J8)8s6P5k823x0y0!8n6Q048K4Q8e7K8Q4{956+7`0j4{9a639c7:5J9x3-9h9h8+8^14848?9j3h8l6N909R8I140f9p5k8C145O9V712s6D0c9Q9*248v040R0r9.6o3Q9T9!9+9Y9|9:140j9 0 9$043H9)9_0 9,9s4va80E9v6$5c8S7)7S5t5d9D7_7T0j5d8%9Kau9i9/8,148.8:8=8iawa98^8`040G3^9n8 7%4Sag7+3C5v9yal6-5vao9F9AaS9Jav9M9l0@9oae8o14ac4 9uak8Q5Najap5ta?aX9zaqa?atav9L8@8-0:aB9^8k046s6u3^7w6ya*aNax018ga33?9{a+9q9Zbm9#8Da6bj8Jbj9;a2bp8Bbra7bfaF9,8q8L6A0Y5.5Q5(5S5#1C0L5VbO2:2+0V1 bL0Y5T1I8j5B2Z0t0Q0B0V0e0!0Q0J7O1u1w1y1A0Ea.6h1P3M0/0;0?0^5B337h0E0D0*0P1^0*2z0E2P2w8u0P2w144b191w1e0-1j2Z2X2Z2#0d1/2Q0}0dbV2%ci1Gb{1T3=1Z1#1%1)1+1-1/261@1_1{b!522F2w2y140S1,1.aC3c5%6n3.6hbJ917*0+0j0%3Da@aY66c,3Ea{aU43c;2q575G973Ac_8%a%6d3Vbj6|88by3Q6qb80y6t7v0+7x6zd7aa148hbCb77obt6Rb^3MaeaPc*c,6(3n8Tc}c+6.c?8!c^dBc{5qdDc~6.d08@0y3)7F7f7h7j2_7l0d7n6M7qdb7s7ubbdebd7FaM8NaOa;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;0r9@fNenbkeC8meE9~exbwfTbAdo049-f(bg0i6|2m0DfZ9Sdadcd$dfflfqf)biexfPf,fW9}04bogc24a5bBd+bgbuf/a1f;5Mf?0cbF9t8GbI3w2*cZbM0g3M1Jb:1c770+0^b=0E0{c30!0,0n0d0#2I0E2l0x11210D0,885.f}1C5.0E6F5.b9ddg40U7o0f0(0F3Dgsg%gx0k7@219n0x3n0*0g3^0,c87q1mcUcI1mgJ7m5-gxg:0O0c0Ef$dW0L0fg@g_0/3*7rh1h30*0E0Zg!gx8|8~gwhpg)hs1i0V2UgT1c1A9n0,9n0k0p1Ndrb|0=0@cA2~520V0D6L0+2Tcr1m0K1ch#1!cg1L3=hYh!h$1l0j110L2c04gE1xhA1Q1L040a0E0H0:c20y1h1jh%hv0E0o0|gX213v0P0dif0E010y1^0M1A2q0U2e2m0M0Jb?2w0E0Bg 0+0v0=0yg{0+007r2l0^3V2u0M0Vip0C7@0ihM0E0g7i2OgHgT1i0^0;0x2=7t210t7g1.2Wc6iUiM0diOip0E0ViW0MgKb?7wi?1AhPb`6VbY5S0:hT0y04.
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
Solution
Attention
L'ordre des instructions est bien sûr important !
Pythondef 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
.128013witkcvNo-)ylqb0p_.P3(a;+g=R/mz4rseè7Sf,d 612:C5nuéhA050O0I0d0w0c0m0H0P0f0m0w0H0H0A010d0c0q010406050H0X0D0D0w0G0l040L0i0m0X0^0i0W0P020w0D0q0x0P0B0I120G0n0X0I0H050C0 1113150}0q04051A1t1D0C1A0}0O0c0g0-0/0;0?0/0W0z0X0w0z0I0j0q0l0d0Z1c0P0Z0c0z0Z0m1)0Z0d0{050(0o0m0I1M0:0=011(1*1,1*0d1=1@1:0d0G1B1!0-180H0q0w0W0?0S011_1O010M0*0I0W1g0I1:2b2d2i1{2l1@2o0D2q040a0P0t0G0i0q0i0H0c1b1d0$290G0G0I0f2L1t2s0W1B0C1!2X2527261;0O2u1P0c0W2n2I1:1J1L0.1`2+2-0W0i2;1:0q2Q1B2V2X310~2c1d2?2j2`0G120m1:0w1%2Q0M0?030r0r0f2{0I1,2_0i0j0R0p3s0{0R1t0w32350|342t371{393b3d3f0I3h013j3l3n3p2.3s3u2g040S3y3A2d3C2V2*013H0w3c1B3e0Z3g3i3k3m0$3R2`3T0j0u0{0u3Y2U3B0}3$3F0?3)3+053-3/3N3;3Q2,3S3t0j0F0{0F3~1u403D361N3G0i3a3*3J3.3L3:3P3?4d3^4f0V0{0V4k3141353%454u493O3=3o4A3r4f0Q0{0Q4G4m424p444r3I3,3K3M4O4c3q3_0K0{0K4X3!1E2 1t2;2!0O272)43014P2:1K1B2~0I303B3 4?4P572t0c0O0?3k2V3_0R3J5e5g4y4Q4-4f5k0P2y0I5n4P3@4S3u5k2X3z4n3%0e0{0$0M592W5E4 0b0{0P5K5c4o2@3(0M0{0W0o2Q3l0Z1m2,1s4l4?4Z5U0`040v5R5M4!3(5X5;5,2j5.0k0T5R0}5*5L3$5m015h353_3V470P644b4z5q3U2h5u5w4,4e6g5C040P6p5Q5`1{5G040c5J616o5=5U0W5^6y6r4J4 0i0{0A0A5R6F3E5?0D0c3w5_6G5?5.5~6y6033635f650r5i4f3{4(6c5o5y3_3{5t2p6j6e6l3`1:0C3z6q6~6N5T2j6u2Q0d0X0G0W6M6A2j6Q6S6Y6T5d6$662d3_4h6,7h6.4R7k6h6?6%5x7p4f7l3Y6~7a6t0{4Q6x31704K6D7F7A0?6I046K796s0?7c3W7f711{6W5 7U6b7n6)3u4D7m6@5p6_4D6=2z7*6/4C6{6}6 6p7K01730%76786E7`7S3X7e6y5E6-7$0j4U7)7t6k4B3u4U7.5v8c6^8e897?6o6q7`6u3o0H0I7Z4 7X846!4J87674f4/8b6d7+8l4/8h7:7v3u8E7y7^7G4 7|75777P6U6B5X5Z0I5#5%0W5)8z6O5-0{5:857Q5@047 7J8:7M0j8W8+7b6R043x8/8X5{0{0k8{7V7L0{0y967H8=8!8$6Q8(8v6V8-9i8Y8=9b6H0{8`808:829l9304958y580C5b4@564_531t0d4|9H2%2Y0w1?9E0C4`1z5S3%2Q0D0r0M0w0e8#0Z6+1l1n1p1r0P6X331G3C2;3%0w0O0D1c2K0c1$0O2d1V0G0{1z9=9@9_2L0j0^0d23040!212n2T9/9S0U0%0d1^0H181a9{1d0G0Y0f762J0g1^2~2{0X2K0P0X1d250J0,0z0G2d2)2`0D8!0P0O000w0q0q8s0P1p0c5t001r0d0P2c0,0O0X0P0d0i1a0P3L2l0f0w0f0I0N0-13aP9+a?0mat0+7!ae0c9*0,am0Wa$ar3*0c0H0Y0,arat0Gav1maea%192J0Iau0P0M0ibd0s0P0LaY0ga.0,ak0Hak0E0-ajalan2La%a.0GaC1daIaK5t0iaN2Qa}0P1n0f5$0Ha`a^0/a%2Q0W0OaJ0P0o0I0w0X3m0X0qbXak1hb$0Pa.bs0Ib.010q1Qaka02D1Z1#0W0s1E3C1A0hbB0P0Y751Jc11c0,c40XbC132)b)0~251c0z04aybR1wbL0O0l2yb51q2Ucw1R04ccag9F0g3C9Q0%0)0+04.
Autres exercices :
Exercices CodEx sur la récursivité
Crédits
Franck Chambon
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)