Colorier

Soit une image binaire représentée dans un tableau à 2 dimensions. Les éléments M[i][j], appelés pixels, sont égaux soit à 0 soit à 1.

Une composante d’une image est un sous-ensemble de l’image constitué uniquement de 1 et de 0 qui sont côte à côte, soit horizontalement soit verticalement.

Par exemple, les composantes de

image

sont

composantes

On souhaite, à partir d’un pixel égal à 1 dans une image M, donner la valeur val (différente de 1) à tous les pixels de la composante à laquelle appartient ce pixel.

La fonction colorier prend pour paramètre une image M (représentée par une liste de listes), deux entiers i et j et une valeur entière val différente de 1. Elle met à la valeur val tous les pixels de la composante du pixel M[i][j] s’il vaut 1 et ne fait rien sinon.

Par exemple, colorier(M, 2, 1, 3) donne

image coloriee

Compléter le code récursif de la fonction colorier donné 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
.128013a3=gMvuth0[/àqj8k)ç.éb6r7 +pcR!5l:Sf(Cms1_i2n]ow;eyd4I9P,-050!0Y0i0b0R0H0O0A0D0H0b0O0O0d010i0R0C010406050O0h0N0N0b0y0Z040J0V0H0h0~0V0T0A020b0N0C0X0A0E0Y180y0o0h0Y0O050m1517191b130C04051G1z1J0m1G130!0R0g0?0^0`0|0^0T0e0h0b0e0Y0*0C0Z0i0j1i0A0j0R0e0j0H1/0j0i11050.0w0H0Y1S0_0{011.1:1=1:0i1{1}1_0i0y1H1*0?1e0O0C0b0T0|0S011 1U010K0:0Y0T1m0Y1_2h2j2o212r1}2u0N2w040a0A0(0y0V0C0V0O0R1h1j0,2f0y0y0Y0D2R1z2y0T1H0m1*2%2b2d2c1`0!2A1V0R0T2t2O1_1P1R0@202;2?0T0V2`1_0C2W1H2#2%37142i1j2|2p300y180H1_0b1-2W0K0|030Q0Q0D310Y1=2 0V0*0k0*0P110A0P1z0b383b123a2z3d213f3h3j3l0Y3n013p3r3t3v2@3y0*2m040A0S3F3H2j3J2#2:013O0b3i1H3k0j3m3o3q3s0,3Y303!0c3C0c3*2!3I133.3M0|3;3?053^3`3U3|3X2=3Z3z0#3C0#451A473K3c1T3N0V3g3=3Q3_3S3{3W3~4k403z0G3C0G4q37483b3/4c4A4g3V3}3u4G3x3z0x3C0x4M4s494v4b4x3P3@3R3T4U4j3w3!0z3C0z4%3,4O3L4*3:4,4z4.4B4:4i4F4?3z0q3C0q4{2$4}4u2}504y4d4f4C4h4E4W580*0%3C0%5d3-4P4a5i4-4e4/4D4V3 4Y3A0k110P0k5v5f4Q515k5C5n5E4X3!0P3B045W5M4t5O5j4S5m4;574l3A3$0P3)0m3G464|5#5y4R534T565p5,0P425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?2$1K351z2`2*0!2d2/5y4V2_1Q1H340Y363I6j1H4V6A2z0R0!0|3q2#5V3Q6H6J5o5F6M0A2E0Y6P5T5q5X454)5h0r110,0K6C675h0W3C6+6#3e0K113s0H4x0R0Y0y6:5x4 10040L6~4~5h0T110f745g2p710)6C0A6,3e110R7a3/7d7f7h3N110p7l5y7n4r3,7g6;7q040g3=7t70110s0I6C137w6k3.6O016K3b3!3$5B7O5}6R3z2m6T2v6W6d4H3#1_640A7,7y6 6$7j6*7L3%7p4b787E5h710l7{7i047k7?7^01710U7~837z7_047s897/7c110U7o8a010V110F0d8j8f210N0R5J7 21717I7?7K397N6I7P0Q6L3z617U8E7W5U8I2n6U7$5+7(8J7+7-8W846%042W0i0h0y0T7J7l7V8G7R4m6N8L6Q8N0*4n7!2F8R5~7(6f3*8B6B8D6P8H0*4J4.8,6X5,4J8_6V8F997(963*8X8k7704798e758g04888C8r8b829t9p8x8h9s919u3:7r8w0|868q9y0|8m048p7?7.9K9E7B7D8A8+8;944!978;9f5G4!9c8{7X0*9Z8 9W938.0*4^9!9*8?4^9)9e7%5G9?9i7-8Y7;9J7b7A9w3I9Qa59L110*a43/8t8v9P849M020e0i0X9O37a9af8u045L9oaa85118zaq840D5X030A342M1!1~2t1-0b1g8*aw0A8,945a9@9|8S5G5a9{8M5qaUa08W7,849l6^6`6|9Gay72a:9l9n9xax7vaB9k7jae5y9Madai8kag5Ya:a{a8a+9FaQ7u117eb39D9l7C0Hb77GaPa_aR9X9;5saVa#5,5sa!8=5qbsa(ar5y8Z0R7=a|bha~bg9R9M0Ba 4 b53EbKaxak0HanbO760w112Dbla=bc687`b(7|7GaAb98kaD11aFaH2i1#0AaL0w0_bn9C6Gbq2j5V5Ibtby5 5Ibx9$c37*3Ga)a1a}04a-0y6{6}b+9q73cm7Aa^b a`bebX80a77xaj11bNbSasahbobd04bfbH9R9l8dcF7FcHcv7Abjb$0s7f903,5#aS9;5W8:9^6Y3Bc99}5V6Z8Va*8kbEbGb/bI8ccQab04b2cJaxbQc_8l11alanapc?9Rb5avcNb,04b.cyb:aEaG2Lb^1~0n0A0eaN0D0j0Yb~cX928F945/c$aW8|5Gdxc*aX5V7Tc.a)bach1ea.cldacna?b*dO9zcPcC5_bJdS9HcudVb)c^d#5hb1d0c cpdZdUc}4Q11cSd-a;cU9PcW7M4PcZc23z60dybu7(e1dDdA5V8Ucdcf9Dc;d0cLd0bMd+atbRd:b0d2bV0XeebZ04b#d@71codY9Scrdt9D7}dQ81b$0U7Hd0b;04b?diaJ0Adl0!2L2Qdr9VaQd~0T5V8~3k98c+e08^8Qdz9+0P8~dH9jc@cickb$ewcsd;9mb$cId6ax9lcxd|9Rb8dec@cMe}3/ehd(2pd,exf32$bCd$d?fdbmeU390m6E6l6z6n6w1z0i6qft2-2(0b1|fq0m6o1F6Fax2W0N0Q0K0b0r0Y0Q0j611r1t1v1x0Add6k1M3J1G0M0-0i1~fK0t1,2TaH0e0y1m2F0y6T001x0iaG0_0A0!0h0A0i0V1g0A0v0H0vdn0Tf%0u1KfZ040$0H0AaNf/2Qg30i0vdh0v0K0vf/fAf|000v0Dcj2WfV7gfY1O1Q3/1W1YaJ1%1)1+1j231;1?1^6x6mfm39fodu7Qc20P3Ae2c640gYc)e)e33xg%2n6b5Sc+g,2%5=c:6(3Sa:6.7@d@0T6?dK6_2W3W1neke^cGe@eAcKdRh6cOe|f4haeEeud!eld$f6h9ctd/f7dW9Tbkhi04eHfle^eW3A7)c5cagY7Zg)g#g+7)5R5*e7hEcc3%eb9Redfacqb$9Bhne_f0fF7m9AeDhmf1ho8ihTc`0dd5hfc~ejb$fW3JeVc1eXgY8Je!9#g:0*42e66Rh|g-5|hHhAe9h^bohzgYeZbpc%3Zie8P7#e*5UijhKg*hAe-eacedJezh)h#9reDhZ8486hWixhrh(h!cGh+hkd)11h/ffdJfi4sh_9:gX95g!hDiWi3iniZg.hLi4iWg=ibhyh`hA9-h~ihg$9,ik8`im4?gY9(i%iqi|hOcec/eca3h,9ShZfgiMc{eicEhq4 akamaojcauh?eIdgb@eNaL0jaN0idsixid9=iXi09`hGiY9`i~i8gY9 e.j2dJcifN3sh4e?eDiwiIhdeedXjejac|jWfbh=huheiPcgiHiChjjZcR9Ufjhvjuh!jwa%i;i`ii0*aZjBi0aZjEiYa%jIj3hRj5iLcwegcAjjh5h:f8enbWj60Teretj:h8iFd$jRj+hvh@j92peJeLaIb_b{b}hxhXjwbAj_i 5ri^9dkHbwk1i0bAk4dIcgjLh30CkdkodbknjS76hbhXcGj%7@cgj8cz04cBk88sj#j:k)ku7Aj*8kfek*c@iRk%cOd_aqd{j?i.g%c48Ki=hI5KkJlahAlcipjF5Hj1jJg@81c=keiGkajbj6fcj-c`d3jiltatd9hcdbktaCjneMb_dldn0hdpeT4N9/dv7Rg%6ZkGlic#i!i{3Ac)kNdElSlkj2hQe~6@dLh2jNkVjPg}k$kX9qk@dJiBk{j,lphllrjYl~5hlul0dbl_cgk l@dTl2a8l4cYl65-jyl$mhlXj{dCl#hMmhi+l)a2lnjUd%k:c`k/lv01m4j(9DbUkhmx3:kk2tl;exa@hViAeFhwmHkwdhkydkf|eRf%j=mfiUh{3Ah}igj`i?e5j~mje5moi)e1mrl)l*e_kTl/kWk!dPl=e`j$mvl{eBl}mDhgiHk^mykce{mvm9m~mbm!fn3t2%6y2%fD6n0-0/0;04.