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
.128013_kySl2ph=d,RjIn +/7(b6u.:3a-eç9Céo]1m!0g4)s8iqMvP;fàr5[cwt050k0D0*0B0T0f0R0q0(0f0B0R0R0j010*0T0h010406050R0x0L0L0B0#0d040e0I0f0x0~0I0p0q020B0L0h0Y0q0m0D180#0U0x0D0R050s1517191b130h04051G1z1J0s1G130k0T0W0?0^0`0|0^0p0O0x0B0O0D0C0h0d0*0i1i0q0i0T0O0i0f1/0i0*11050.0v0f0D1S0_0{011.1:1=1:0*1{1}1_0*0#1H1*0?1e0R0h0B0p0|0g011 1U010Z0:0D0p1m0D1_2h2j2o212r1}2u0L2w040a0q0X0#0I0h0I0R0T1h1j0,2f0#0#0D0(2R1z2y0p1H0s1*2%2b2d2c1`0k2A1V0T0p2t2O1_1P1R0@202;2?0p0I2`1_0h2W1H2#2%37142i1j2|2p300#180f1_0B1-2W0Z0|030b0b0(310D1=2 0I0C0N0C0K110q0K1z0B383b123a2z3d213f3h3j3l0D3n013p3r3t3v2@3y0C2m040q0g3F3H2j3J2#2:013O0B3i1H3k0i3m3o3q3s0,3Y303!0A3C0A3*2!3I133.3M0|3;3?053^3`3U3|3X2=3Z3z0P3C0P451A473K3c1T3N0I3g3=3Q3_3S3{3W3~4k403z0$3C0$4q37483b3/4c4A4g3V3}3u4G3x3z0w3C0w4M4s494v4b4x3P3@3R3T4U4j3w3!0t3C0t4%3,4O3L4*3:4,4z4.4B4:4i4F4?3z0S3C0S4{2$4}4u2}504y4d4f4C4h4E4W580C0F3C0F5d3-4P4a5i4-4e4/4D4V3 4Y3A0N110K0N5v5f4Q515k5C5n5E4X3!0K3B045W5M4t5O5j4S5m4;574l3A3$0K3)0s3G464|5#5y4R534T565p5,0K425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?2$1K351z2`2*0k2d2/5y4V2_1Q1H340D363I6j1H4V6A2z0T0k0|3q2#5V3Q6H6J5o5F6M0q2E0D6P5T5q5X454)5h0c110,0Z6C675h0)3C6+6#3e0Z113s0f4x0T0D0#6:5x4 10040u6~4~5h0p110V745g2p710l6C0q6,3e110T7a3/7d7f7h3N110n7l5y7n4r3,7g6;7q040W3=7t70110Q0z6C137w6k3.6O016K3b3!3$5B7O5}6R3z2m6T2v6W6d4H3#1_640q7,7y6 6$7j6*7L3%7p4b787E5h710%7{7i047k7?7^01710J7~837z7_047s897/7c110J7o8a010I110M0j8j8f210L0T5J7 21717I7?7K397N6I7P0b6L3z617U8E7W5U8I2n6U7$5+7(8J7+7-8W846%042W0*0x0#0p7J7l7V8G7R4m6N8L6Q8N0C4n7!2F8R5~7(6f3*8B6B8D6P8H0C4J4.8,6X5,4J8_6V8F997(963*8X8k7704798e758g04888C8r8b829t9p8x8h9s919u3:7r8w0|868q9y0|8m048p7?7.9K9E7B7D8A8+8;944!978;9f5G4!9c8{7X0C9Z8 9W938.0C4^9!9*8?4^9)9e7%5G9?9i7-8Y7;9J7b7A9w3I9Qa59L110Ca43/8t8v9P849M020O0*0Y9O37a9af8u045L9oaa85118zaq840(5X030q342M1!1~2t1-0B1g8*aw0q8,945a9@9|8S5G5a9{8M5qaUa08W7,849l6^6`6|9Gay72a:9l9n9xax7vaB9k7jae5y9Madai8kag5Ya:a{a8a+9FaQ7u117eb39D9l7C0fb77GaPa_aR9X9;5saVa#5,5sa!8=5qbsa(ar5y8Z0T7=a|bha~bg9R9M0ra 4 b53EbKaxak0fanbO760v112Dbla=bc687`b(7|7GaAb98kaD11aFaH2i1#0qaL0v0_bn9C6Gbq2j5V5Ibtby5 5Ibx9$c37*3Ga)a1a}04a-0#6{6}b+9q73cm7Aa^b a`bebX80a77xaj11bNbSasahbobd04bfbH9R9l8dcF7FcHcv7Abjb$0Q7f903,5#aS9;5W8:9^6Y3Bc99}5V6Z8Va*8kbEbGb/bI8ccQab04b2cJaxbQc_8l11alanapc?9Rb5avcNb,04b.cyb:aEaG2Lb^1~0!0q0OaN0(0i0Db~cX928F945/c$aW8|5Gdxc*aX5V7Tc.a)bach1ea.cldacna?b*dO9zcPcC5_bJdS9HcudVb)c^d#5hb1d0c cpdZdUc}4Q11cSd-a;cU9PcW7M4PcZc23z60dybu7(e1dDdA5V8Ucdcf9Dc;d0cLd0bMd+atbRd:b0d2bV0YeebZ04b#d@71codY9Scrdt9D7}dQ81b$0J7Hd0b;04b?diaJ0qdl0k2L2Qdr9VaQd~0p5V8~3k98c+e08^8Qdz9+0K8~dH9jc@cickb$ewcsd;9mb$cId6ax9lcxd|9Rb8dec@cMe}3/ehd(2pd,exf32$bCd$d?fdbmeU390s6E6l6z6n6w1z0*6qft2-2(0B1|fq0s6o1F6Fax2W0L0b0Z0B0c0D0b0i611r1t1v1x0qdd6k1M3J1G0G0-0*1~fK0E1,2TaH0O0#1m2F0#6T001x0*aG0_0q0k0x0q0*0I1g0q0H0f0Hdn0pf%0y1KfZ040o0f0qaNf/2Qg30*0Hdh0H0Z0Hf/fAf|000H0(cj2WfV7gfY1O1Q3/1W1YaJ1%1)1+1j231;1?1^6x6mfm39fodu7Qc20K3Ae2c640gYc)e)e33xg%2n6b5Sc+g,2%5=c:6(3Sa:6.7@d@0p6?dK6_2W3W1neke^cGe@eAcKdRh6cOe|f4haeEeud!eld$f6h9ctd/f7dW9Tbkhi04eHfle^eW3A7)c5cagY7Zg)g#g+7)5R5*e7hEcc3%eb9Redfacqb$9Bhne_f0fF7m9AeDhmf1ho8ihTc`0jd5hfc~ejb$fW3JeVc1eXgY8Je!9#g:0C42e66Rh|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@eNaL0iaN0*dsixid9=iXi09`hGiY9`i~i8gY9 e.j2dJcifN3sh4e?eDiwiIhdeedXjejac|jWfbh=huheiPcgiHiChjjZcR9Ufjhvjuh!jwa%i;i`ii0CaZjBi0aZjEiYa%jIj3hRj5iLcwegcAjjh5h:f8enbWj60peretj:h8iFd$jRj+hvh@j92peJeLaIb_b{b}hxhXjwbAj_i 5ri^9dkHbwk1i0bAk4dIcgjLh30hkdkodbknjS76hbhXcGj%7@cgj8cz04cBk88sj#j:k)ku7Aj*8kfek*c@iRk%cOd_aqd{j?i.g%c48Ki=hI5KkJlahAlcipjF5Hj1jJg@81c=keiGkajbj6fcj-c`d3jiltatd9hcdbktaCjneMb_dldn0xdpeT4N9/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.